00001
00002
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