CFx SDK Documentation  2022 SP0
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
FacetModeler::SlicerBaseImpl Class Reference

#include <FMMdlSlicerBaseImpl.h>

Inheritance diagram for FacetModeler::SlicerBaseImpl:
FacetModeler::EdgeGraph FacetModeler::Slicer< TSpatialFaceData >

Classes

struct  Intersection
 
struct  ParamLess
 
struct  VertexInPlanePosition
 

Public Member Functions

 SlicerBaseImpl ()
 
void collect_segments (const Face *pFace)
 
void reserveBuffers (size_t nFaces)
 
const OdGeToltolerance () const
 
void setTolerance (const OdGeTol &tol)
 
void set_cut_plane (const OdGePlane &cutPlane)
 
void build_results (Profile2D *pResInclBndry, Profile2D *pResExclCoBndry, Profile2D *pResExclOpBndry, Profile2D *pResExclBndry, FaceConstPtrArray *pCoincidingFaces, FaceConstPtrArray *pOppositeFaces, bool bUseReverseEdgeAtMerge, OdArray< const Edge * > *sourceEdges=0)
 
void AddEdgeToGraph (const OdGePoint3d &ptStart, const OdGePoint3d &ptEnd, const Edge *tag=0)
 
- Public Member Functions inherited from FacetModeler::EdgeGraph
OdUInt32 EdgesCount () const
 
OdUInt32 NodesCount () const
 
OdUInt32 GetEdgeStartNodeIdx (OdUInt32 aEdgeIdx) const
 
OdUInt32 GetEdgeEndNodeIdx (OdUInt32 aEdgeIdx) const
 
bool IsEdgeProcessed (OdUInt32 aEdgeIdx) const
 
void SetEdgeProcessed (OdUInt32 aEdgeIdx)
 
void ResetEdgeProcessed (OdUInt32 aEdgeIdx)
 
const SliceNodeGetEdgeStartNode (OdUInt32 aEdgeIdx) const
 
const SliceNodeGetEdgeEndNode (OdUInt32 aEdgeIdx) const
 
SliceNodeGetEdgeStartNode (OdUInt32 aEdgeIdx)
 
SliceNodeGetEdgeEndNode (OdUInt32 aEdgeIdx)
 
const OdGePoint3dGetEdgeStartPoint (OdUInt32 aEdgeIdx) const
 
const OdGePoint3dGetEdgeEndPoint (OdUInt32 aEdgeIdx) const
 
const SliceNodeGetNode (OdUInt32 aNodeIdx) const
 
SliceNodeGetNode (OdUInt32 aNodeIdx)
 
const SliceEdgeGetEdge (OdUInt32 aEdgeIdx) const
 
SliceEdgeGetEdge (OdUInt32 aEdgeIdx)
 
const OdGePoint3dGetNodePosition (OdUInt32 aNodeIdx) const
 
bool IsEdgesConcatenated (OdUInt32 iPreviousEdge, OdUInt32 iNextEdge) const
 
void AddEdge (const OdGeLineSeg3d &lSeg, const OdGePlane &pSegPlane, const OdGePlane &pCutPlane)
 
void AddEdge (const OdGePoint3d &ptSProjected, const OdGePoint3d &ptEProjected, const OdGePoint3d &ptSOriginal, const OdGePoint3d &ptEOriginal, const OdGePlane &pSegPlane, const OdGePlane &pCutPlane)
 
void AddEdge (const OdGePoint3d &ptS, const OdGePoint3d &ptE, const OdGePlane &pSegPlane, const OdGePlane &pCutPlane, const Edge *tag=0, const OdGeTol tol=FMGeGbl::gTol)
 
OdUInt32 AddNode (const OdGePoint3d &pt, const OdGeTol tol=FMGeGbl::gTol)
 
void BuildLinks ()
 
void RemoveCrossLinks ()
 
void RemoveOppositeEdges ()
 
void MergeDuplicatedEdges (bool bUseReverseEdgeAtMerge)
 
void ResetEdgesProcessedFlag ()
 
void Clear ()
 
