Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
MiTessellator.h
Go to the documentation of this file.
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2017 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23#ifndef _MiTessellator_h
24#define _MiTessellator_h
25
26class MiLineCell;
27class MiSurfaceCell;
28class MiVolumeCell;
29
31
33
38
134{
135public:
136 virtual ~MiTessellator() {}
137
144 virtual size_t getTimeStamp() const = 0;
145
147 // @{
148
161
188
202 // @}
203
205 // @{
206
213 virtual void setMesh(const MiTopologyExplicitI& topology, const MiGeometryI& geometry) = 0;
214
218 virtual void unsetMesh() = 0;
219
220 // @}
221
223 // @{
224
234 virtual void startVolumeTessellation(MeWVolumeTopologyExplicitI& tessellatedTopology, MeWGeometryI& tessellatedGeometry) = 0;
235
241 virtual void finishVolumeTessellation() = 0;
242
250 virtual size_t tessellateVolumeCell(const MiVolumeCell* volumeCell) = 0;
251
252 // @}
253
255 // @{
256
266 virtual void startSurfaceTessellation(MeWSurfaceTopologyExplicitI& tessellatedTopology, MeWGeometryI& tessellatedGeometry) = 0;
267
273 virtual void finishSurfaceTessellation() = 0;
274
284 virtual size_t tessellateSurfaceCell(const MiSurfaceCell* surfaceCell) = 0;
285
286 // @}
287
289 // @{
290
300 virtual void startLineTessellation(MeWLineTopologyExplicitI& tessellatedTopology, MeWGeometryI& tessellatedGeometry) = 0;
301
307 virtual void finishLineTessellation() = 0;
308
316 virtual size_t tessellateLineCell(const MiLineCell* lineCell) = 0;
317
319
320};
321
322
323#endif
324
325
#define MESHVIZXLM_EXTR_API
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract interface to wr...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract interface to wr...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract interface to wr...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract interface to wr...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Edge error metric interf...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Generic geometry interfa...
Definition MiGeometryI.h:39
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines an abstract cell...
Definition MiLineCell.h:60
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines an abstract cell...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract tessellator int...
virtual size_t tessellateLineCell(const MiLineCell *lineCell)=0
Tessellates a line cell and appends the resulting indexed tessellation to the tessellatedTopology and...
static MiTessellator * getNewTessellatorBasic()
Returns a new instance of a basic implementation of the interface MiTessellator.
virtual size_t tessellateVolumeCell(const MiVolumeCell *volumeCell)=0
Tessellates a volume cell and appends the resulting indexed tessellation to the tessellatedTopology a...
virtual void unsetMesh()=0
Removes the input mesh after tessellation.
virtual size_t getTimeStamp() const =0
Returns for this tessellator a unique time stamp across all tessellators in the application.
virtual void finishLineTessellation()=0
End point of the tessellation of lines.
virtual ~MiTessellator()
virtual void finishVolumeTessellation()=0
End point of the tessellation of volumes.
virtual size_t tessellateSurfaceCell(const MiSurfaceCell *surfaceCell)=0
Tessellates a surface cell and appends the resulting indexed tessellation to the tessellatedTopology ...
virtual void startVolumeTessellation(MeWVolumeTopologyExplicitI &tessellatedTopology, MeWGeometryI &tessellatedGeometry)=0
Starting point of the tessellation of volumes.
virtual void setMesh(const MiTopologyExplicitI &topology, const MiGeometryI &geometry)=0
Defines the topology and geometry of the input mesh from which the lines, surfaces and volumes are ex...
virtual void finishSurfaceTessellation()=0
End point of the tessellation of surfaces.
static MiTessellator * getNewTessellatorPolyhedron()
Returns a new instance of a polyhedral implementation of the interface MiTessellator.
virtual void startSurfaceTessellation(MeWSurfaceTopologyExplicitI &tessellatedTopology, MeWGeometryI &tessellatedGeometry)=0
Starting point of the tessellation of surfaces.
static MiTessellator * getNewTessellatorGeometry(const MiEdgeErrorMetric< MbVec3d > &edgeMetric)
Returns a new instance of a geometrical implementation of the interface MiTessellator.
virtual void startLineTessellation(MeWLineTopologyExplicitI &tessellatedTopology, MeWGeometryI &tessellatedGeometry)=0
Starting point of the tessellation of lines.
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> List of generic cells in...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines an abstract cell...