Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

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