void ReserveBuffers (size_t nFaces)
 

Protected Types

enum  IntersResult { kParallelPlanes , kIntersectingPlanes , kCoincidingPlanes }
 
enum  VertexHalfPlaneSign { ePositive , eNegative , eOnIntersectionLine }
 
typedef OdArray< Intersection, OdMemoryAllocator< Intersection > > IntersectionArray
 
typedef cycled_list< VertexInPlanePositionVtxInPlanePosCycledList
 

Protected Member Functions

void ClearFaceIntersectionsData ()
 
const OdGePlanecurrent_face_plane () const
 
const OdGePlanecut_plane () const
 
IntersResult IntersectCutPlaneToCurrentFacePlane (double tol)
 
IntersResult IntersectCutPlaneToFacePlane (const Face *f) const
 
void MergeSegmentsAndAddToEdgeGraph ()
 
void initPointExtraction ()
 
bool extractSegment (const OdGePoint3d *&pStart, const OdGePoint3d *&pEnd, bool &bInside)
 
void ExtractSegmentsByIntersections ()
 
SlicerBaseImpl::IntersectionFindNextDifferentIntersection (SlicerBaseImpl::Intersection *pIntBase)
 
SlicerBaseImpl::IntersectionFindIntersectionEnterInside ()
 
bool IntersectionsCoincident (const SlicerBaseImpl::Intersection *pInt1, const SlicerBaseImpl::Intersection *pInt2)
 
void exclude_faces (Profile2D &excludedProfile, FaceConstPtrArray &excludeFaces, OdArray< const Edge * > *pSourceEdges=NULL)
 
void exclude_opposite_faces (Profile2D &excludedProfile, FaceConstPtrArray &excludeFaces, OdArray< const Edge * > *pSourceEdges=NULL)
 
void FindIntersectionSegmentsWithCutPlane ()
 
void ClassifyLoopVertices (Edge *pFirstLoopEdge)
 
SlicerBaseImpl::VertexHalfPlaneSign ClassifyPointAboutIntersectionLine (const OdGePoint3d &ptToClassify)
 
void CollectSegmentsOnIntersectionLine ()
 
void CollectIntersections ()
 
void MergePairedIntersections ()
 
bool ExtractSegmentFromVertex (VtxInPlanePosCycledList::iterator &itBase)
 
VtxInPlanePosCycledList::iterator FindOnSegmentStartVertex (VtxInPlanePosCycledList::iterator &itBase)
 
VtxInPlanePosCycledList::iterator FindOnSegmentEndVertex (VtxInPlanePosCycledList::iterator &itBase)
 
bool VertexOnIntersectionLine (const VtxInPlanePosCycledList::iterator &itVtx) const
 
const OdGePoint3dVertexPoint (const VtxInPlanePosCycledList::iterator &itVtx) const
 
bool IsIntersectionOnVertex (VtxInPlanePosCycledList::iterator &itVtx)
 
bool IsIntersectionOnEdge (VtxInPlanePosCycledList::iterator &itVtx)
 
void AddIntersectionFromVertex (const VertexInPlanePosition &vtxData)
 
void AddIntersectionFromEdge (const VertexInPlanePosition &vtxData)
 
void AddIntersection (const OdGePoint3d &ptIntersection, const Edge *pEdge, int bOnIntersectionSeg=0)
 
void CollectEdgeForEdgeGraph (const OdGePoint3d &ptStart, const OdGePoint3d &ptEnd, const Edge *tag=0)
 
void AddFaceEdgesAsSegmentsToEdgeGraph ()
 
- Protected Member Functions inherited from FacetModeler::EdgeGraph
void ReserveBuffersIfEmpty ()
 
bool LeaveOrder (const OdGePoint3d &ptS, const OdGePoint3d &ptE, const OdGeVector3d &vFaceNormal, const OdGeVector3d &vCutNormal)
 

Protected Attributes

const Facem_pCurrentFace
 
const OdGePlanem_pCutPlane
 
OdGeVector3d m_cutPlane_normal
 
OdGeTol m_tol
 
