00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _COORDINATESYSTEM_H
00025 #define _COORDINATESYSTEM_H
00026
00027 #include "Template.h"
00028
00029
00031 class XSIEXPORT CSLCoordinateSystem
00032 : public CSLTemplate
00033 {
00034 public:
00038 enum EHandRotation
00039 {
00040 SI_LEFT_HANDED,
00041 SI_RIGHT_HANDED,
00042 };
00043
00047 enum EUOrientation
00048 {
00049 SI_RIGHT_U,
00050 SI_LEFT_U,
00051 };
00052
00056 enum EVOrientation
00057 {
00058 SI_DOWN_V,
00059 SI_UP_V,
00060 };
00061
00065 enum EAxisOrientation
00066 {
00067 SI_RIGHT,
00068 SI_LEFT,
00069 SI_UP,
00070 SI_DOWN,
00071 SI_IN,
00072 SI_OUT,
00073 };
00074
00078 enum ECoordinateSystemStyle
00079 {
00080 SI_SOFTIMAGE_3D,
00081 SI_D3D,
00082 SI_PLAYSTATION,
00083 SI_NINTENDO,
00084 };
00085
00092 CSLCoordinateSystem(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00093
00096 virtual ~CSLCoordinateSystem();
00097
00101 EHandRotation GetHandRotation() { return m_HandRotation; }
00102
00107 SI_Void SetHandRotation(EHandRotation in_Type) { m_HandRotation = in_Type; }
00108
00112 EUOrientation GetUAxisOrientation() { return m_UAxis; }
00113
00118 SI_Void SetUAxisOrientation(EUOrientation in_Type) { m_UAxis = in_Type; }
00119
00123 EVOrientation GetVAxisOrientation() { return m_VAxis; }
00124
00129 SI_Void SetVAxisOrientation(EVOrientation in_Type) { m_VAxis = in_Type; }
00130
00134 EAxisOrientation GetXAxisOrientation() { return m_XAxis; }
00135
00140 SI_Void SetXAxisOrientation(EAxisOrientation in_Type) { m_XAxis = in_Type; }
00141
00145 EAxisOrientation GetYAxisOrientation() { return m_YAxis; }
00146
00151 SI_Void SetYAxisOrientation(EAxisOrientation in_Type) { m_YAxis = in_Type; }
00152
00156 EAxisOrientation GetZAxisOrientation() { return m_ZAxis; }
00157
00162 SI_Void SetZAxisOrientation(EAxisOrientation in_Type) { m_ZAxis = in_Type; }
00163
00168 SI_Void SetCoordinateSystemStyle(ECoordinateSystemStyle in_Style);
00169
00173 virtual ETemplateType Type() { return SI_COORDINATE_SYSTEM; }
00174
00175 private:
00176 CSLEnumProxy<EHandRotation, SI_RIGHT_HANDED> m_HandRotation;
00177 CSLEnumProxy<EUOrientation, SI_LEFT> m_UAxis;
00178 CSLEnumProxy<EVOrientation, SI_UP> m_VAxis;
00179 CSLEnumProxy<EAxisOrientation, SI_OUT> m_XAxis;
00180 CSLEnumProxy<EAxisOrientation, SI_OUT> m_YAxis;
00181 CSLEnumProxy<EAxisOrientation, SI_OUT> m_ZAxis;
00182 };
00183
00184 #endif