CoordinateSystem.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _COORDINATESYSTEM_H
00015 #define _COORDINATESYSTEM_H
00016 
00017 #include "Template.h"
00018 
00019 
00025 class XSIEXPORT CSLCoordinateSystem
00026     : public CSLTemplate
00027 {
00028 public:
00031     enum EHandRotation
00032     {
00033         SI_LEFT_HANDED,     
00034         SI_RIGHT_HANDED,    
00035     };
00036 
00039     enum EUOrientation
00040     {
00041         SI_RIGHT_U,         
00042         SI_LEFT_U,          
00043     };
00044 
00047     enum EVOrientation
00048     {
00049         SI_DOWN_V,          
00050         SI_UP_V,            
00051     };
00052 
00055     enum EAxisOrientation
00056     {
00057         SI_RIGHT,           
00058         SI_LEFT,            
00059         SI_UP,              
00060         SI_DOWN,            
00061         SI_IN,              
00062         SI_OUT,             
00063     };
00064 
00067     enum ECoordinateSystemStyle
00068     {
00069         SI_SOFTIMAGE_3D,
00070         SI_D3D,
00071         SI_PLAYSTATION,
00072         SI_NINTENDO,
00073     };
00074 
00081     CSLCoordinateSystem(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00082 
00085     virtual ~CSLCoordinateSystem();
00086 
00090     EHandRotation           GetHandRotation() { return m_HandRotation; }
00091 
00095     SI_Void                 SetHandRotation(EHandRotation in_Type) { m_HandRotation = in_Type; }
00096 
00100     EUOrientation           GetUAxisOrientation() { return m_UAxis; }
00101 
00105     SI_Void                 SetUAxisOrientation(EUOrientation in_Type) { m_UAxis = in_Type; }
00106 
00110     EVOrientation           GetVAxisOrientation() { return m_VAxis; }
00111 
00115     SI_Void                 SetVAxisOrientation(EVOrientation in_Type) { m_VAxis = in_Type; }
00116 
00120     EAxisOrientation        GetXAxisOrientation() { return m_XAxis; }
00121 
00125     SI_Void                 SetXAxisOrientation(EAxisOrientation in_Type) { m_XAxis = in_Type; }
00126 
00130     EAxisOrientation        GetYAxisOrientation() { return m_YAxis; }
00131 
00135     SI_Void                 SetYAxisOrientation(EAxisOrientation in_Type) { m_YAxis = in_Type; }
00136 
00140     EAxisOrientation        GetZAxisOrientation() { return m_ZAxis; }
00141 
00145     SI_Void                 SetZAxisOrientation(EAxisOrientation in_Type) { m_ZAxis = in_Type; }
00146 
00150     SI_Void                 SetCoordinateSystemStyle(ECoordinateSystemStyle in_Style);
00151 
00155     virtual ETemplateType   Type() { return SI_COORDINATE_SYSTEM; }
00156 
00157 private:
00158     CSLEnumProxy<EHandRotation, SI_RIGHT_HANDED>    m_HandRotation;
00159     CSLEnumProxy<EUOrientation, SI_LEFT>            m_UAxis;
00160     CSLEnumProxy<EVOrientation, SI_UP>              m_VAxis;
00161     CSLEnumProxy<EAxisOrientation, SI_OUT>          m_XAxis;
00162     CSLEnumProxy<EAxisOrientation, SI_OUT>          m_YAxis;
00163     CSLEnumProxy<EAxisOrientation, SI_OUT>          m_ZAxis;
00164 };
00165 
00166 #endif