Initial commit
This commit is contained in:
252
Torque/SDK/engine/game/fx/fxSunLight.h
Normal file
252
Torque/SDK/engine/game/fx/fxSunLight.h
Normal file
@@ -0,0 +1,252 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine - fxLight
|
||||
//
|
||||
// Written by Melvyn May, 27th August 2002.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef _FXSUNLIGHT_H_
|
||||
#define _FXSUNLIGHT_H_
|
||||
|
||||
#ifndef _SCENEOBJECT_H_
|
||||
#include "sim/sceneObject.h"
|
||||
#endif
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Class: fxSunLight
|
||||
//------------------------------------------------------------------------------
|
||||
class fxSunLight : public SceneObject
|
||||
{
|
||||
private:
|
||||
typedef SceneObject Parent;
|
||||
|
||||
U32 CheckKeySyntax(StringTableEntry Key);
|
||||
void CheckAnimationKeys(void);
|
||||
F32 GetLerpKey(StringTableEntry Key, U32 PosFrom, U32 PosTo, F32 ValueFrom, F32 ValueTo, F32 Lerp);
|
||||
void AnimateSun(F32 ElapsedTime);
|
||||
void InitialiseAnimation(void);
|
||||
void ResetAnimation(void);
|
||||
bool TestLOS(const Point3F& Pos);
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
enum { fxSunLightConfigChangeMask = BIT(0) };
|
||||
|
||||
bool mAddedToScene;
|
||||
|
||||
MRandomLCG RandomGen;
|
||||
|
||||
// Textures.
|
||||
TextureHandle mLocalFlareTextureHandle;
|
||||
TextureHandle mRemoteFlareTextureHandle;
|
||||
|
||||
F32 mElapsedTime;
|
||||
S32 mLastRenderTime;
|
||||
F32 mLocalFlareScale;
|
||||
Point3F mSunlightPosition; // Sunlight Frame Position.
|
||||
|
||||
public:
|
||||
fxSunLight();
|
||||
~fxSunLight();
|
||||
|
||||
// *********************************
|
||||
// Configuration Interface.
|
||||
// *********************************
|
||||
|
||||
// Debugging.
|
||||
void setEnable(bool Status);
|
||||
|
||||
// Media.
|
||||
void setFlareBitmaps(const char* LocalName, const char* RemoteName);
|
||||
|
||||
// Sun Orbit.
|
||||
void setSunAzimuth(F32 Azimuth);
|
||||
void setSunElevation(F32 Elevation);
|
||||
|
||||
// Flare.
|
||||
void setFlareTP(bool Status);
|
||||
void setFlareColour(ColorF Colour);
|
||||
void setFlareBrightness(F32 Brightness);
|
||||
void setFlareSize(F32 Size);
|
||||
void setFadeTime(F32 Time);
|
||||
void setBlendMode(U32 Mode);
|
||||
|
||||
// Animation Options.
|
||||
void setUseColour(bool Status);
|
||||
void setUseBrightness(bool Status);
|
||||
void setUseRotation(bool Status);
|
||||
void setUseSize(bool Status);
|
||||
void setUseAzimuth(bool Status);
|
||||
void setUseElevation(bool Status);
|
||||
void setLerpColour(bool Status);
|
||||
void setLerpBrightness(bool Status);
|
||||
void setLerpRotation(bool Status);
|
||||
void setLerpSize(bool Status);
|
||||
void setLerpAzimuth(bool Status);
|
||||
void setLerpElevation(bool Status);
|
||||
void setLinkFlareSize(bool Status);
|
||||
void setSingleColourKeys(bool Status);
|
||||
|
||||
// Animation Extents.
|
||||
void setMinColour(ColorF Colour);
|
||||
void setMaxColour(ColorF Colour);
|
||||
void setMinBrightness(F32 Brightness);
|
||||
void setMaxBrightness(F32 Brightness);
|
||||
void setMinRotation(F32 Rotation);
|
||||
void setMaxRotation(F32 Rotation);
|
||||
void setMinSize(F32 Size);
|
||||
void setMaxSize(F32 Size);
|
||||
void setMinAzimuth(F32 Azimuth);
|
||||
void setMaxAzimuth(F32 Azimuth);
|
||||
void setMinElevation(F32 Elevation);
|
||||
void setMaxElevation(F32 Elevation);
|
||||
|
||||
// Animation Keys.
|
||||
void setRedKeys(const char* Keys);
|
||||
void setGreenKeys(const char* Keys);
|
||||
void setBlueKeys(const char* Keys);
|
||||
void setBrightnessKeys(const char* Keys);
|
||||
void setRotationKeys(const char* Keys);
|
||||
void setSizeKeys(const char* Keys);
|
||||
void setAzimuthKeys(const char* Keys);
|
||||
void setElevationKeys(const char* Keys);
|
||||
|
||||
// Animation Times.
|
||||
void setColourTime(F32 Time);
|
||||
void setBrightnessTime(F32 Time);
|
||||
void setRotationTime(F32 Time);
|
||||
void setSizeTime(F32 Time);
|
||||
void setAzimuthTime(F32 Time);
|
||||
void setElevationTime(F32 Time);
|
||||
|
||||
// Misc,
|
||||
void reset(void);
|
||||
|
||||
// SceneObject
|
||||
bool prepRenderImage(SceneState* state, const U32 stateKey, const U32 startZone, const bool modifyBaseZoneState);
|
||||
void renderObject(SceneState *state, SceneRenderImage *image);
|
||||
|
||||
// SimObject
|
||||
bool onAdd();
|
||||
void onRemove();
|
||||
void inspectPostApply();
|
||||
|
||||
// NetObject
|
||||
U32 packUpdate(NetConnection *conn, U32 mask, BitStream *stream);
|
||||
void unpackUpdate(NetConnection *conn, BitStream *stream);
|
||||
|
||||
// ConObject.
|
||||
static void initPersistFields();
|
||||
|
||||
bool mDoneSunLock;
|
||||
|
||||
// Field Data.
|
||||
|
||||
// Debugging.
|
||||
bool mEnable; // Light Enable.
|
||||
|
||||
// Media.
|
||||
StringTableEntry mLocalFlareTextureName; // Local Flare Texture Name.
|
||||
StringTableEntry mRemoteFlareTextureName; // Remote Flare Texture Name.
|
||||
|
||||
// Sun Orbit.
|
||||
F32 mSunAzimuth;
|
||||
F32 mSunElevation;
|
||||
bool mLockToRealSun; // Lock to Real Sun Flag.
|
||||
|
||||
// Flare.
|
||||
bool mFlareTP; // Flare Third Person Flag.
|
||||
ColorF mFlareColour; // Flare Colour.
|
||||
F32 mFlareBrightness; // Brightness.
|
||||
F32 mFlareSize; // Flare Size.
|
||||
F32 mFadeTime; // Fade Time.
|
||||
U32 mBlendMode; // Blend Mode.
|
||||
|
||||
// Animation Options.
|
||||
bool mUseColour; // Use Colour Flag.
|
||||
bool mUseBrightness; // Use Brightness Flag.
|
||||
bool mUseRotation; // Use Rotation Flag.
|
||||
bool mUseSize; // Use Size Flag.
|
||||
bool mUseAzimuth; // Use Azimuth Flag.
|
||||
bool mUseElevation; // Use Elevation Flag.
|
||||
bool mLerpColour; // Lerp Colour Flag.
|
||||
bool mLerpBrightness; // Lerp Brightness Flag.
|
||||
bool mLerpRotation; // Lerp Rotation Flag.
|
||||
bool mLerpSize; // Lerp Size Flag.
|
||||
bool mLerpAzimuth; // Lerp Azimuth Flag.
|
||||
bool mLerpElevation; // Lerp Elevation Flag.
|
||||
bool mLinkFlareSize; // Link Flare Size Animation.
|
||||
bool mSingleColourKeys; // Single-Channel Colour Keys.
|
||||
|
||||
// Animation Extents.
|
||||
ColorF mMinColour; // Minimum Colour.
|
||||
ColorF mMaxColour; // Maximum Colour.
|
||||
F32 mMinBrightness; // Minimum Brightness.
|
||||
F32 mMaxBrightness; // Maximum Brightness.
|
||||
F32 mMinRotation; // Minimum Rotation.
|
||||
F32 mMaxRotation; // Maximum Rotation.
|
||||
F32 mMinSize; // Minimum Size.
|
||||
F32 mMaxSize; // Maximum Size.
|
||||
F32 mMinAzimuth; // Minimum Azimuth.
|
||||
F32 mMaxAzimuth; // Maximum Azimuth.
|
||||
F32 mMinElevation; // Minimum Elevation.
|
||||
F32 mMaxElevation; // Maximum Elevation.
|
||||
|
||||
// Animation Keys.
|
||||
StringTableEntry mRedKeys; // Red Animation Keys.
|
||||
StringTableEntry mGreenKeys; // Green Animation Keys.
|
||||
StringTableEntry mBlueKeys; // Blue Animation Keys.
|
||||
StringTableEntry mBrightnessKeys; // Brightness Animation Keys.
|
||||
StringTableEntry mRotationKeys; // Rotation Animation Keys.
|
||||
StringTableEntry mSizeKeys; // Size Animation Keys.
|
||||
StringTableEntry mAzimuthKeys; // Size Azimuth Keys.
|
||||
StringTableEntry mElevationKeys; // Size Elevation Keys.
|
||||
|
||||
// Animation Times.
|
||||
F32 mColourTime; // Colour Time (Seconds).
|
||||
F32 mBrightnessTime; // Brightness Time.
|
||||
F32 mRotationTime; // Rotation Time.
|
||||
F32 mSizeTime; // Size Time.
|
||||
F32 mAzimuthTime; // Azimuth Time.
|
||||
F32 mElevationTime; // Elevation Time.
|
||||
|
||||
// Current Animation.
|
||||
ColorF mAnimationColour; // Current Colour.
|
||||
F32 mAnimationBrightness; // Current Brightness.
|
||||
F32 mAnimationRotation; // Current Rotation.
|
||||
F32 mAnimationSize; // Current Size.
|
||||
F32 mAnimationAzimuth; // Current Azimuth.
|
||||
F32 mAnimationElevation; // Current Elevation.
|
||||
|
||||
// Elapsed Times.
|
||||
F32 mColourElapsedTime; // Colour Elapsed Time.
|
||||
F32 mBrightnessElapsedTime; // Brightness Elapsed Time.
|
||||
F32 mRotationElapsedTime; // Rotation Elapsed Time.
|
||||
F32 mSizeElapsedTime; // Size Elapsed Time.
|
||||
F32 mAzimuthElapsedTime; // Azimuth Elapsed Time.
|
||||
F32 mElevationElapsedTime; // Elevation Elapsed Time.
|
||||
|
||||
// Time Scales.
|
||||
F32 mColourTimeScale; // Colour Time Scale.
|
||||
F32 mBrightnessTimeScale; // Brightness Time Scale.
|
||||
F32 mRotationTimeScale; // Rotation Time Scale.
|
||||
F32 mSizeTimeScale; // Size Time Scale.
|
||||
F32 mAzimuthTimeScale; // Azimuth Time Scale.
|
||||
F32 mElevationTimeScale; // Elevation Time Scale.
|
||||
|
||||
// Key Lengths (Validity).
|
||||
U32 mRedKeysLength; // Red Keys Length.
|
||||
U32 mGreenKeysLength; // Green Keys Length.
|
||||
U32 mBlueKeysLength; // Blue Keys Length.
|
||||
U32 mBrightnessKeysLength; // Brightness Keys Length.
|
||||
U32 mRotationKeysLength; // Rotation Keys Length.
|
||||
U32 mSizeKeysLength; // Size Keys Length.
|
||||
U32 mAzimuthKeysLength; // Azimuth Keys Length.
|
||||
U32 mElevationKeysLength; // Elevation Keys Length.
|
||||
|
||||
// Declare Console Object.
|
||||
DECLARE_CONOBJECT(fxSunLight);
|
||||
};
|
||||
|
||||
#endif // _FXSUNLIGHT_H_
|
||||
Reference in New Issue
Block a user