OdGeLine3d m_intersectionLine
 
FaceConstPtrArray m_coinciding
 
FaceConstPtrArray m_opposite
 
VtxInPlanePosCycledList m_classifiedVertices
 
IntersectionArray m_intersections
 
OdGeLineSeg3d m_edgeSeg
 
SegmentMerger m_segmentsMerger
 
Intersectionm_pCurIntPt
 
Intersectionm_pEndIntPt
 
Intersectionm_pCur
 
double m_eq
 
- Protected Attributes inherited from FacetModeler::EdgeGraph
OdArray< SliceEdge, OdMemoryAllocator< SliceEdge > > aEdges
 
OdArray< SliceNodeaNodes
 

Detailed Description

Definition at line 388 of file FMMdlSlicerBaseImpl.h.

Member Typedef Documentation

◆ IntersectionArray

Definition at line 405 of file FMMdlSlicerBaseImpl.h.

◆ VtxInPlanePosCycledList

Definition at line 437 of file FMMdlSlicerBaseImpl.h.

Member Enumeration Documentation

◆ IntersResult

Enumerator
kParallelPlanes 
kIntersectingPlanes 
kCoincidingPlanes 

Definition at line 414 of file FMMdlSlicerBaseImpl.h.

◆ VertexHalfPlaneSign

Enumerator
ePositive 
eNegative 
eOnIntersectionLine 

Definition at line 421 of file FMMdlSlicerBaseImpl.h.

Constructor & Destructor Documentation

◆ SlicerBaseImpl()

FacetModeler::SlicerBaseImpl::SlicerBaseImpl ( )

Member Function Documentation

◆ AddEdgeToGraph()

void FacetModeler::SlicerBaseImpl::AddEdgeToGraph ( const OdGePoint3d ptStart,
const OdGePoint3d ptEnd,
const Edge tag = 0 
)

◆ AddFaceEdgesAsSegmentsToEdgeGraph()

void FacetModeler::SlicerBaseImpl::AddFaceEdgesAsSegmentsToEdgeGraph ( )
protected

◆ AddIntersection()

void FacetModeler::SlicerBaseImpl::AddIntersection ( const OdGePoint3d ptIntersection,
const Edge pEdge,
int  bOnIntersectionSeg = 0 
)
protected

◆ AddIntersectionFromEdge()

void FacetModeler::SlicerBaseImpl::AddIntersectionFromEdge ( const VertexInPlanePosition vtxData)
protected

◆ AddIntersectionFromVertex()

void FacetModeler::SlicerBaseImpl::AddIntersectionFromVertex ( const VertexInPlanePosition vtxData)
protected

◆ build_results()

void FacetModeler::SlicerBaseImpl::build_results ( Profile2D pResInclBndry,
Profile2D pResExclCoBndry,
Profile2D pResExclOpBndry,
Profile2D pResExclBndry,
FaceConstPtrArray pCoincidingFaces,
FaceConstPtrArray pOppositeFaces,
bool  bUseReverseEdgeAtMerge,
OdArray< const Edge * > *  sourceEdges = 0 
)

◆ ClassifyLoopVertices()

void FacetModeler::SlicerBaseImpl::ClassifyLoopVertices ( Edge pFirstLoopEdge)
protected

◆ ClassifyPointAboutIntersectionLine()

SlicerBaseImpl::VertexHalfPlaneSign FacetModeler::SlicerBaseImpl::ClassifyPointAboutIntersectionLine ( const OdGePoint3d ptToClassify)
protected

◆ ClearFaceIntersectionsData()

void FacetModeler::SlicerBaseImpl::ClearFaceIntersectionsData ( )
protected

◆ collect_segments()

void FacetModeler::SlicerBaseImpl::collect_segments ( const Face pFace)

◆ CollectEdgeForEdgeGraph()

void FacetModeler::SlicerBaseImpl::CollectEdgeForEdgeGraph ( const OdGePoint3d ptStart,
const OdGePoint3d ptEnd,
const Edge tag = 0 
)
protected

◆ CollectIntersections()

