bool LightBase::onAdd() { if ( !Parent::onAdd() ) return false; // Update the light parameters. _conformLights(); addToScene(); return true; }
void LightBase::inspectPostApply() { // We do not call the parent here as it // will call setScale() and screw up the // real sizing fields on the light. // Ok fine... then we must set MountedMask ourself. _conformLights(); setMaskBits( EnabledMask | UpdateMask | TransformMask | DatablockMask | MountedMask ); }
void ScatterSky::submitLights( LightManager *lm, bool staticLighting ) { if ( mDirty ) { _conformLights(); mDirty = false; } // The sun is a special light and needs special registration. lm->setSpecialLight( LightManager::slSunLightType, mLight ); }
void Sun::unpackUpdate( NetConnection *conn, BitStream *stream ) { Parent::unpackUpdate( conn, stream ); if ( stream->readFlag() ) // UpdateMask { stream->read( &mSunAzimuth ); stream->read( &mSunElevation ); stream->read( &mLightColor ); stream->read( &mLightAmbient ); stream->read( &mBrightness ); mCastShadows = stream->readFlag(); stream->read(&mStaticRefreshFreq); stream->read(&mDynamicRefreshFreq); stream->read( &mFlareScale ); if ( stream->readFlag() ) { SimObjectId id = stream->readRangedU32( DataBlockObjectIdFirst, DataBlockObjectIdLast ); LightFlareData *datablock = NULL; if ( Sim::findObject( id, datablock ) ) mFlareData = datablock; else { conn->setLastError( "Sun::unpackUpdate() - invalid LightFlareData!" ); mFlareData = NULL; } } else mFlareData = NULL; mCoronaEnabled = stream->readFlag(); stream->read( &mCoronaMatName ); stream->read( &mCoronaScale ); stream->read( &mCoronaTint ); mCoronaUseLightColor = stream->readFlag(); mLight->unpackExtended( stream ); } if ( isProperlyAdded() ) { _initCorona(); _conformLights(); } }
bool Sun::onAdd() { if ( !Parent::onAdd() ) return false; // Register as listener to TimeOfDay update events TimeOfDay::getTimeOfDayUpdateSignal().notify( this, &Sun::_updateTimeOfDay ); // Make this thing have a global bounds so that its // always returned from spatial light queries. setGlobalBounds(); resetWorldBox(); setRenderTransform( mObjToWorld ); addToScene(); _initCorona(); // Update the light parameters. _conformLights(); return true; }
void LightBase::unpackUpdate( NetConnection *conn, BitStream *stream ) { Parent::unpackUpdate( conn, stream ); mIsEnabled = stream->readFlag(); if ( stream->readFlag() ) // TransformMask stream->readAffineTransform( &mObjToWorld ); if ( stream->readFlag() ) // UpdateMask { stream->read( &mColor ); stream->read( &mBrightness ); mCastShadows = stream->readFlag(); stream->read( &mPriority ); mLight->unpackExtended( stream ); mAnimState.active = stream->readFlag(); stream->read( &mAnimState.animationPeriod ); stream->read( &mAnimState.animationPhase ); stream->read( &mFlareScale ); } if ( stream->readFlag() ) // DatablockMask { if ( stream->readFlag() ) { SimObjectId id = stream->readRangedU32( DataBlockObjectIdFirst, DataBlockObjectIdLast ); LightAnimData *datablock = NULL; if ( Sim::findObject( id, datablock ) ) mAnimationData = datablock; else { conn->setLastError( "Light::unpackUpdate() - invalid LightAnimData!" ); mAnimationData = NULL; } } else mAnimationData = NULL; if ( stream->readFlag() ) { SimObjectId id = stream->readRangedU32( DataBlockObjectIdFirst, DataBlockObjectIdLast ); LightFlareData *datablock = NULL; if ( Sim::findObject( id, datablock ) ) mFlareData = datablock; else { conn->setLastError( "Light::unpackUpdate() - invalid LightCoronaData!" ); mFlareData = NULL; } } else mFlareData = NULL; } if ( isProperlyAdded() ) _conformLights(); }
void Sun::setColor( const ColorF &color ) { mLightColor = color; _conformLights(); setMaskBits( UpdateMask ); // TODO: Break out the masks to save some space! }
void Sun::setElevation( F32 elevation ) { mSunElevation = elevation; _conformLights(); setMaskBits( UpdateMask ); // TODO: Break out the masks to save some space! }
void Sun::setAzimuth( F32 azimuth ) { mSunAzimuth = azimuth; _conformLights(); setMaskBits( UpdateMask ); // TODO: Break out the masks to save bandwidth! }
void Sun::inspectPostApply() { _conformLights(); setMaskBits(UpdateMask); }