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