void FacetModeler::SlicerBaseImpl::CollectIntersections ( )
protected

◆ CollectSegmentsOnIntersectionLine()

void FacetModeler::SlicerBaseImpl::CollectSegmentsOnIntersectionLine ( )
protected

◆ current_face_plane()

const OdGePlane& FacetModeler::SlicerBaseImpl::current_face_plane ( ) const
protected

◆ cut_plane()

const OdGePlane& FacetModeler::SlicerBaseImpl::cut_plane ( ) const
protected

◆ exclude_faces()

void FacetModeler::SlicerBaseImpl::exclude_faces ( Profile2D excludedProfile,
FaceConstPtrArray excludeFaces,
OdArray< const Edge * > *  pSourceEdges = NULL 
)
protected

◆ exclude_opposite_faces()

void FacetModeler::SlicerBaseImpl::exclude_opposite_faces ( Profile2D excludedProfile,
FaceConstPtrArray excludeFaces,
OdArray< const Edge * > *  pSourceEdges = NULL 
)
protected

◆ extractSegment()

bool FacetModeler::SlicerBaseImpl::extractSegment ( const OdGePoint3d *&  pStart,
const OdGePoint3d *&  pEnd,
bool &  bInside 
)
protected

◆ ExtractSegmentFromVertex()

bool FacetModeler::SlicerBaseImpl::ExtractSegmentFromVertex ( VtxInPlanePosCycledList::iterator &  itBase)
protected

◆ ExtractSegmentsByIntersections()

void FacetModeler::SlicerBaseImpl::ExtractSegmentsByIntersections ( )
protected

◆ FindIntersectionEnterInside()

SlicerBaseImpl::Intersection* FacetModeler::SlicerBaseImpl::FindIntersectionEnterInside ( )
protected

◆ FindIntersectionSegmentsWithCutPlane()

void FacetModeler::SlicerBaseImpl::FindIntersectionSegmentsWithCutPlane ( )
protected

◆ FindNextDifferentIntersection()

SlicerBaseImpl::Intersection* FacetModeler::SlicerBaseImpl::FindNextDifferentIntersection ( SlicerBaseImpl::Intersection pIntBase)
protected

◆ FindOnSegmentEndVertex()

VtxInPlanePosCycledList::iterator FacetModeler::SlicerBaseImpl::FindOnSegmentEndVertex ( VtxInPlanePosCycledList::iterator &  itBase)
protected

◆ FindOnSegmentStartVertex()

VtxInPlanePosCycledList::iterator FacetModeler::SlicerBaseImpl::FindOnSegmentStartVertex ( VtxInPlanePosCycledList::iterator &  itBase)
protected

◆ initPointExtraction()

void FacetModeler::SlicerBaseImpl::initPointExtraction ( )
protected

◆ IntersectCutPlaneToCurrentFacePlane()

IntersResult FacetModeler::SlicerBaseImpl::IntersectCutPlaneToCurrentFacePlane ( double  tol)
protected

◆ IntersectCutPlaneToFacePlane()

IntersResult FacetModeler::SlicerBaseImpl::IntersectCutPlaneToFacePlane ( const Face f) const
protected

◆ IntersectionsCoincident()

bool FacetModeler::SlicerBaseImpl::IntersectionsCoincident ( const SlicerBaseImpl::Intersection pInt1,
const SlicerBaseImpl::Intersection pInt2 
)
protected

◆ IsIntersectionOnEdge()

bool FacetModeler::SlicerBaseImpl::IsIntersectionOnEdge ( VtxInPlanePosCycledList::iterator &  itVtx)
protected

◆ IsIntersectionOnVertex()

bool FacetModeler::SlicerBaseImpl::IsIntersectionOnVertex ( VtxInPlanePosCycledList::iterator &  itVtx)
protected

◆ MergePairedIntersections()

void FacetModeler::SlicerBaseImpl::MergePairedIntersections ( )
protected

◆ MergeSegmentsAndAddToEdgeGraph()

void FacetModeler::SlicerBaseImpl::MergeSegmentsAndAddToEdgeGraph ( )
protected

