00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _SPOTLIGHT_H 00013 #define _SPOTLIGHT_H 00014 00015 #include "Light.h" 00016 00018 class XSIEXPORT CSLSpotLight 00019 : public CSLLight 00020 { 00021 public: 00022 00029 CSLSpotLight(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00030 00033 virtual ~CSLSpotLight(); 00034 00038 CSIBCVector3D GetInterestPosition(); 00039 00044 SI_Void SetInterestPosition(CSIBCVector3D &in_rValue); 00045 00049 SI_Float GetConeAngle(); 00050 00055 SI_Void SetConeAngle(SI_Float in_fValue); 00056 00060 SI_Float GetSpreadAngle(); 00061 00066 SI_Void SetSpreadAngle(SI_Float in_fValue); 00067 00072 virtual SI_Error Synchronize(); 00073 00077 virtual ETemplateType Type(); 00078 00083 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName); 00084 00090 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName); 00091 00092 CSLVector3DProxy* GetInterestPositionProxy() { return &m_InterestPosition;}; 00093 00094 protected: 00095 virtual SI_Bool ConstraintTypeIsValid(CSLConstraint::EConstraintType in_ConstraintType); 00096 00097 private: 00098 CSLVector3DProxy m_InterestPosition; 00099 CSLFloatProxy m_ConeAngle; 00100 CSLFloatProxy m_SpreadAngle; 00101 00102 void *m_pReserved; // reserved for future extension 00103 }; 00104 00105 #endif