00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _COORDINATESYSTEM_H
00013 #define _COORDINATESYSTEM_H
00014
00015 #include "Template.h"
00016
00017
00021 class XSIEXPORT CSLCoordinateSystem
00022 : public CSLTemplate
00023 {
00024 public:
00028 enum EHandRotation
00029 {
00030 SI_LEFT_HANDED,
00031 SI_RIGHT_HANDED,
00032 };
00033
00037 enum EUOrientation
00038 {
00039 SI_RIGHT_U,
00040 SI_LEFT_U,
00041 };
00042
00046 enum EVOrientation
00047 {
00048 SI_DOWN_V,
00049 SI_UP_V,
00050 };
00051
00055 enum EAxisOrientation
00056 {
00057 SI_RIGHT,
00058 SI_LEFT,
00059 SI_UP,
00060 SI_DOWN,
00061 SI_IN,
00062 SI_OUT,
00063 };
00064
00068 enum ECoordinateSystemStyle
00069 {
00070 SI_SOFTIMAGE_3D,
00071 SI_D3D,
00072 SI_PLAYSTATION,
00073 SI_NINTENDO,
00074 };
00075
00082 CSLCoordinateSystem(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00083
00086 virtual ~CSLCoordinateSystem();
00087
00091 EHandRotation GetHandRotation() { return m_HandRotation; }
00092
00097 SI_Void SetHandRotation(EHandRotation in_Type) { m_HandRotation = in_Type; }
00098
00102 EUOrientation GetUAxisOrientation() { return m_UAxis; }
00103
00108 SI_Void SetUAxisOrientation(EUOrientation in_Type) { m_UAxis = in_Type; }
00109
00113 EVOrientation GetVAxisOrientation() { return m_VAxis; }
00114
00119 SI_Void SetVAxisOrientation(EVOrientation in_Type) { m_VAxis = in_Type; }
00120
00124 EAxisOrientation GetXAxisOrientation() { return m_XAxis; }
00125
00130 SI_Void SetXAxisOrientation(EAxisOrientation in_Type) { m_XAxis = in_Type; }
00131
00135 EAxisOrientation GetYAxisOrientation() { return m_YAxis; }
00136
00141 SI_Void SetYAxisOrientation(EAxisOrientation in_Type) { m_YAxis = in_Type; }
00142
00146 EAxisOrientation GetZAxisOrientation() { return m_ZAxis; }
00147
00152 SI_Void SetZAxisOrientation(EAxisOrientation in_Type) { m_ZAxis = in_Type; }
00153
00158 SI_Void SetCoordinateSystemStyle(ECoordinateSystemStyle in_Style);
00159
00163 virtual ETemplateType Type() { return SI_COORDINATE_SYSTEM; }
00164
00165 private:
00166 CSLEnumProxy<EHandRotation, SI_RIGHT_HANDED> m_HandRotation;
00167 CSLEnumProxy<EUOrientation, SI_LEFT> m_UAxis;
00168 CSLEnumProxy<EVOrientation, SI_UP> m_VAxis;
00169 CSLEnumProxy<EAxisOrientation, SI_OUT> m_XAxis;
00170 CSLEnumProxy<EAxisOrientation, SI_OUT> m_YAxis;
00171 CSLEnumProxy<EAxisOrientation, SI_OUT> m_ZAxis;
00172 };
00173
00174 #endif