/********************************************************************** *< FILE: IConveriosnManager.h DESCRIPTION: Tools to convert from one coordinate system to another CREATED BY: Neil Hazzard HISTORY: 10|12|2002 IGame Version: 1.122 *> Copyright (c) 2002, All Rights Reserved. **********************************************************************/ /*!\file IConversionManager.h \brief IGame Coordinate conversion Interfaces. */ #ifndef __ICONVERSIONMANAGER__H #define __ICONVERSIONMANAGER__H #pragma once #include "Max.h" #define IGAMEEXPORT __declspec( dllexport ) //!A User definable Coordinate System /*! The developer can use this to define the Coordinate System that they are using. Rotation specifies whether it is a Right or Left handed system. The Axis define which way the primary axis point. This will mean that the data extracted is converted correctly, and the winding order is correct for Left and Right handed systems. \n In Max this could be defined as \n
UserCoord = { 1, //Right Handed 1, //X axis goes right 4, //Y Axis goes in 2, //Z Axis goes up. 1, //U Tex axis is left 0, //V Tex axis is Up }*/ struct UserCoord{ //! Handedness /*! 0 specifies Left Handed, 1 specifies Right Handed. */ int rotation; //! The X axis /*! It can be one of the following values 0 = left, 1 = right, 2 = Up, 3 = Down, 4 = in, 5 = out. */ int xAxis; //! The Y axis /*! It can be one of the following values 0 = left, 1 = right, 2 = Up, 3 = Down, 4 = in, 5 = out. */ int yAxis; //! The Z axis /*! It can be one of the following values 0 = left, 1 = right, 2 = Up, 3 = Down, 4 = in, 5 = out. */ int zAxis; //! The U Texture axis /*! It can be one of the following values 0 = left, 1 = right */ int uAxis; //! The V Texture axis /*! It can be one of the following values 0 = Up, 1 = down */ int vAxis; }; //! A developer can use this class to define what Coord Systems IGame exports the data in /*! IGame will convert data from the standard Max RH Z up system to any defined system. At the moment direct support for DirectX and OpenGL are provided. This means that all Matrix and vertex data will have been converted ready to use on your target system \nYou should set up the coordinate system straight after initialising IGame. The default is to provide everything in Max native formats. */ class IGameConversionManager { public: //! The supported Coordinate Systems /*! These are used to tell IGame how to format the data */ enum CoordSystem{ IGAME_MAX, /*!