Panda3D
|
00001 // Filename: fltMesh.h 00002 // Created by: drose (28Feb01) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) Carnegie Mellon University. All rights reserved. 00008 // 00009 // All use of this software is subject to the terms of the revised BSD 00010 // license. You should have received a copy of this license along 00011 // with this source code in a file named "LICENSE." 00012 // 00013 //////////////////////////////////////////////////////////////////// 00014 00015 #ifndef FLTMESH_H 00016 #define FLTMESH_H 00017 00018 #include "pandatoolbase.h" 00019 00020 #include "fltGeometry.h" 00021 #include "fltLocalVertexPool.h" 00022 00023 #include "pointerTo.h" 00024 00025 //////////////////////////////////////////////////////////////////// 00026 // Class : FltMesh 00027 // Description : A mesh of connected polygons and tristrips, etc., 00028 // with a local vertex pool. 00029 //////////////////////////////////////////////////////////////////// 00030 class FltMesh : public FltGeometry { 00031 public: 00032 FltMesh(FltHeader *header); 00033 00034 PT(FltLocalVertexPool) _vpool; 00035 00036 protected: 00037 virtual bool extract_record(FltRecordReader &reader); 00038 virtual bool extract_ancillary(FltRecordReader &reader); 00039 00040 virtual bool build_record(FltRecordWriter &writer) const; 00041 virtual FltError write_ancillary(FltRecordWriter &writer) const; 00042 00043 public: 00044 virtual TypeHandle get_type() const { 00045 return get_class_type(); 00046 } 00047 virtual TypeHandle force_init_type() {init_type(); return get_class_type();} 00048 static TypeHandle get_class_type() { 00049 return _type_handle; 00050 } 00051 static void init_type() { 00052 FltGeometry::init_type(); 00053 register_type(_type_handle, "FltMesh", 00054 FltGeometry::get_class_type()); 00055 } 00056 00057 private: 00058 static TypeHandle _type_handle; 00059 }; 00060 00061 #include "fltMesh.I" 00062 00063 #endif 00064 00065