23 #ifndef AECEDGEGRAPH_H_INCLUDED
24 #define AECEDGEGRAPH_H_INCLUDED
83 return (
iS == edge.
iE &&
iE == edge.
iS);
95 return (e1.
iS == e2.
iS && e1.
iE == e2.
iE);
182 SliceEdgeData() : overlappedCount(0), oppositeCount(0)
186 void DebugDrawEdges()
const;
187 void DebugDrawGraph();
189 void DebugDrawColoredGraph();
192 void DebugDrawColoredOrderedGraph();
OdUInt32 GetEdgeStartNodeIdx(OdUInt32 aEdgeIdx) const
void ResetEdgesProcessedFlag()
OdUInt32 AddNode(const OdGePoint3d &pt, const OdGeTol tol=FMGeGbl::gTol)
void ReserveBuffers(size_t nFaces)
SliceNode & GetEdgeStartNode(OdUInt32 aEdgeIdx)
const SliceNode & GetNode(OdUInt32 aNodeIdx) const
bool LeaveOrder(const OdGePoint3d &ptS, const OdGePoint3d &ptE, const OdGeVector3d &vFaceNormal, const OdGeVector3d &vCutNormal)
const OdGePoint3d & GetEdgeEndPoint(OdUInt32 aEdgeIdx) const
void ReserveBuffersIfEmpty()
void ResetEdgeProcessed(OdUInt32 aEdgeIdx)
SliceEdge & GetEdge(OdUInt32 aEdgeIdx)
OdArray< SliceNode > aNodes
void AddEdge(const OdGePoint3d &ptS, const OdGePoint3d &ptE, const OdGePlane &pSegPlane, const OdGePlane &pCutPlane, const Edge *tag=0, const OdGeTol tol=FMGeGbl::gTol)
OdUInt32 GetEdgeEndNodeIdx(OdUInt32 aEdgeIdx) const
void SetEdgeProcessed(OdUInt32 aEdgeIdx)
const SliceNode & GetEdgeStartNode(OdUInt32 aEdgeIdx) const
void AddEdge(const OdGeLineSeg3d &lSeg, const OdGePlane &pSegPlane, const OdGePlane &pCutPlane)
OdArray< SliceEdge, OdMemoryAllocator< SliceEdge > > aEdges
const SliceEdge & GetEdge(OdUInt32 aEdgeIdx) const
void AddEdge(const OdGePoint3d &ptSProjected, const OdGePoint3d &ptEProjected, const OdGePoint3d &ptSOriginal, const OdGePoint3d &ptEOriginal, const OdGePlane &pSegPlane, const OdGePlane &pCutPlane)
SliceNode & GetNode(OdUInt32 aNodeIdx)
OdUInt32 EdgesCount() const
const OdGePoint3d & GetEdgeStartPoint(OdUInt32 aEdgeIdx) const
void RemoveOppositeEdges()
bool IsEdgesConcatenated(OdUInt32 iPreviousEdge, OdUInt32 iNextEdge) const
bool IsEdgeProcessed(OdUInt32 aEdgeIdx) const
const SliceNode & GetEdgeEndNode(OdUInt32 aEdgeIdx) const
void MergeDuplicatedEdges(bool bUseReverseEdgeAtMerge)
SliceNode & GetEdgeEndNode(OdUInt32 aEdgeIdx)
const OdGePoint3d & GetNodePosition(OdUInt32 aNodeIdx) const
OdUInt32 NodesCount() const
static FMGEOMETRY_API_STATIC OdGeTol gTol
SliceEdge(OdUInt32 s, OdUInt32 e, const Edge *_tag=0, bool _bLeaveOrder=false)
bool IsOpposite(const SliceEdge &edge) const
SliceNode(const OdGePoint3d &point)