aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/lllocalanimationobject.h
blob: b834400e20e8cb1dc89de07ade9c1d80512f14f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/** 
 * @file lllocalanimationobject.h
 * @brief LLHUDLocalAnimationObject class definition
 *
 * Copyright (c) 2006-2007, Linden Research, Inc.
 * 
 * Second Life Viewer Source Code
 * The source code in this file ("Source Code") is provided by Linden Lab
 * to you under the terms of the GNU General Public License, version 2.0
 * ("GPL"), unless you have obtained a separate licensing agreement
 * ("Other License"), formally executed by you and Linden Lab.  Terms of
 * the GPL can be found in doc/GPL-license.txt in this distribution, or
 * online at http://secondlife.com/developers/opensource/gplv2
 * 
 * There are special exceptions to the terms and conditions of the GPL as
 * it is applied to this Source Code. View the full text of the exception
 * in the file doc/FLOSS-exception.txt in this software distribution, or
 * online at http://secondlife.com/developers/opensource/flossexception
 * 
 * By copying, modifying or distributing this software, you acknowledge
 * that you have read and understood your obligations described above,
 * and agree to abide by those obligations.
 * 
 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
 * COMPLETENESS OR PERFORMANCE.
 */

#ifndef LL_LOCALANIMATIONOBJECT_H
#define LL_LOCALANIMATIONOBJECT_H

#include "llhudobject.h"
#include "llflexibleobject.h"

//-----------------------------------------------------------------------------------
// Default setting for the attributes of a localAnimationObjectControls object...
//-----------------------------------------------------------------------------------
//const LLVector3	LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_DIRECTION		= LLVector3::z_axis;
//const LLVector3	LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_POSITION_OFFSET	= LLVector3::zero;
//const LLColor4	LOCAL_ANIMATION_OBJECT_DEFAULT_COLOR					= LLColor4( 1.0f, 1.0f, 1.0f, 1.0f );
//const F32		LOCAL_ANIMATION_OBJECT_DEFAULT_GRAVITY					= 0.3f;
//const F32		LOCAL_ANIMATION_OBJECT_DEFAULT_TENSION					= 10.0f;
//const F32		LOCAL_ANIMATION_OBJECT_DEFAULT_AIR_FRICTION			= 10.0f;
//const F32		LOCAL_ANIMATION_OBJECT_DEFAULT_LENGTH					= 1.0f;
//const int		LOCAL_ANIMATION_OBJECT_DEFAULT_NUM_SECTIONS			= 4;
//const F32		LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_RADIUS			= 0.05f;
//const F32		LOCAL_ANIMATION_OBJECT_DEFAULT_RADIUS_CHANGE			= -0.01f;

class LLViewerObject;
/*

//-------------------------------------------------
// This structure is also used in the part of the 
// code that creates new localAnimationObjectControls objects.
//-------------------------------------------------
struct LLLocalAnimationObjectAttributes
{
	//LLVector3		mAnchorPositionOffset;
	//LLVector3		mAnchorDirection;
	//LLColor4		mColor;
	//F32				mAnchorRadius;
	//S32				mNumSections;
	//F32				mLength;
	//F32				mGravity;
	//F32				mAirFriction;
	//F32				mTension;
	//F32				mRadiusChange;	
	bool			mUsingBodyControls;
	bool			mUsingHeadControls;
	bool			mUsingTailControls;
	bool			mUsingLegControls;

	//------ the constructor for the structure ------------
	LLLocalAnimationObjectAttributes()
	{
		//mAnchorPositionOffset	= LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_DIRECTION;	
		//mAnchorDirection		= LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_POSITION_OFFSET;
		//mAnchorRadius			= LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_RADIUS;
		//mColor				= LOCAL_ANIMATION_OBJECT_DEFAULT_COLOR;
		//mNumSections			= LOCAL_ANIMATION_OBJECT_DEFAULT_NUM_SECTIONS;
		//mLength				= LOCAL_ANIMATION_OBJECT_DEFAULT_LENGTH;
		//mGravity				= LOCAL_ANIMATION_OBJECT_DEFAULT_GRAVITY;
		//mAirFriction			= LOCAL_ANIMATION_OBJECT_DEFAULT_AIR_FRICTION;
		//mTension				= LOCAL_ANIMATION_OBJECT_DEFAULT_TENSION;
		//mRadiusChange			= LOCAL_ANIMATION_OBJECT_DEFAULT_RADIUS_CHANGE;	
	}
};// end of attributes structure



//---------------------------------------------------------
// The LLHUDLocalAnimationObject class 
//---------------------------------------------------------
class LLHUDLocalAnimationObject : public LLHUDObject
{
	public:
		LLHUDLocalAnimationObject();
		void				setParentObject( LLViewerObject * );
		void				setAttributes( LLLocalAnimationObjectAttributes );
		void				markAsDead();
		void				update();
		LLViewerObject *	getParentObject();
		void				render();

	private:
		//--------------------------------------
		// private members
		//--------------------------------------
		LLViewerObject*						mParentObject;
		LLLocalAnimationObjectAttributes	mAttributes;
		LLHUDFlexibleObject					mTrunk;
		LLHUDFlexibleObject					mFrond1;
		LLHUDFlexibleObject					mFrond2;
		LLHUDFlexibleObject					mFrond3;
		LLHUDFlexibleObject					mFrond4;
		LLHUDFlexibleObject					mFrond5;

		//--------------------------------------
		// private methods
		//--------------------------------------
		void updateVirtualServer();

		friend class LLHUDObject;

};// end of class definition
*/

#endif // LL_LOCALANIMATIONOBJECT_H