00001 00032 #ifndef LL_LOCALANIMATIONOBJECT_H 00033 #define LL_LOCALANIMATIONOBJECT_H 00034 00035 #include "llhudobject.h" 00036 #include "llflexibleobject.h" 00037 00038 //----------------------------------------------------------------------------------- 00039 // Default setting for the attributes of a localAnimationObjectControls object... 00040 //----------------------------------------------------------------------------------- 00041 //const LLVector3 LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_DIRECTION = LLVector3::z_axis; 00042 //const LLVector3 LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_POSITION_OFFSET = LLVector3::zero; 00043 //const LLColor4 LOCAL_ANIMATION_OBJECT_DEFAULT_COLOR = LLColor4( 1.0f, 1.0f, 1.0f, 1.0f ); 00044 //const F32 LOCAL_ANIMATION_OBJECT_DEFAULT_GRAVITY = 0.3f; 00045 //const F32 LOCAL_ANIMATION_OBJECT_DEFAULT_TENSION = 10.0f; 00046 //const F32 LOCAL_ANIMATION_OBJECT_DEFAULT_AIR_FRICTION = 10.0f; 00047 //const F32 LOCAL_ANIMATION_OBJECT_DEFAULT_LENGTH = 1.0f; 00048 //const int LOCAL_ANIMATION_OBJECT_DEFAULT_NUM_SECTIONS = 4; 00049 //const F32 LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_RADIUS = 0.05f; 00050 //const F32 LOCAL_ANIMATION_OBJECT_DEFAULT_RADIUS_CHANGE = -0.01f; 00051 00052 class LLViewerObject; 00053 /* 00054 00055 //------------------------------------------------- 00056 // This structure is also used in the part of the 00057 // code that creates new localAnimationObjectControls objects. 00058 //------------------------------------------------- 00059 struct LLLocalAnimationObjectAttributes 00060 { 00061 //LLVector3 mAnchorPositionOffset; 00062 //LLVector3 mAnchorDirection; 00063 //LLColor4 mColor; 00064 //F32 mAnchorRadius; 00065 //S32 mNumSections; 00066 //F32 mLength; 00067 //F32 mGravity; 00068 //F32 mAirFriction; 00069 //F32 mTension; 00070 //F32 mRadiusChange; 00071 bool mUsingBodyControls; 00072 bool mUsingHeadControls; 00073 bool mUsingTailControls; 00074 bool mUsingLegControls; 00075 00076 //------ the constructor for the structure ------------ 00077 LLLocalAnimationObjectAttributes() 00078 { 00079 //mAnchorPositionOffset = LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_DIRECTION; 00080 //mAnchorDirection = LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_POSITION_OFFSET; 00081 //mAnchorRadius = LOCAL_ANIMATION_OBJECT_DEFAULT_ANCHOR_RADIUS; 00082 //mColor = LOCAL_ANIMATION_OBJECT_DEFAULT_COLOR; 00083 //mNumSections = LOCAL_ANIMATION_OBJECT_DEFAULT_NUM_SECTIONS; 00084 //mLength = LOCAL_ANIMATION_OBJECT_DEFAULT_LENGTH; 00085 //mGravity = LOCAL_ANIMATION_OBJECT_DEFAULT_GRAVITY; 00086 //mAirFriction = LOCAL_ANIMATION_OBJECT_DEFAULT_AIR_FRICTION; 00087 //mTension = LOCAL_ANIMATION_OBJECT_DEFAULT_TENSION; 00088 //mRadiusChange = LOCAL_ANIMATION_OBJECT_DEFAULT_RADIUS_CHANGE; 00089 } 00090 };// end of attributes structure 00091 00092 00093 00094 //--------------------------------------------------------- 00095 // The LLHUDLocalAnimationObject class 00096 //--------------------------------------------------------- 00097 class LLHUDLocalAnimationObject : public LLHUDObject 00098 { 00099 public: 00100 LLHUDLocalAnimationObject(); 00101 void setParentObject( LLViewerObject * ); 00102 void setAttributes( LLLocalAnimationObjectAttributes ); 00103 void markAsDead(); 00104 void update(); 00105 LLViewerObject * getParentObject(); 00106 void render(); 00107 00108 private: 00109 //-------------------------------------- 00110 // private members 00111 //-------------------------------------- 00112 LLViewerObject* mParentObject; 00113 LLLocalAnimationObjectAttributes mAttributes; 00114 LLHUDFlexibleObject mTrunk; 00115 LLHUDFlexibleObject mFrond1; 00116 LLHUDFlexibleObject mFrond2; 00117 LLHUDFlexibleObject mFrond3; 00118 LLHUDFlexibleObject mFrond4; 00119 LLHUDFlexibleObject mFrond5; 00120 00121 //-------------------------------------- 00122 // private methods 00123 //-------------------------------------- 00124 void updateVirtualServer(); 00125 00126 friend class LLHUDObject; 00127 00128 };// end of class definition 00129 */ 00130 00131 #endif // LL_LOCALANIMATIONOBJECT_H