SpotLight.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _SPOTLIGHT_H
00015 #define _SPOTLIGHT_H
00016 
00017 #include "Light.h"
00018 
00021 class XSIEXPORT CSLSpotLight
00022     : public CSLLight
00023 {
00024 public:
00025 
00032     CSLSpotLight(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00033 
00036     virtual ~CSLSpotLight();
00037 
00041     CSIBCVector3D GetInterestPosition();
00042 
00046     SI_Void SetInterestPosition(CSIBCVector3D &in_rValue);
00047 
00051     SI_Float GetConeAngle();
00052 
00056     SI_Void SetConeAngle(SI_Float in_fValue);
00057 
00061     SI_Float GetSpreadAngle();
00062 
00066     SI_Void SetSpreadAngle(SI_Float in_fValue);
00067 
00071     virtual SI_Error Synchronize();
00072 
00076     virtual ETemplateType Type();
00077 
00082     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00083 
00089     virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00090 
00091     CSLVector3DProxy* GetInterestPositionProxy() { return &m_InterestPosition;};
00092 
00093 protected:
00094     virtual SI_Bool ConstraintTypeIsValid(CSLConstraint::EConstraintType in_ConstraintType);
00095 
00096 private:
00097     CSLVector3DProxy m_InterestPosition;
00098     CSLFloatProxy m_ConeAngle;
00099     CSLFloatProxy m_SpreadAngle;
00100 
00101     void *m_pReserved;  // reserved for future extension
00102 };
00103 
00104 #endif