CFx SDK Documentation  2020SP3
Public Member Functions | List of all members
FacetModeler::Slicer< TSpatialFaceData > Class Template Reference

#include <FMSliceEngine.h>

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

Public Member Functions

void initSlicerAndFaceIndex (const Body *pBody, FaceSpatialIndex< TSpatialFaceData > &faceSpatialIndex, double eps=OdGeTol().equalVector())
 
void slice (const OdGePlane &cutPlane, const FaceSpatialIndex< TSpatialFaceData > &faceSpatial, Profile2D *pResultIncludingBoundary, Profile2D *pResultExcludingCoincidingBoundary=0, Profile2D *pResultExcludingOppositeBoundary=0, Profile2D *pResultExcludingBoundary=0, FaceConstPtrArray *pCoincidingFaces=0, FaceConstPtrArray *pOppositeFaces=0, bool bUseReverseEdgeAtMerge=false, OdArray< const Edge * > *sourceEdges=0)
 
- Public Member Functions inherited from FacetModeler::SlicerBaseImpl
 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)
 

Additional Inherited Members

- Protected Types inherited from FacetModeler::SlicerBaseImpl
enum  IntersResult { kParallelPlanes, kIntersectingPlanes, kCoincidingPlanes }
 
enum  VertexHalfPlaneSign { ePositive, eNegative, eOnIntersectionLine }
 
typedef OdArray< Intersection, OdMemoryAllocator< Intersection > > IntersectionArray
 
typedef cycled_list< VertexInPlanePositionVtxInPlanePosCycledList
 
- Protected Member Functions inherited from FacetModeler::SlicerBaseImpl
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 inherited from FacetModeler::SlicerBaseImpl
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

template<class TSpatialFaceData = SpatialFaceData>
class FacetModeler::Slicer< TSpatialFaceData >

Definition at line 187 of file FMSliceEngine.h.

Member Function Documentation

◆ initSlicerAndFaceIndex()

template<class TSpatialFaceData = SpatialFaceData>
void FacetModeler::Slicer< TSpatialFaceData >::initSlicerAndFaceIndex ( const Body pBody,
FaceSpatialIndex< TSpatialFaceData > &  faceSpatialIndex,
double  eps = OdGeTol().equalVector() 
)
inline

Definition at line 201 of file FMSliceEngine.h.

◆ slice()

template<class TSpatialFaceData = SpatialFaceData>
void FacetModeler::Slicer< TSpatialFaceData >::slice ( const OdGePlane cutPlane,
const FaceSpatialIndex< TSpatialFaceData > &  faceSpatial,
Profile2D pResultIncludingBoundary,
Profile2D pResultExcludingCoincidingBoundary = 0,
Profile2D pResultExcludingOppositeBoundary = 0,
Profile2D pResultExcludingBoundary = 0,
FaceConstPtrArray pCoincidingFaces = 0,
FaceConstPtrArray pOppositeFaces = 0,
bool  bUseReverseEdgeAtMerge = false,
OdArray< const Edge * > *  sourceEdges = 0 
)
inline

Definition at line 207 of file FMSliceEngine.h.


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