lllocalanimationobject.cpp

Go to the documentation of this file.
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 

Generated on Thu Jul 1 06:08:49 2010 for Second Life Viewer by  doxygen 1.4.7