00001 // 00002 // Copyright (c) 2000 by Tech Soft 3D, LLC. 00003 // The information contained herein is confidential and proprietary to 00004 // Tech Soft 3D, LLC., and considered a trade secret as defined under 00005 // civil and criminal statutes. Tech Soft 3D shall pursue its civil 00006 // and criminal remedies in the event of unauthorized use or misappropriation 00007 // of its trade secrets. Use of this information by anyone other than 00008 // authorized employees of Tech Soft 3D, LLC. is granted only under a 00009 // written non-disclosure agreement, expressly prescribing the scope and 00010 // manner of such use. 00011 // 00012 // $Id: 50176d8ab0c1e5abd52d2f48eb6b4e0969cf9ba7 $ 00013 // 00014 #ifndef _HMODELINFO_H 00015 #define _HMODELINFO_H 00016 00017 #ifdef H_PACK_8 00018 #pragma pack(push) 00019 #pragma pack(8) 00020 #endif 00021 00022 #include "HTools.h" 00023 00025 00030 class MVO_API HModelInfo 00031 { 00032 00033 public: 00035 HModelInfo (HC_KEY segment_key = INVALID_KEY) {m_SegmentKey=segment_key;ResetCounters();}; 00036 virtual ~HModelInfo () {;}; 00037 00045 virtual void ComputeModelInfo (HC_KEY segment_key=INVALID_KEY, bool recurse=true); 00046 00048 int GetTotalFaces( void ) { return m_TotalFaces; } 00050 int GetTotalVertices( void ) { return m_TotalVertices; } 00052 int GetTotalTriangles( void ) { return m_TotalTriangles; } 00054 int GetTotalTristrips( void ) { return m_TotalTristrips; } 00056 int GetTotalSegments( void ) { return m_TotalSegments; } 00058 int GetTotalCircle( void ) { return m_TotalCircle; } 00060 int GetTotalCircularArc( void ) { return m_TotalCircularArc; } 00062 int GetTotalCircularChord( void ) { return m_TotalCircularChord; } 00064 int GetTotalCircularWedge( void ) { return m_TotalCircularWedge; } 00066 int GetTotalEllipse( void ) { return m_TotalEllipse; } 00068 int GetTotalEllipticalArc( void ) { return m_TotalEllipticalArc; } 00070 int GetTotalGrid( void ) { return m_TotalGrid; } 00072 int GetTotalImage( void ) { return m_TotalImage; } 00074 int GetTotalIncludes( void ) { return m_TotalIncludes; } 00076 int GetTotalIncluders( void ) { return m_TotalIncluders; } 00078 int GetTotalLine( void ) { return m_TotalLine; } 00080 int GetTotalMarker( void ) { return m_TotalMarker; } 00082 int GetTotalMesh( void ) { return m_TotalMesh; } 00084 int GetTotalPolygon( void ) { return m_TotalPolygon; } 00086 int GetTotalPolyline( void ) { return m_TotalPolyline; } 00088 int GetTotalShell( void ) { return m_TotalShell; } 00090 int GetTotalStringCursor( void ) { return m_TotalStringCursor; } 00092 int GetTotalText( void ) { return m_TotalText; } 00094 int GetTotalMatrices( void ) { return m_TotalMatrices; } 00096 int GetTotalSpotLight( void ) { return m_TotalSpotLight; } 00098 int GetTotalDistantLight( void ) { return m_TotalDistantLight; } 00100 int GetTotalLocalLight( void ) { return m_TotalLocalLight; } 00102 int GetTotalCuttingPlane( void ) { return m_TotalCuttingPlane; } 00104 int GetTotalCylinders( void ) { return m_TotalCylinders; } 00106 int GetTotalPolyCylinders( void ) { return m_TotalPolyCylinders; } 00108 int GetTotalSpheres( void ) { return m_TotalSpheres; } 00110 int GetTotalNURBSCurves( void ) { return m_TotalNURBSCurves; } 00112 int GetTotalNURBSSurfaces( void ) { return m_TotalNURBSSurfaces; } 00114 int GetTotalReferences( void ) { return m_TotalReferences; } 00116 int GetTotalInfiniteLines( void ) {return m_TotalInfiniteLines; } 00118 int GetTotalInfiniteRays( void ) {return m_TotalInfiniteRays; } 00120 int GetTotalOthers( void ) { return m_TotalOthers; } 00121 00122 protected: 00123 00129 virtual void ResetCounters(); 00130 00139 virtual void IncrementCounter (char * item_type, HC_KEY item_key); 00141 virtual void ComputeSegmentContents(HC_KEY the_key, bool recurse=true); 00142 00143 HC_KEY m_SegmentKey; 00144 00145 int m_TotalFaces; 00146 int m_TotalVertices; 00147 int m_TotalTriangles; 00148 int m_TotalTristrips; 00149 int m_TotalSegments; 00150 00151 int m_TotalCircle; 00152 int m_TotalCircularArc; 00153 int m_TotalCircularChord; 00154 00155 int m_TotalCircularWedge; 00156 int m_TotalEllipse; 00157 int m_TotalEllipticalArc; 00158 int m_TotalGrid; 00159 int m_TotalImage; 00160 int m_TotalIncludes; 00161 int m_TotalIncluders; 00162 int m_TotalLine; 00163 int m_TotalMarker; 00164 int m_TotalMesh; 00165 int m_TotalPolygon; 00166 int m_TotalPolyline; 00167 int m_TotalShell; 00168 int m_TotalStringCursor; 00169 int m_TotalText; 00170 int m_TotalMatrices; 00171 00172 int m_TotalSpotLight; 00173 int m_TotalDistantLight; 00174 int m_TotalLocalLight; 00175 00176 int m_TotalCuttingPlane; 00177 00178 int m_TotalPolyCylinders; 00179 int m_TotalCylinders; 00180 int m_TotalSpheres; 00181 int m_TotalNURBSCurves; 00182 int m_TotalNURBSSurfaces; 00183 int m_TotalReferences; 00184 int m_TotalInfiniteLines; 00185 int m_TotalInfiniteRays; 00186 00187 int m_TotalOthers; 00188 00189 }; 00190 00191 00192 #ifdef H_PACK_8 00193 #pragma pack(pop) 00194 #endif 00195 00196 #endif 00197 00198 00199 00200