//===========================================================================// // Copyright (C) Microsoft Corporation. All rights reserved. // //===========================================================================// #pragma once #define MLR_MLR_I_MT_PMESH_HPP #if !defined(MLR_MLR_HPP) #include #endif #if !defined(MLR_MLR_I_PMesh_HPP) #include #endif namespace MidLevelRenderer { //########################################################################## //### MLRIndexedPolyMesh with no color no lighting multi texture layer #### //########################################################################## class MLR_I_MT_PMesh: public MLR_I_PMesh { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Initialization // public: static void InitializeClass(); static void TerminateClass(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Constructors/Destructors // protected: MLR_I_MT_PMesh( ClassData *class_data, Stuff::MemoryStream *stream, int version ); ~MLR_I_MT_PMesh(); public: MLR_I_MT_PMesh(ClassData *class_data=MLR_I_MT_PMesh::DefaultData); static MLR_I_MT_PMesh* Make( Stuff::MemoryStream *stream, int version ); void Save(Stuff::MemoryStream *stream); public: void Copy(MLR_I_PMesh*); virtual int TransformAndClip(Stuff::Matrix4D *, MLRClippingState, GOSVertexPool*,bool=false); virtual void TransformNoClip(Stuff::Matrix4D*, GOSVertexPool*,bool=false); void SetTexCoordData(const Vector2DScalar*, int, int pass=0); void GetTexCoordData(const Vector2DScalar **data, int *dataSize, int pass); virtual void SetReferenceState(const MLRState& _state, int pass=0) { Check_Object(this); Verify(pass>=0 && pass=0 && pass=0 && pass=0 && pass multiState, multiReferenceState; Stuff::DynamicArrayOf* > multiTexCoords; // Max_Number_Vertices_Per_Mesh Stuff::DynamicArrayOf multiTexCoordsPointers; static Stuff::DynamicArrayOf > *clipExtraMultiTexCoords; // Max_Number_Vertices_Per_Mesh static Stuff::DynamicArrayOf > *extraMultiTexCoords; // Max_Number_Vertices_Per_Mesh }; MLRShape* CreateIndexedIcosahedron_NoColor_NoLit_MultiTexture( IcoInfo&, Stuff::DynamicArrayOf* ); }