00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc. 00002 // 00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., 00004 // and considered a trade secret as defined under civil and criminal statutes. 00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of 00006 // unauthorized use or misappropriation of its trade secrets. Use of this information 00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under 00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use. 00009 00010 #ifndef _HMODELINFO_H 00011 #define _HMODELINFO_H 00012 00013 #ifdef H_PACK_8 00014 #pragma pack(push) 00015 #pragma pack(8) 00016 #endif 00017 00018 #include "HTools.h" 00019 00021 00026 class MVO_API HModelInfo 00027 { 00028 public: 00030 HModelInfo (HC_KEY segment_key = INVALID_KEY) {m_SegmentKey=segment_key;ResetCounters();}; 00031 virtual ~HModelInfo () {;}; 00032 00040 virtual void ComputeModelInfo (HC_KEY segment_key=INVALID_KEY, bool recurse=true); 00041 00043 unsigned long GetTotalFaces() { return m_TotalFaces; } 00045 unsigned long GetTotalVertices() { return m_TotalVertices; } 00047 unsigned long GetTotalTriangles() { return m_TotalTriangles; } 00049 unsigned long GetTotalTristrips() { return m_TotalTristrips; } 00051 unsigned long GetTotalSegments() { return m_TotalSegments; } 00053 unsigned long GetTotalCircle() { return m_TotalCircle; } 00055 unsigned long GetTotalCircularArc() { return m_TotalCircularArc; } 00057 unsigned long GetTotalCircularChord() { return m_TotalCircularChord; } 00059 unsigned long GetTotalCircularWedge() { return m_TotalCircularWedge; } 00061 unsigned long GetTotalEllipse() { return m_TotalEllipse; } 00063 unsigned long GetTotalEllipticalArc() { return m_TotalEllipticalArc; } 00065 unsigned long GetTotalGrid() { return m_TotalGrid; } 00067 unsigned long GetTotalImage() { return m_TotalImage; } 00069 unsigned long GetTotalIncludes() { return m_TotalIncludes; } 00071 unsigned long GetTotalIncluders() { return m_TotalIncluders; } 00073 unsigned long GetTotalLine() { return m_TotalLine; } 00075 unsigned long GetTotalMarker() { return m_TotalMarker; } 00077 unsigned long GetTotalMesh() { return m_TotalMesh; } 00079 unsigned long GetTotalPolygon() { return m_TotalPolygon; } 00081 unsigned long GetTotalPolyline() { return m_TotalPolyline; } 00083 unsigned long GetTotalShell() { return m_TotalShell; } 00085 unsigned long GetTotalStringCursor() { return m_TotalStringCursor; } 00087 unsigned long GetTotalText() { return m_TotalText; } 00089 unsigned long GetTotalMatrices() { return m_TotalMatrices; } 00091 unsigned long GetTotalSpotLight() { return m_TotalSpotLight; } 00093 unsigned long GetTotalDistantLight() { return m_TotalDistantLight; } 00095 unsigned long GetTotalLocalLight() { return m_TotalLocalLight; } 00097 unsigned long GetTotalCuttingPlane() { return m_TotalCuttingPlane; } 00099 unsigned long GetTotalCylinders() { return m_TotalCylinders; } 00101 unsigned long GetTotalPolyCylinders() { return m_TotalPolyCylinders; } 00103 unsigned long GetTotalSpheres() { return m_TotalSpheres; } 00105 unsigned long GetTotalNURBSCurves() { return m_TotalNURBSCurves; } 00107 unsigned long GetTotalNURBSSurfaces() { return m_TotalNURBSSurfaces; } 00109 unsigned long GetTotalReferences() { return m_TotalReferences; } 00111 unsigned long GetTotalInfiniteLines() {return m_TotalInfiniteLines; } 00113 unsigned long GetTotalInfiniteRays() {return m_TotalInfiniteRays; } 00115 unsigned long GetTotalOthers() { return m_TotalOthers; } 00116 00117 protected: 00118 00124 virtual void ResetCounters(); 00125 00126 00131 virtual void IncrementCounters (); 00132 00138 virtual void IncrementCounter (char * item_type, HC_KEY item_key); 00140 virtual void ComputeSegmentContents(HC_KEY the_key, bool recurse=true); 00141 00142 HC_KEY m_SegmentKey; 00143 00144 unsigned long m_TotalFaces; 00145 unsigned long m_TotalVertices; 00146 unsigned long m_TotalTriangles; 00147 unsigned long m_TotalTristrips; 00148 unsigned long m_TotalSegments; 00149 00150 unsigned long m_TotalCircle; 00151 unsigned long m_TotalCircularArc; 00152 unsigned long m_TotalCircularChord; 00153 00154 unsigned long m_TotalCircularWedge; 00155 unsigned long m_TotalEllipse; 00156 unsigned long m_TotalEllipticalArc; 00157 unsigned long m_TotalGrid; 00158 unsigned long m_TotalImage; 00159 unsigned long m_TotalIncludes; 00160 unsigned long m_TotalIncluders; 00161 unsigned long m_TotalLine; 00162 unsigned long m_TotalMarker; 00163 unsigned long m_TotalMesh; 00164 unsigned long m_TotalPolygon; 00165 unsigned long m_TotalPolyline; 00166 unsigned long m_TotalShell; 00167 unsigned long m_TotalStringCursor; 00168 unsigned long m_TotalText; 00169 unsigned long m_TotalMatrices; 00170 00171 unsigned long m_TotalSpotLight; 00172 unsigned long m_TotalDistantLight; 00173 unsigned long m_TotalLocalLight; 00174 00175 unsigned long m_TotalCuttingPlane; 00176 00177 unsigned long m_TotalPolyCylinders; 00178 unsigned long m_TotalCylinders; 00179 unsigned long m_TotalSpheres; 00180 unsigned long m_TotalNURBSCurves; 00181 unsigned long m_TotalNURBSSurfaces; 00182 unsigned long m_TotalReferences; 00183 unsigned long m_TotalInfiniteLines; 00184 unsigned long m_TotalInfiniteRays; 00185 00186 unsigned long m_TotalOthers; 00187 00188 }; 00189 00190 00191 #ifdef H_PACK_8 00192 #pragma pack(pop) 00193 #endif 00194 00195 #endif 00196 00197 00198 00199