HModelInfo.h
1 // Copyright (c) Tech Soft 3D
2 //
3 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
4 // and considered a trade secret as defined under civil and criminal statutes.
5 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
6 // unauthorized use or misappropriation of its trade secrets. Use of this information
7 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
8 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
9 
10 #ifndef _HMODELINFO_H
11 #define _HMODELINFO_H
12 
13 #ifdef H_PACK_8
14 #pragma pack(push)
15 #pragma pack(8)
16 #endif
17 
18 #include "HTools.h"
19 
21 
26 class MVO_API HModelInfo
27 {
28 public:
30  HModelInfo (HC_KEY segment_key = INVALID_KEY) {m_SegmentKey=segment_key;ResetCounters();};
31  virtual ~HModelInfo () {;};
32 
40  virtual void ComputeModelInfo (HC_KEY segment_key=INVALID_KEY, bool recurse=true);
41 
43  unsigned long GetTotalFaces() { return m_TotalFaces; }
45  unsigned long GetTotalVertices() { return m_TotalVertices; }
47  unsigned long GetTotalTriangles() { return m_TotalTriangles; }
49  unsigned long GetTotalTristrips() { return m_TotalTristrips; }
51  unsigned long GetTotalSegments() { return m_TotalSegments; }
53  unsigned long GetTotalCircle() { return m_TotalCircle; }
55  unsigned long GetTotalCircularArc() { return m_TotalCircularArc; }
57  unsigned long GetTotalCircularChord() { return m_TotalCircularChord; }
59  unsigned long GetTotalCircularWedge() { return m_TotalCircularWedge; }
61  unsigned long GetTotalEllipse() { return m_TotalEllipse; }
63  unsigned long GetTotalEllipticalArc() { return m_TotalEllipticalArc; }
65  unsigned long GetTotalGrid() { return m_TotalGrid; }
67  unsigned long GetTotalImage() { return m_TotalImage; }
69  unsigned long GetTotalIncludes() { return m_TotalIncludes; }
71  unsigned long GetTotalIncluders() { return m_TotalIncluders; }
73  unsigned long GetTotalLine() { return m_TotalLine; }
75  unsigned long GetTotalMarker() { return m_TotalMarker; }
77  unsigned long GetTotalMesh() { return m_TotalMesh; }
79  unsigned long GetTotalPolygon() { return m_TotalPolygon; }
81  unsigned long GetTotalPolyline() { return m_TotalPolyline; }
83  unsigned long GetTotalShell() { return m_TotalShell; }
85  unsigned long GetTotalStringCursor() { return m_TotalStringCursor; }
87  unsigned long GetTotalText() { return m_TotalText; }
89  unsigned long GetTotalMatrices() { return m_TotalMatrices; }
91  unsigned long GetTotalSpotLight() { return m_TotalSpotLight; }
93  unsigned long GetTotalDistantLight() { return m_TotalDistantLight; }
95  unsigned long GetTotalLocalLight() { return m_TotalLocalLight; }
97  unsigned long GetTotalCuttingPlane() { return m_TotalCuttingPlane; }
99  unsigned long GetTotalCylinders() { return m_TotalCylinders; }
101  unsigned long GetTotalPolyCylinders() { return m_TotalPolyCylinders; }
103  unsigned long GetTotalSpheres() { return m_TotalSpheres; }
105  unsigned long GetTotalNURBSCurves() { return m_TotalNURBSCurves; }
107  unsigned long GetTotalNURBSSurfaces() { return m_TotalNURBSSurfaces; }
109  unsigned long GetTotalReferences() { return m_TotalReferences; }
111  unsigned long GetTotalInfiniteLines() {return m_TotalInfiniteLines; }
113  unsigned long GetTotalInfiniteRays() {return m_TotalInfiniteRays; }
115  unsigned long GetTotalOthers() { return m_TotalOthers; }
116 
117 protected:
118 
124  virtual void ResetCounters();
125 
126 
131  virtual void IncrementCounters ();
132 
138  virtual void IncrementCounter (char * item_type, HC_KEY item_key);
140  virtual void ComputeSegmentContents(HC_KEY the_key, bool recurse=true);
141 
143 
144  unsigned long m_TotalFaces;
145  unsigned long m_TotalVertices;
146  unsigned long m_TotalTriangles;
147  unsigned long m_TotalTristrips;
148  unsigned long m_TotalSegments;
149 
150  unsigned long m_TotalCircle;
151  unsigned long m_TotalCircularArc;
152  unsigned long m_TotalCircularChord;
153 
154  unsigned long m_TotalCircularWedge;
155  unsigned long m_TotalEllipse;
156  unsigned long m_TotalEllipticalArc;
157  unsigned long m_TotalGrid;
158  unsigned long m_TotalImage;
159  unsigned long m_TotalIncludes;
160  unsigned long m_TotalIncluders;
161  unsigned long m_TotalLine;
162  unsigned long m_TotalMarker;
163  unsigned long m_TotalMesh;
164  unsigned long m_TotalPolygon;
165  unsigned long m_TotalPolyline;
166  unsigned long m_TotalShell;
167  unsigned long m_TotalStringCursor;
168  unsigned long m_TotalText;
169  unsigned long m_TotalMatrices;
170 
171  unsigned long m_TotalSpotLight;
172  unsigned long m_TotalDistantLight;
173  unsigned long m_TotalLocalLight;
174 
175  unsigned long m_TotalCuttingPlane;
176 
177  unsigned long m_TotalPolyCylinders;
178  unsigned long m_TotalCylinders;
179  unsigned long m_TotalSpheres;
180  unsigned long m_TotalNURBSCurves;
181  unsigned long m_TotalNURBSSurfaces;
182  unsigned long m_TotalReferences;
183  unsigned long m_TotalInfiniteLines;
184  unsigned long m_TotalInfiniteRays;
185 
186  unsigned long m_TotalOthers;
187 
188 };
189 
190 
191 #ifdef H_PACK_8
192 #pragma pack(pop)
193 #endif
194 
195 #endif
196 
197 
198 
199 
unsigned long GetTotalSpheres()
Definition: HModelInfo.h:103
unsigned long GetTotalOthers()
Definition: HModelInfo.h:115
unsigned long GetTotalPolygon()
Definition: HModelInfo.h:79
unsigned long m_TotalMesh
For internal use only.
Definition: HModelInfo.h:163
unsigned long m_TotalIncluders
For internal use only.
Definition: HModelInfo.h:160
unsigned long GetTotalPolyCylinders()
Definition: HModelInfo.h:101
unsigned long m_TotalLine
For internal use only.
Definition: HModelInfo.h:161
unsigned long m_TotalGrid
For internal use only.
Definition: HModelInfo.h:157
unsigned long GetTotalSpotLight()
Definition: HModelInfo.h:91
unsigned long m_TotalImage
For internal use only.
Definition: HModelInfo.h:158
unsigned long m_TotalEllipse
For internal use only.
Definition: HModelInfo.h:155
unsigned long m_TotalIncludes
For internal use only.
Definition: HModelInfo.h:159
unsigned long m_TotalOthers
For internal use only.
Definition: HModelInfo.h:186
unsigned long GetTotalMarker()
Definition: HModelInfo.h:75
unsigned long GetTotalIncludes()
Definition: HModelInfo.h:69
HModelInfo(HC_KEY segment_key=INVALID_KEY)
Definition: HModelInfo.h:30
#define HC_KEY
unsigned long m_TotalText
For internal use only.
Definition: HModelInfo.h:168
unsigned long m_TotalCircle
For internal use only.
Definition: HModelInfo.h:150
unsigned long m_TotalTristrips
For internal use only.
Definition: HModelInfo.h:147
unsigned long GetTotalEllipticalArc()
Definition: HModelInfo.h:63
unsigned long GetTotalFaces()
Definition: HModelInfo.h:43
unsigned long GetTotalTriangles()
Definition: HModelInfo.h:47
unsigned long GetTotalInfiniteRays()
Definition: HModelInfo.h:113
unsigned long GetTotalNURBSSurfaces()
Definition: HModelInfo.h:107
unsigned long m_TotalDistantLight
For internal use only.
Definition: HModelInfo.h:172
unsigned long GetTotalEllipse()
Definition: HModelInfo.h:61
unsigned long GetTotalReferences()
Definition: HModelInfo.h:109
unsigned long m_TotalMatrices
For internal use only.
Definition: HModelInfo.h:169
unsigned long m_TotalStringCursor
For internal use only.
Definition: HModelInfo.h:167
unsigned long GetTotalTristrips()
Definition: HModelInfo.h:49
unsigned long GetTotalText()
Definition: HModelInfo.h:87
The HModelInfo class computes and stores model information.
Definition: HModelInfo.h:26
unsigned long m_TotalCircularArc
For internal use only.
Definition: HModelInfo.h:151
unsigned long GetTotalNURBSCurves()
Definition: HModelInfo.h:105
unsigned long GetTotalCylinders()
Definition: HModelInfo.h:99
unsigned long m_TotalLocalLight
For internal use only.
Definition: HModelInfo.h:173
unsigned long GetTotalImage()
Definition: HModelInfo.h:67
unsigned long m_TotalPolyCylinders
For internal use only.
Definition: HModelInfo.h:177
unsigned long GetTotalGrid()
Definition: HModelInfo.h:65
unsigned long GetTotalLocalLight()
Definition: HModelInfo.h:95
unsigned long GetTotalDistantLight()
Definition: HModelInfo.h:93
unsigned long GetTotalIncluders()
Definition: HModelInfo.h:71
unsigned long GetTotalStringCursor()
Definition: HModelInfo.h:85
unsigned long GetTotalShell()
Definition: HModelInfo.h:83
unsigned long m_TotalTriangles
For internal use only.
Definition: HModelInfo.h:146
unsigned long m_TotalCircularWedge
For internal use only.
Definition: HModelInfo.h:154
unsigned long m_TotalCylinders
For internal use only.
Definition: HModelInfo.h:178
unsigned long GetTotalInfiniteLines()
Definition: HModelInfo.h:111
unsigned long m_TotalVertices
For internal use only.
Definition: HModelInfo.h:145
unsigned long m_TotalReferences
For internal use only.
Definition: HModelInfo.h:182
unsigned long GetTotalCircularChord()
Definition: HModelInfo.h:57
unsigned long GetTotalLine()
Definition: HModelInfo.h:73
unsigned long m_TotalSpotLight
For internal use only.
Definition: HModelInfo.h:171
unsigned long GetTotalPolyline()
Definition: HModelInfo.h:81
unsigned long GetTotalMatrices()
Definition: HModelInfo.h:89
unsigned long m_TotalEllipticalArc
For internal use only.
Definition: HModelInfo.h:156
unsigned long m_TotalInfiniteRays
For internal use only.
Definition: HModelInfo.h:184
unsigned long GetTotalVertices()
Definition: HModelInfo.h:45
unsigned long m_TotalShell
For internal use only.
Definition: HModelInfo.h:166
unsigned long GetTotalMesh()
Definition: HModelInfo.h:77
unsigned long m_TotalPolyline
For internal use only.
Definition: HModelInfo.h:165
unsigned long GetTotalCircularArc()
Definition: HModelInfo.h:55
unsigned long m_TotalNURBSCurves
For internal use only.
Definition: HModelInfo.h:180
unsigned long GetTotalCircularWedge()
Definition: HModelInfo.h:59
HC_KEY m_SegmentKey
For internal use only
Definition: HModelInfo.h:142
unsigned long m_TotalPolygon
For internal use only.
Definition: HModelInfo.h:164
unsigned long GetTotalCircle()
Definition: HModelInfo.h:53
unsigned long m_TotalSpheres
For internal use only.
Definition: HModelInfo.h:179
unsigned long m_TotalSegments
For internal use only.
Definition: HModelInfo.h:148
unsigned long m_TotalMarker
For internal use only.
Definition: HModelInfo.h:162
unsigned long m_TotalCuttingPlane
For internal use only.
Definition: HModelInfo.h:175
unsigned long m_TotalCircularChord
For internal use only.
Definition: HModelInfo.h:152
unsigned long GetTotalSegments()
Definition: HModelInfo.h:51
unsigned long m_TotalInfiniteLines
For internal use only.
Definition: HModelInfo.h:183
unsigned long m_TotalNURBSSurfaces
For internal use only.
Definition: HModelInfo.h:181
unsigned long GetTotalCuttingPlane()
Definition: HModelInfo.h:97
unsigned long m_TotalFaces
For internal use only.
Definition: HModelInfo.h:144