◆ reserveBuffers()

void FacetModeler::SlicerBaseImpl::reserveBuffers ( size_t  nFaces)

◆ set_cut_plane()

void FacetModeler::SlicerBaseImpl::set_cut_plane ( const OdGePlane cutPlane)

◆ setTolerance()

void FacetModeler::SlicerBaseImpl::setTolerance ( const OdGeTol tol)
inline

Definition at line 467 of file FMMdlSlicerBaseImpl.h.

◆ tolerance()

const OdGeTol& FacetModeler::SlicerBaseImpl::tolerance ( ) const
inline

Definition at line 465 of file FMMdlSlicerBaseImpl.h.

◆ VertexOnIntersectionLine()

bool FacetModeler::SlicerBaseImpl::VertexOnIntersectionLine ( const VtxInPlanePosCycledList::iterator &  itVtx) const
protected

◆ VertexPoint()

const OdGePoint3d& FacetModeler::SlicerBaseImpl::VertexPoint ( const VtxInPlanePosCycledList::iterator &  itVtx) const
protected

Member Data Documentation

◆ m_classifiedVertices

VtxInPlanePosCycledList FacetModeler::SlicerBaseImpl::m_classifiedVertices
protected

Definition at line 448 of file FMMdlSlicerBaseImpl.h.

◆ m_coinciding

FaceConstPtrArray FacetModeler::SlicerBaseImpl::m_coinciding
protected

Definition at line 445 of file FMMdlSlicerBaseImpl.h.

◆ m_cutPlane_normal

OdGeVector3d FacetModeler::SlicerBaseImpl::m_cutPlane_normal
protected

Definition at line 442 of file FMMdlSlicerBaseImpl.h.

◆ m_edgeSeg

OdGeLineSeg3d FacetModeler::SlicerBaseImpl::m_edgeSeg
protected

Definition at line 450 of file FMMdlSlicerBaseImpl.h.

◆ m_eq

double FacetModeler::SlicerBaseImpl::m_eq
protected

Definition at line 456 of file FMMdlSlicerBaseImpl.h.

◆ m_intersectionLine

OdGeLine3d FacetModeler::SlicerBaseImpl::m_intersectionLine
protected

Definition at line 444 of file FMMdlSlicerBaseImpl.h.

◆ m_intersections

IntersectionArray FacetModeler::SlicerBaseImpl::m_intersections
protected

Definition at line 449 of file FMMdlSlicerBaseImpl.h.

◆ m_opposite

FaceConstPtrArray FacetModeler::SlicerBaseImpl::m_opposite
protected

Definition at line 446 of file FMMdlSlicerBaseImpl.h.

◆ m_pCur

Intersection* FacetModeler::SlicerBaseImpl::m_pCur
protected

Definition at line 455 of file FMMdlSlicerBaseImpl.h.

◆ m_pCurIntPt

Intersection* FacetModeler::SlicerBaseImpl::m_pCurIntPt
protected

Definition at line 453 of file FMMdlSlicerBaseImpl.h.

◆ m_pCurrentFace

const Face* FacetModeler::SlicerBaseImpl::m_pCurrentFace
protected

Definition at line 440 of file FMMdlSlicerBaseImpl.h.

◆ m_pCutPlane

const OdGePlane* FacetModeler::SlicerBaseImpl::m_pCutPlane
protected

Definition at line 441 of file FMMdlSlicerBaseImpl.h.

◆ m_pEndIntPt

Intersection* FacetModeler::SlicerBaseImpl::m_pEndIntPt
protected

Definition at line 454 of file FMMdlSlicerBaseImpl.h.

◆ m_segmentsMerger

SegmentMerger FacetModeler::SlicerBaseImpl::m_segmentsMerger
protected

Definition at line 451 of file FMMdlSlicerBaseImpl.h.

◆ m_tol

OdGeTol FacetModeler::SlicerBaseImpl::m_tol
protected

Definition at line 443 of file FMMdlSlicerBaseImpl.h.


The documentation for this class was generated from the following file: