SpotLight.h

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