CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
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, bool intOrDif=false, Profile2D *pResultExcludingCoincidingBoundary=0, Profile2D *pResultExcludingOppositeBoundary=0, Profile2D *pResultExcludingBoundary=0, FaceConstPtrArray *pCoincidingFaces=0, FaceConstPtrArray *pOppositeFaces=0, bool bUseReverseEdgeAtMerge=false, OdArray< const Edge * > *sourceEdges=0, const OdGeExtents3d *pCutPlaneBounds=0, const OdGeExtents2d *pCutFaceBox=0)
 
- Public Member Functions inherited from FacetModeler::SlicerBaseImpl
 SlicerBaseImpl ()
 
void collect_face (const Face *pFace)
 
void collect_all_segments ()
 
void checkFaceByRay (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, bool &checkFaceByRay, OdArray< const Edge * > *sourceEdges=0, const OdGeExtents2d *pIncBox=0, const OdGeExtents2d *pOrigBox=0)
 
void build_profiles (Profile2D *pResInclBndry, Profile2D *pResExclCoBndry, Profile2D *pResExclOpBndry, Profile2D *pResExclBndry, FaceConstPtrArray *pCoincidingFaces, FaceConstPtrArray *pOppositeFaces, OdArray< const Edge * > *sourceEdges, const OdGeExtents2d *pBox)
 
const FaceConstPtrArraygetOpposite () const
 
const FaceConstPtrArraygetCoinciding () const
 
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)
 
void ClearLinks ()
 
void AddEdge (OdUInt32 iS, OdUInt32 iE)
 
double GetAddNodeTol (const OdGeTol tol=FMGeGbl::gTol) const
 
void RemoveEdge (OdUInt32 idx, OdGePoint2dArray *pArr=NULL)
 
void RestoreEdgeNodesIdxs (OdUInt32 idx1, OdUInt32 idx2)
 
bool DoesEdgeExist (OdUInt32 iS, OdUInt32 iE, OdUInt32 &res) const
 
void ReorderLinks (const OdGePlane &plane)
 

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 MergeSegmentsAndCollectGraphEdges (OdArray< GraphEdgeData > &face_edges)
 
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, bool exact=false)
 
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 ()
 
void AddScaledBoxContour (const OdGeExtents2d &bbox)
 
bool CloseByBox (const OdGeExtents2d &bbox, const OdGeExtents2d &origBBox, bool &checkFaceByRay)
 
- Protected Member Functions inherited from FacetModeler::EdgeGraph
void ReserveBuffersIfEmpty ()
 
bool LeaveOrder (const OdGePoint3d &ptS, const OdGePoint3d &ptE, const OdGeVector3d &vFaceNormal, const OdGeVector3d &vCutNormal)
 
virtual void visit (OdSiEntity *entity, bool completelyInside)=0
 
- 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
 
OdGeRay3dm_pRay
 
OdArray< RayFaceIntersectionm_rayFaceInters
 
std::list< const Face * > m_collectedFaces
 
std::map< const Edge *, OdGePoint3dm_collectedIntersectionPts
 
std::map< const Edge *, VertexInPlanePositionm_collectedIntersectionFromVertex
 
SegmentMergerm_pCurSegMerger
 
bool mode
 
- 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 217 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 237 of file FMSliceEngine.h.

◆ slice()

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

Definition at line 244 of file FMSliceEngine.h.


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