CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
AECMeshTools.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, 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 Open Design Alliance software pursuant to a
16// license agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 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
30class OdGePlane;
31class OdGePoint3d;
32class OdGeVector3d;
33class OdDbObjectId;
35
36namespace FacetModeler
37{
38 class Contour2D;
39 class Contour3D;
40 class Profile2D;
41 class Profile3D;
42}
43
47namespace AECGe
48{
49
50class Mesh;
51
53// Obsolete class.
54class 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
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:34
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:161