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: 6575bf8907432e31221b25f44a6de5bfd8ad5b03 $ 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 public: 00034 HModelInfo (HC_KEY segment_key = INVALID_KEY) {m_SegmentKey=segment_key;ResetCounters();}; 00035 virtual ~HModelInfo () {;}; 00036 00044 virtual void ComputeModelInfo (HC_KEY segment_key=INVALID_KEY, bool recurse=true); 00045 00047 unsigned long GetTotalFaces() { return m_TotalFaces; } 00049 unsigned long GetTotalVertices() { return m_TotalVertices; } 00051 unsigned long GetTotalTriangles() { return m_TotalTriangles; } 00053 unsigned long GetTotalTristrips() { return m_TotalTristrips; } 00055 unsigned long GetTotalSegments() { return m_TotalSegments; } 00057 unsigned long GetTotalCircle() { return m_TotalCircle; } 00059 unsigned long GetTotalCircularArc() { return m_TotalCircularArc; } 00061 unsigned long GetTotalCircularChord() { return m_TotalCircularChord; } 00063 unsigned long GetTotalCircularWedge() { return m_TotalCircularWedge; } 00065 unsigned long GetTotalEllipse() { return m_TotalEllipse; } 00067 unsigned long GetTotalEllipticalArc() { return m_TotalEllipticalArc; } 00069 unsigned long GetTotalGrid() { return m_TotalGrid; } 00071 unsigned long GetTotalImage() { return m_TotalImage; } 00073 unsigned long GetTotalIncludes() { return m_TotalIncludes; } 00075 unsigned long GetTotalIncluders() { return m_TotalIncluders; } 00077 unsigned long GetTotalLine() { return m_TotalLine; } 00079 unsigned long GetTotalMarker() { return m_TotalMarker; } 00081 unsigned long GetTotalMesh() { return m_TotalMesh; } 00083 unsigned long GetTotalPolygon() { return m_TotalPolygon; } 00085 unsigned long GetTotalPolyline() { return m_TotalPolyline; } 00087 unsigned long GetTotalShell() { return m_TotalShell; } 00089 unsigned long GetTotalStringCursor() { return m_TotalStringCursor; } 00091 unsigned long GetTotalText() { return m_TotalText; } 00093 unsigned long GetTotalMatrices() { return m_TotalMatrices; } 00095 unsigned long GetTotalSpotLight() { return m_TotalSpotLight; } 00097 unsigned long GetTotalDistantLight() { return m_TotalDistantLight; } 00099 unsigned long GetTotalLocalLight() { return m_TotalLocalLight; } 00101 unsigned long GetTotalCuttingPlane() { return m_TotalCuttingPlane; } 00103 unsigned long GetTotalCylinders() { return m_TotalCylinders; } 00105 unsigned long GetTotalPolyCylinders() { return m_TotalPolyCylinders; } 00107 unsigned long GetTotalSpheres() { return m_TotalSpheres; } 00109 unsigned long GetTotalNURBSCurves() { return m_TotalNURBSCurves; } 00111 unsigned long GetTotalNURBSSurfaces() { return m_TotalNURBSSurfaces; } 00113 unsigned long GetTotalReferences() { return m_TotalReferences; } 00115 unsigned long GetTotalInfiniteLines() {return m_TotalInfiniteLines; } 00117 unsigned long GetTotalInfiniteRays() {return m_TotalInfiniteRays; } 00119 unsigned long GetTotalOthers() { return m_TotalOthers; } 00120 00121 protected: 00122 00128 virtual void ResetCounters(); 00129 00130 00135 virtual void IncrementCounters (); 00136 00142 virtual void IncrementCounter (char * item_type, HC_KEY item_key); 00144 virtual void ComputeSegmentContents(HC_KEY the_key, bool recurse=true); 00145 00146 HC_KEY m_SegmentKey; 00147 00148 unsigned long m_TotalFaces; 00149 unsigned long m_TotalVertices; 00150 unsigned long m_TotalTriangles; 00151 unsigned long m_TotalTristrips; 00152 unsigned long m_TotalSegments; 00153 00154 unsigned long m_TotalCircle; 00155 unsigned long m_TotalCircularArc; 00156 unsigned long m_TotalCircularChord; 00157 00158 unsigned long m_TotalCircularWedge; 00159 unsigned long m_TotalEllipse; 00160 unsigned long m_TotalEllipticalArc; 00161 unsigned long m_TotalGrid; 00162 unsigned long m_TotalImage; 00163 unsigned long m_TotalIncludes; 00164 unsigned long m_TotalIncluders; 00165 unsigned long m_TotalLine; 00166 unsigned long m_TotalMarker; 00167 unsigned long m_TotalMesh; 00168 unsigned long m_TotalPolygon; 00169 unsigned long m_TotalPolyline; 00170 unsigned long m_TotalShell; 00171 unsigned long m_TotalStringCursor; 00172 unsigned long m_TotalText; 00173 unsigned long m_TotalMatrices; 00174 00175 unsigned long m_TotalSpotLight; 00176 unsigned long m_TotalDistantLight; 00177 unsigned long m_TotalLocalLight; 00178 00179 unsigned long m_TotalCuttingPlane; 00180 00181 unsigned long m_TotalPolyCylinders; 00182 unsigned long m_TotalCylinders; 00183 unsigned long m_TotalSpheres; 00184 unsigned long m_TotalNURBSCurves; 00185 unsigned long m_TotalNURBSSurfaces; 00186 unsigned long m_TotalReferences; 00187 unsigned long m_TotalInfiniteLines; 00188 unsigned long m_TotalInfiniteRays; 00189 00190 unsigned long m_TotalOthers; 00191 00192 }; 00193 00194 00195 #ifdef H_PACK_8 00196 #pragma pack(pop) 00197 #endif 00198 00199 #endif 00200 00201 00202 00203