Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HModelInfo.h
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