CFx SDK Documentation  2023 SP0
AECMeshTools.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 #ifndef __AECMESHTOOLS_H__
25 #define __AECMESHTOOLS_H__
26 
27 #include "FMGeometry.h"
29 
30 class OdGePlane;
31 class OdGePoint3d;
32 class OdGeVector3d;
33 class OdDbObjectId;
35 
36 namespace FacetModeler
37 {
38  class Contour2D;
39  class Contour3D;
40  class Profile2D;
41  class Profile3D;
42 }
43 
47 namespace AECGe
48 {
49 
50 class Mesh;
51 
53 // Obsolete class.
54 class AECGEOMETRY_API MeshTools
55 {
56  public:
65  static void CreateBox( const OdGePoint3d& ptMin,
66  const OdGePoint3d& ptMax,
67  Mesh& mResult, bool bVerify = false );
68 
77  static void CreatePyramid( const FacetModeler::Contour3D& rBase,
78  const OdGePoint3d& ptTop,
79  Mesh& mResult,
81 
90  static void CreateExtrude(const FacetModeler::Contour3D& rBase,
91  const OdGeVector3d& vDirection,
92  Mesh& mResult,
94 
103  static void CreateExtrude(const FacetModeler::Profile3D& rBase,
104  const OdGeVector3d& vDirection,
105  Mesh& mResult,
107 
116  static void CreateExtrudeEx(const FacetModeler::Profile3D& rBase,
117  const FacetModeler::Contour3D& rPath,
118  Mesh& mResult,
120 
130  static void CreateExtrudeEx(const FacetModeler::Profile2D& rBase,
131  const OdGePoint3dArray& aPath,
132  const OdGeVector3d& vNormal,
133  Mesh& mResult,
135 
145  static void CreateRevolution(const FacetModeler::Profile2D& rBase,
146  double dRadius, double dHeight, Mesh& mResult,
148 
156  static void CreateByProfile(const FacetModeler::Profile2D& rProfile,
157  Mesh& mResult,
159 
174  static void CreateByTwoContours(const FacetModeler::Contour3D& rContour1,
175  const FacetModeler::Contour3D& rContour2,
176  Mesh& mResult, bool bVerify = false );
177 
187  static void CutWithInfExtrude( const Mesh& mSource,
188  const FacetModeler::Profile3D& rBase, bool bInside, Mesh& mResult,
190 
201  static void CutWithExtrude( const Mesh& mSource,
202  const FacetModeler::Profile3D& rBase,
203  bool bInside, double dExtrudeDepth, Mesh& mResult,
205 
213  static void Cut( const Mesh& mSource,
214  const OdGePlane& pPlane, FacetModeler::Profile3D& rResult,
215  bool bIncludeBoundary = true );
216 
218  // Cuts mesh with a vertical "fence".
219  //
220  // For internal use.
221  // Comments pending.
222  static void Cut( const Mesh& mSource,
223  const FacetModeler::Contour2D& cCutLine, const OdGePlane& pProjectOn, FacetModeler::Profile3D& rResult,
224  bool bIncludeBoundary = true );
225 
234  static void CutWithPlane( const Mesh& mSource,
235  const OdGePlane& pPlane,
236  Mesh* pOutside = 0, Mesh* pInside = 0 );
237 
247  static void GetInsideFrame(const FacetModeler::Contour3D& rContour,
248  double dFrameWidth, double dFrameDepth,
249  Mesh& mResult,
251 
261  static void GetInsideFrame(const FacetModeler::Profile3D& rProfile,
262  double dFrameWidth, double dFrameDepth,
263  Mesh& mResult,
265 
276  static void GetInsideBody(const FacetModeler::Contour3D& rContour,
277  double dFrameDepth, double dFrameOrigin,
278  Mesh& mResult,
280 
291  static void GetInsideBody(const FacetModeler::Profile3D& rProfile,
292  double dFrameDepth, double dFrameOrigin,
293  Mesh& mResult,
295 
306  static void ConvertFromObject( const OdDbObjectId& idEntity,
307  Mesh& mResult );
308 
316  static void AffectVisibilities( const std::vector<OdGeLineSeg3d>& aInvisibleSegments,
317  Mesh& mMesh );
318 
322  static void GetVisibleSilhouettes( const Mesh& mBody,
323  const OdGeVector3d& vViewDirection, std::vector<OdUInt32>& aVisible );
324 };
325 
326 }
327 
328 #endif //__AECMESHTOOLS_H__
OdArray< OdGePoint3d, OdMemoryAllocator< OdGePoint3d > > OdGePoint3dArray
Definition: AECMeshTools.h:33
DOM.
Definition: AECMesh.h:41
static void Cut(const Mesh &mSource, const FacetModeler::Contour2D &cCutLine, const OdGePlane &pProjectOn, FacetModeler::Profile3D &rResult, bool bIncludeBoundary=true)
DOM.
static void CutWithExtrude(const Mesh &mSource, const FacetModeler::Profile3D &rBase, bool bInside, double dExtrudeDepth, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void GetInsideFrame(const FacetModeler::Profile3D &rProfile, double dFrameWidth, double dFrameDepth, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void Cut(const Mesh &mSource, const OdGePlane &pPlane, FacetModeler::Profile3D &rResult, bool bIncludeBoundary=true)
static void CreateExtrude(const FacetModeler::Profile3D &rBase, const OdGeVector3d &vDirection, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void GetInsideBody(const FacetModeler::Contour3D &rContour, double dFrameDepth, double dFrameOrigin, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void CreatePyramid(const FacetModeler::Contour3D &rBase, const OdGePoint3d &ptTop, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void GetVisibleSilhouettes(const Mesh &mBody, const OdGeVector3d &vViewDirection, std::vector< OdUInt32 > &aVisible)
static void CreateByProfile(const FacetModeler::Profile2D &rProfile, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void CreateExtrudeEx(const FacetModeler::Profile2D &rBase, const OdGePoint3dArray &aPath, const OdGeVector3d &vNormal, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void CreateRevolution(const FacetModeler::Profile2D &rBase, double dRadius, double dHeight, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void CreateByTwoContours(const FacetModeler::Contour3D &rContour1, const FacetModeler::Contour3D &rContour2, Mesh &mResult, bool bVerify=false)
static void CreateExtrude(const FacetModeler::Contour3D &rBase, const OdGeVector3d &vDirection, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void CutWithInfExtrude(const Mesh &mSource, const FacetModeler::Profile3D &rBase, bool bInside, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void GetInsideBody(const FacetModeler::Profile3D &rProfile, double dFrameDepth, double dFrameOrigin, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void GetInsideFrame(const FacetModeler::Contour3D &rContour, double dFrameWidth, double dFrameDepth, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void CutWithPlane(const Mesh &mSource, const OdGePlane &pPlane, Mesh *pOutside=0, Mesh *pInside=0)
static void ConvertFromObject(const OdDbObjectId &idEntity, Mesh &mResult)
static void CreateExtrudeEx(const FacetModeler::Profile3D &rBase, const FacetModeler::Contour3D &rPath, Mesh &mResult, const FacetModeler::DeviationParams &devDeviation=FacetModeler::FMGeGbl::gDefDev)
static void CreateBox(const OdGePoint3d &ptMin, const OdGePoint3d &ptMax, Mesh &mResult, bool bVerify=false)
static void AffectVisibilities(const std::vector< OdGeLineSeg3d > &aInvisibleSegments, Mesh &mMesh)
static FMGEOMETRY_API_STATIC DeviationParams gDefDev
Definition: FMGeometry.h:148