# 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