00001 00032 #include "llviewerprecompiledheaders.h" 00033 00034 #include "lllocalanimationobject.h" 00035 #include "llglheaders.h" 00036 #include "llsphere.h" 00037 #include "llrand.h" 00038 #include "llviewerobject.h" 00039 00040 const F32 OPACITY = 1.0f; 00041 const int _X_ = 0; 00042 const int _Y_ = 1; 00043 const int _Z_ = 2; 00044 const F32 BODY_RADIUS = 0.2f; 00045 const F32 HEAD_RADIUS = 0.1f; 00046 const F32 ONE_HALF = 0.5f; 00047 00048 /* 00049 //----------------------------------------------- 00050 // constructor 00051 //----------------------------------------------- 00052 LLHUDLocalAnimationObject::LLHUDLocalAnimationObject() 00053 : LLHUDObject( LL_HUD_LOCAL_ANIMATION_OBJECT )// cal the base class and pass this in, K? 00054 { 00055 mParentObject = NULL; 00056 00057 F32 windSensitivity = 0.04f; 00058 00059 //---------------------------------------------- 00060 // trunk 00061 //---------------------------------------------- 00062 LLFlexibleObjectAttributes trunkAttributes; 00063 trunkAttributes.mAnchorPositionOffset.setVec( 0.0f, 0.0f, -0.2f ); 00064 trunkAttributes.mAnchorDirection.setVec( 0.0f, 0.0f, 1.0f ); 00065 trunkAttributes.mColor = LLColor4( 0.4f, 0.3f, 0.2f, 1.0f ); 00066 trunkAttributes.mAnchorDirection.normVec(); 00067 trunkAttributes.mAnchorRadius = 0.3f; 00068 trunkAttributes.mNumSections = 3; 00069 trunkAttributes.mGravity = 1.2f; 00070 trunkAttributes.mLength = 9.0f; 00071 trunkAttributes.mTension = 10.0f; 00072 trunkAttributes.mEndRadius = 0.2f; 00073 trunkAttributes.mTextureFileName = "JVTestTreeTrunk.tga"; 00074 trunkAttributes.mRenderStyle = "tube"; 00075 00076 mTrunk.setAttributes( trunkAttributes ); 00077 00078 00079 00080 //--------------------------------------------- 00081 // frond 1 00082 //--------------------------------------------- 00083 LLFlexibleObjectAttributes frond1Attributes; 00084 00085 frond1Attributes.mAnchorPositionOffset.setVec( 0.0f, 0.0f, 0.0f ); 00086 frond1Attributes.mAnchorDirection.setVec( 1.0f, 0.0f, 1.0f ); 00087 frond1Attributes.mAnchorDirection.normVec(); 00088 frond1Attributes.mColor = LLColor4( 0.15f, 0.25f, 0.0f, 1.0f ); 00089 frond1Attributes.mAnchorRadius = 0.5f; 00090 frond1Attributes.mTension = 2.0f; 00091 frond1Attributes.mNumSections = 2; 00092 frond1Attributes.mGravity = 2.0f; 00093 frond1Attributes.mLength = 5.0f; 00094 frond1Attributes.mEndRadius = 0.0f; 00095 frond1Attributes.mTextureFileName = "JVTestPalmFrond.tga"; 00096 frond1Attributes.mRenderStyle = "billboard_tube"; 00097 frond1Attributes.mWindSensitivity = windSensitivity; 00098 00099 mFrond1.setAttributes( frond1Attributes ); 00100 00101 //--------------------------------------------- 00102 // frond 2 00103 //--------------------------------------------- 00104 LLFlexibleObjectAttributes frond2Attributes; 00105 00106 frond2Attributes.mAnchorPositionOffset.setVec( 0.0f, 0.0f, 0.0f ); 00107 frond2Attributes.mAnchorDirection.setVec( 1.0f, 0.7f, 0.7f ); 00108 frond2Attributes.mAnchorDirection.normVec(); 00109 frond2Attributes.mColor = LLColor4( 0.15f, 0.25f, 0.0f, 1.0f ); 00110 frond2Attributes.mAnchorRadius = 0.5f; 00111 frond2Attributes.mTension = 2.0f; 00112 frond2Attributes.mNumSections = 2; 00113 frond2Attributes.mGravity = 2.0f; 00114 frond2Attributes.mLength = 6.0f; 00115 frond2Attributes.mEndRadius = 0.0f; 00116 frond2Attributes.mTextureFileName = "JVTestPalmFrond.tga"; 00117 frond2Attributes.mRenderStyle = "billboard_tube"; 00118 frond2Attributes.mWindSensitivity = windSensitivity; 00119 00120 mFrond2.setAttributes( frond2Attributes ); 00121 00122 //--------------------------------------------- 00123 // frond 3 00124 //--------------------------------------------- 00125 LLFlexibleObjectAttributes frond3Attributes; 00126 00127 frond3Attributes.mAnchorPositionOffset.setVec( 0.0f, 0.0f, 0.0f ); 00128 frond3Attributes.mAnchorDirection.setVec( 1.0f, 0.7f, -0.7f ); 00129 frond3Attributes.mAnchorDirection.normVec(); 00130 frond3Attributes.mColor = LLColor4( 0.15f, 0.25f, 0.0f, 1.0f ); 00131 frond3Attributes.mAnchorRadius = 0.3f; 00132 frond3Attributes.mTension = 2.0f; 00133 frond3Attributes.mNumSections = 2; 00134 frond3Attributes.mGravity = 2.0f; 00135 frond3Attributes.mLength = 6.0f; 00136 frond3Attributes.mEndRadius = 0.0f; 00137 frond3Attributes.mTextureFileName = "JVTestPalmFrond.tga"; 00138 frond3Attributes.mRenderStyle = "billboard_tube"; 00139 frond3Attributes.mWindSensitivity = windSensitivity; 00140 00141 mFrond3.setAttributes( frond3Attributes ); 00142 00143 00144 //--------------------------------------------- 00145 // frond 4 00146 //--------------------------------------------- 00147 LLFlexibleObjectAttributes frond4Attributes; 00148 00149 frond4Attributes.mAnchorPositionOffset.setVec( 0.0f, 0.0f, 0.0f ); 00150 frond4Attributes.mAnchorDirection.setVec( 1.0f, -0.8f, 0.3f ); 00151 frond4Attributes.mAnchorDirection.normVec(); 00152 frond4Attributes.mColor = LLColor4( 0.15f, 0.25f, 0.0f, 1.0f ); 00153 frond4Attributes.mAnchorRadius = 0.5f; 00154 frond4Attributes.mTension = 2.0f; 00155 frond4Attributes.mNumSections = 2; 00156 frond4Attributes.mGravity = 2.0f; 00157 frond4Attributes.mLength = 6.0f; 00158 frond4Attributes.mEndRadius = 0.0f; 00159 frond4Attributes.mTextureFileName = "JVTestPalmFrond.tga"; 00160 frond4Attributes.mRenderStyle = "billboard_tube"; 00161 frond4Attributes.mWindSensitivity = windSensitivity; 00162 00163 00164 mFrond4.setAttributes( frond4Attributes ); 00165 00166 00167 //--------------------------------------------- 00168 // frond 5 00169 //--------------------------------------------- 00170 LLFlexibleObjectAttributes frond5Attributes; 00171 00172 frond5Attributes.mAnchorPositionOffset.setVec( 0.0f, 0.0f, 0.0f ); 00173 frond5Attributes.mAnchorDirection.setVec( 1.0f, -0.8f, -0.3f ); 00174 frond5Attributes.mAnchorDirection.normVec(); 00175 frond5Attributes.mColor = LLColor4( 0.15f, 0.25f, 0.0f, 1.0f ); 00176 frond5Attributes.mAnchorRadius = 0.5f; 00177 frond5Attributes.mTension = 2.0f; 00178 frond5Attributes.mNumSections = 2; 00179 frond5Attributes.mGravity = 2.0f; 00180 frond5Attributes.mLength = 5.0f; 00181 frond5Attributes.mEndRadius = 0.0f; 00182 frond5Attributes.mTextureFileName = "JVTestPalmFrond.tga"; 00183 frond5Attributes.mRenderStyle = "billboard_tube"; 00184 frond5Attributes.mWindSensitivity = windSensitivity; 00185 00186 mFrond5.setAttributes( frond5Attributes ); 00187 00188 }//------------------------------------------------------------------------------ 00189 00190 00191 00192 //--------------------------------------------------------------------------------- 00193 void LLHUDLocalAnimationObject::update() 00194 { 00195 if ( ! mParentObject ) 00196 { 00197 return; 00198 } 00199 00200 //-------------------------------------------------------------------------------------------------- 00201 // now, setting the trunk position and orientation, and updating it... 00202 //-------------------------------------------------------------------------------------------------- 00203 mTrunk.setParentPositionAndRotationDirectly( mParentObject->getRenderPosition(), mParentObject->getRenderRotation() ); 00204 mTrunk.update(); 00205 00206 00207 //-------------------------------------------------------------------------------------------------- 00208 // now, setting the frond positions and orientations, and updating them... 00209 //-------------------------------------------------------------------------------------------------- 00210 mFrond1.setParentPositionAndRotationDirectly( mTrunk.getEndPosition(), mTrunk.getEndRotation() ); 00211 mFrond2.setParentPositionAndRotationDirectly( mTrunk.getEndPosition(), mTrunk.getEndRotation() ); 00212 mFrond3.setParentPositionAndRotationDirectly( mTrunk.getEndPosition(), mTrunk.getEndRotation() ); 00213 mFrond4.setParentPositionAndRotationDirectly( mTrunk.getEndPosition(), mTrunk.getEndRotation() ); 00214 mFrond5.setParentPositionAndRotationDirectly( mTrunk.getEndPosition(), mTrunk.getEndRotation() ); 00215 00216 mFrond1.update(); 00217 mFrond2.update(); 00218 mFrond3.update(); 00219 mFrond4.update(); 00220 mFrond5.update(); 00221 00222 }//------------------------------------------------------------------ 00223 00224 00225 00226 00227 00228 00229 00230 //------------------------------------------------------------------ 00231 void LLHUDLocalAnimationObject::render() 00232 { 00233 mTrunk.render(); 00234 00235 mFrond1.render(); 00236 mFrond2.render(); 00237 mFrond3.render(); 00238 mFrond4.render(); 00239 mFrond5.render(); 00240 00241 }//------------------------------------------------------------------ 00242 00243 00244 00245 00246 00247 //------------------------------------------------------------------ 00248 void LLHUDLocalAnimationObject::setAttributes( LLLocalAnimationObjectAttributes a ) 00249 { 00250 //mAttributes = a; // ???? // how do I do this? 00251 00252 //mAttributes.mAnchorPositionOffset = a.mAnchorPositionOffset; 00253 //mAttributes.mAnchorDirection = a.mAnchorDirection; 00254 //mAttributes.mAnchorRadius = a.mAnchorRadius; 00255 //mAttributes.mNumSections = a.mNumSections; 00256 //mAttributes.mLength = a.mLength; 00257 //mAttributes.mGravity = a.mGravity; 00258 //mAttributes.mAirFriction = a.mAirFriction; 00259 //mAttributes.mTension = a.mTension; 00260 //mAttributes.mRadiusChange = a.mRadiusChange; 00261 00262 }//------------------------------------------------------------------ 00263 00264 00265 00266 //------------------------------------------------------------------ 00267 void LLHUDLocalAnimationObject::setParentObject( LLViewerObject * p ) 00268 { 00269 printf( "Setting parent of localAnimationObject controls %x to object %x \n", this, p ); 00270 mParentObject = p; 00271 00272 }//------------------------------------------------------------------ 00273 00274 00275 //------------------------------------------------------------------ 00276 LLViewerObject * LLHUDLocalAnimationObject::getParentObject() 00277 { 00278 return mParentObject; 00279 00280 }//------------------------------------------------------------------ 00281 00282 00283 00284 //------------------------------------------------------------------ 00285 void LLHUDLocalAnimationObject::markAsDead() 00286 { 00287 mDead = TRUE; 00288 mParentObject = NULL; 00289 00290 }//------------------------------------------------------------------ 00291 00292 */ 00293 00294 00295 00296 00297 00298