//===========================================================================// // Copyright (C) Microsoft Corporation. All rights reserved. // //===========================================================================// #pragma once #define MLR_MLR_I_TMESH_HPP #include #include namespace MidLevelRenderer { //########################################################################## //#### MLRIndexedTriMesh with no color no lighting one texture layer ##### //########################################################################## class MLR_I_TMesh: public MLRIndexedPrimitiveBase { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Initialization // public: static void InitializeClass(); static void TerminateClass(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Constructors/Destructors // protected: MLR_I_TMesh( ClassData *class_data, Stuff::MemoryStream *stream, int version ); ~MLR_I_TMesh(); public: MLR_I_TMesh(ClassData *class_data=MLR_I_TMesh::DefaultData); static MLR_I_TMesh* Make( Stuff::MemoryStream *stream, int version ); void Save(Stuff::MemoryStream *stream); public: virtual void InitializeDrawPrimitive(unsigned char, int=0); virtual int GetNumPrimitives() { Check_Object(this); return numOfTriangles; } virtual void SetSubprimitiveLengths( unsigned char *length_array, int subprimitive_count ) { Check_Object(this); Verify(gos_GetCurrentHeap() == Heap); numOfTriangles = subprimitive_count; testList.SetLength(numOfTriangles); facePlanes.SetLength(numOfTriangles); } void FindFacePlanes(); virtual int FindBackFace(const Stuff::Point3D&); const Stuff::Plane *GetTrianglePlane(int i) { Check_Object(this); Verify(i testList; Stuff::DynamicArrayOf facePlanes; }; #define ICO_X 0.525731112119133606f #define ICO_Z 0.850650808352039932f extern float vdata[12][3]; extern unsigned int tindices [20][3]; extern long triDrawn; MLR_I_TMesh* CreateIndexedTriCube_NoColor_NoLit(Stuff::Scalar, MLRState*); MLRShape* CreateIndexedTriIcosahedron_NoColor_NoLit( IcoInfo&, MLRState* ); }