CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
AECProfile2DBoundary.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 __AECPROFILE2DBOUNDARY_H__
25#define __AECPROFILE2DBOUNDARY_H__
26
28#include "FMProfile2D.h"
29
30#include "Geometry/Contours/AECImpSegmentNet2D.h" //FELIX_CHANGE
31#include <functional> //FELIX_CHANGE
32
33class OdDbDatabase;
34
38namespace AECGe
39{
40
45class AECGEOMETRY_API Profile2DBoundary
46{
47 public:
52
57
61 const OdGeTol& tol() const;
62
66 void setTol( const OdGeTol& tTol );
67
72
77
82
87
101 FacetModeler::Result getBoundary(const OdGePoint2d& ptInside, double dGap,
102 bool bIgnoreHoles, FacetModeler::Profile2D& rResult,
103 bool bEnableSelfIntersections = false,
104 bool bIgnoreNestedHoles = true ) const;
105
106 //FELIX_CHANGE_BEGIN
122 bool bIgnoreHoles, FacetModeler::Profile2D& rResult,
123 bool bEnableSelfIntersections = false,
124 bool bIgnoreNestedHoles = true,
125 std::function< bool() > fAbort = nullptr ) const;
126 //FELIX_CHANGE_END
127
137 // FELIX_CHANGE_BEGIN
138 // Issue: DESKTOP-95186
139 std::vector< AECSegmentNet2D::Edge* > getAllEdgesBoundary() const;
140 std::vector< AECSegmentNet2D::Node* > getAllNodesBoundary() const;
141 //FELIX_CHANGE_END
142 private:
143 class Profile2DBoundaryImpl* m_pImpl;
144};
145
149template <class T>
151{
152 public:
154 Profile2DBoundary& rDestination ) : T( pDb, mUCS ), m_rDestination( rDestination )
155 {
156 }
157
158 public:
162 virtual void processGeometry( FacetModeler::Segment2D& rGeometry ) const
163 {
164 m_rDestination.addGeometry( rGeometry );
165 }
166
170 virtual void processGeometry( FacetModeler::Contour2D& rGeometry ) const
171 {
172 m_rDestination.addGeometry( rGeometry );
173 }
174
178 virtual void processGeometry( FacetModeler::Profile2D& rGeometry ) const
179 {
180 m_rDestination.addGeometry( rGeometry );
181 }
182
183 private:
184 Profile2DBoundary& m_rDestination;
185};
186
187}
188
189#endif // __AECPROFILE2DBOUNDARY_H__
virtual void processGeometry(FacetModeler::Segment2D &rGeometry) const
virtual void processGeometry(FacetModeler::Contour2D &rGeometry) const
Profile2DBoundaryHarvester(OdDbDatabase *pDb, const OdGeMatrix3d &mUCS, Profile2DBoundary &rDestination)
virtual void processGeometry(FacetModeler::Profile2D &rGeometry) const
FacetModeler::Result addGeometry(const FacetModeler::Profile2D &rGeometry)
FacetModeler::Result addGeometry(const FacetModeler::Contour2D &rGeometry)
std::vector< AECSegmentNet2D::Edge * > getAllEdgesBoundary() const
std::vector< AECSegmentNet2D::Node * > getAllNodesBoundary() const
const OdGeTol & tol() const
Profile2DBoundary(const OdGeTol &gTol=FacetModeler::FMGeGbl::gTol)
FacetModeler::Result getBoundaryAbortable(const OdGePoint2d &ptInside, double dGap, bool bIgnoreHoles, FacetModeler::Profile2D &rResult, bool bEnableSelfIntersections=false, bool bIgnoreNestedHoles=true, std::function< bool() > fAbort=nullptr) const
FacetModeler::Result getOuterBoundary(FacetModeler::Profile2D &rResult) const
FacetModeler::Result addGeometry(const FacetModeler::Segment2D &rGeometry)
FacetModeler::Result clearGeometry()
FacetModeler::Result getBoundary(const OdGePoint2d &ptInside, double dGap, bool bIgnoreHoles, FacetModeler::Profile2D &rResult, bool bEnableSelfIntersections=false, bool bIgnoreNestedHoles=true) const
void setTol(const OdGeTol &tTol)
Definition: GeTol.h:49
static FMGEOMETRY_API_STATIC OdGeTol gTol
Definition: FMGeometry.h:169