CFx SDK Documentation  2022 SP0
DbPolygonMesh.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, Open Design Alliance (the "Alliance").
3 // All rights reserved.
4 //
5 // This software and its documentation and related materials are owned by
6 // the Alliance. The software may only be incorporated into application
7 // programs owned by members of the Alliance, subject to a signed
8 // Membership Agreement and Supplemental Software License Agreement with the
9 // Alliance. The structure and organization of this software are the valuable
10 // trade secrets of the Alliance and its suppliers. The software is also
11 // protected by copyright law and international treaty provisions. Application
12 // programs incorporating this software must include the following statement
13 // with their copyright notices:
14 //
15 // This application incorporates Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 by Open Design Alliance.
18 // All rights reserved.
19 //
20 // By use of this software, its documentation or related materials, you
21 // acknowledge and accept the above terms.
23 
24 
25 
26 
27 #ifndef _OD_DB_POLYGON_MESH_
28 #define _OD_DB_POLYGON_MESH_
29 
30 #include "TD_PackPush.h"
31 
32 #include "DbEntity.h"
33 #include "DbObjectIterator.h"
34 #include "DbPolygonMeshVertex.h"
35 
36 class OdDbSequenceEnd;
39 
44 namespace OdDb
45 {
47  {
48  kSimpleMesh = 0, // Simple mesh
49  kQuadSurfaceMesh = 5, // Quadratic B-spline fit
50  kCubicSurfaceMesh = 6, // Cubic B-spline fit
51  kBezierSurfaceMesh = 8 // Bezier Surface fit
52  };
53 }
54 
77 {
78 public:
80 
82 
98 
116  OdDb::PolyMeshType polyMeshType);
117 
135  OdDb::PolyMeshType polyMeshType);
136 
140  OdInt16 mSize() const;
141 
146  void setMSize(
147  OdInt16 mSize);
148 
152  OdInt16 nSize() const;
153 
158  void setNSize(OdInt16 nSize);
159 
163  bool isMClosed() const;
164 
168  void makeMClosed();
169 
173  void makeMOpen();
174 
178  bool isNClosed() const;
179 
183  void makeNClosed();
184 
188  void makeNOpen();
189 
199 
210  OdInt16 mSurfaceDensity);
211 
221 
232  OdInt16 nSurfaceDensity);
233 
237  void straighten();
238 
242  void surfaceFit();
243 
263  OdDb::PolyMeshType surfType,
264  OdInt16 surfU,
265  OdInt16 surfV);
266 
286  OdDbPolygonMeshVertex* pVertex,
288 
300  OdDbObjectId vertId,
301  OdDb::OpenMode mode,
302  bool openErasedOne = false);
303 
317  OdDb::OpenMode mode);
318 
324 
326  OdDbDwgFiler* pFiler);
327 
328  virtual void dwgOutFields(
329  OdDbDwgFiler* pFiler) const;
330 
332  OdDbDxfFiler* pFiler);
333 
334  virtual void dxfOutFields(
335  OdDbDxfFiler* pFiler) const;
336 
337  virtual void dxfOut(
338  OdDbDxfFiler* pFiler) const;
339 
340  virtual OdResult dxfIn(
341  OdDbDxfFiler* pFiler);
342 
344  OdDbDxfFiler* pFiler);
345 
346  virtual void dxfOutFields_R12(
347  OdDbDxfFiler* pFiler) const;
348 
350  OdGiWorldDraw* pWd) const;
351 
352  void subClose();
353 
355  void* pClsid) const;
356 
357  virtual bool isPlanar() const;
358 
360  OdGePlane& plane,
361  OdDb::Planarity& planarity) const;
362 
364  const OdGeMatrix3d& xfm);
365 
370  OdRxObjectPtrArray& entitySet) const;
371 
375  virtual OdResult explodeGeometry(OdRxObjectPtrArray& entitySet) const;
376 
378  OdGsMarker gsMark,
379  const OdGePoint3d& ,
380  const OdGeMatrix3d& ,
381  OdDbFullSubentPathArray& subentPaths,
382  const OdDbObjectIdArray* pEntAndInsertStack ) const;
383 
385  OdGsMarkerArray& gsMarkers) const;
386 };
387 
392 
393 #include "TD_PackPop.h"
394 
395 #endif
#define TOOLKIT_EXPORT
Definition: DbExport.h:40
OdSmartPtr< OdDbPolygonMesh > OdDbPolygonMeshPtr
OdSmartPtr< OdDbSequenceEnd > OdDbSequenceEndPtr
Definition: DbPolygonMesh.h:38
OdSmartPtr< OdDbPolygonMeshVertex > OdDbPolygonMeshVertexPtr
Definition: DbPolygonMesh.h:36
ptrdiff_t OdGsMarker
short OdInt16
OdResult
Definition: OdResult.h:29
OdInt16 nSurfaceDensity() const
void setNSize(OdInt16 nSize)
void setNSurfaceDensity(OdInt16 nSurfaceDensity)
void setMSize(OdInt16 mSize)
OdResult subGetClassID(void *pClsid) const
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
virtual void dxfOut(OdDbDxfFiler *pFiler) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
OdResult subGetGsMarkersAtSubentPath(const OdDbFullSubentPath &subPath, OdGsMarkerArray &gsMarkers) const
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const
void convertToPolyMeshType(OdDb::PolyMeshType polyMeshType)
virtual OdResult explodeGeometry(OdRxObjectPtrArray &entitySet) const
void surfaceFit(OdDb::PolyMeshType surfType, OdInt16 surfU, OdInt16 surfV)
ODDB_DECLARE_MEMBERS(OdDbPolygonMesh)
OdInt16 mSurfaceDensity() const
virtual OdResult getPlane(OdGePlane &plane, OdDb::Planarity &planarity) const
bool isNClosed() const
OdDbObjectIteratorPtr vertexIterator() const
bool subWorldDraw(OdGiWorldDraw *pWd) const
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm)
OdInt16 mSize() const
OdDbSequenceEndPtr openSequenceEnd(OdDb::OpenMode mode)
virtual void dxfOutFields_R12(OdDbDxfFiler *pFiler) const
OdDb::PolyMeshType polyMeshType() const
virtual OdResult dxfIn(OdDbDxfFiler *pFiler)
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
void setMSurfaceDensity(OdInt16 mSurfaceDensity)
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
void setPolyMeshType(OdDb::PolyMeshType polyMeshType)
OdInt16 nSize() const
OdDbObjectId appendVertex(OdDbPolygonMeshVertex *pVertex, OdDb::Vertex3dType vType=OdDb::k3dSimpleVertex)
OdResult subGetSubentPathsAtGsMarker(OdDb::SubentType type, OdGsMarker gsMark, const OdGePoint3d &, const OdGeMatrix3d &, OdDbFullSubentPathArray &subentPaths, const OdDbObjectIdArray *pEntAndInsertStack) const
bool isMClosed() const
virtual OdResult dxfInFields_R12(OdDbDxfFiler *pFiler)
virtual bool isPlanar() const
OdDbPolygonMeshVertexPtr openVertex(OdDbObjectId vertId, OdDb::OpenMode mode, bool openErasedOne=false)
GLuint GLsizei GLsizei GLint GLenum * type
Definition: gles2_ext.h:274
PolyMeshType
Definition: DbPolygonMesh.h:47
@ kSimpleMesh
Definition: DbPolygonMesh.h:48
@ kCubicSurfaceMesh
Definition: DbPolygonMesh.h:50
@ kQuadSurfaceMesh
Definition: DbPolygonMesh.h:49
@ kBezierSurfaceMesh
Definition: DbPolygonMesh.h:51
Vertex3dType
Definition: DbVertex.h:41
@ k3dSimpleVertex
Definition: DbVertex.h:42
Planarity
Definition: DbEntity.h:74
OpenMode
Definition: DbObjectId.h:54