23 #ifndef FMSLICECONTOURBUILDER_H_INCLUDED
24 #define FMSLICECONTOURBUILDER_H_INCLUDED
47 std::list<T> m_lstValues;
48 std::set<T> m_setValues;
61 return m_lstValues.front();
66 return m_lstValues.back();
71 m_lstValues.push_back(aVal);
72 m_setValues.insert(aVal);
77 return m_lstValues.size();
91 const T& aVal = m_lstValues.back();
92 m_setValues.erase(aVal);
93 m_lstValues.pop_back();
98 return (m_setValues.find(aVal) != m_setValues.end());
103 return (m_lstValues == t2.m_lstValues);
174 typedef std::set<OdUInt32> AssignedEdges;
175 AssignedEdges m_assignedEdges;
186 bool IsEdgeAssigned(
OdUInt32 edgeIdx) {
return m_assignedEdges.find(edgeIdx) != m_assignedEdges.end(); }
187 void SetEdgeAssigned(
OdUInt32 edgeIdx) { m_assignedEdges.insert(edgeIdx); }
190 void AddPoint2dToExtents(
const OdGePoint2d& ptVertex2d);
195 void MarkDuplicatedEdges();
199 void MakeClosedContour(
Contour2D& rResult );
237 typedef std::vector<SliceEdge> Edges;
239 void DebugDrawEdgeGraph();
240 void DebugDrawEdge(
OdUInt32 uEdgeIdx, Edges& drawnEdges,
OdInt16 edgeBaseColor = 0);
242 bool HasCoincidentEdge(
OdUInt32 uEdgeIdx,
const Edges& drawnEdges);
243 bool HasCoincidentOppositeEdge(
OdUInt32 uEdgeIdx,
const Edges& drawnEdges);
246 void DebugCheckForDuplicatedNodes();
250 #endif //FMSLICECONTOURBUILDER_H_INCLUDED