# CoordinateSystem.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 _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