// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
+#include <ShapeUpgrade_UnifySameDomain.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <ShapeFix_Face.hxx>
#include <ShapeFix_Shell.hxx>
#include <ShapeFix_Wire.hxx>
-#include <ShapeUpgrade_UnifySameDomain.hxx>
#include <Standard_Type.hxx>
#include <TColGeom2d_Array1OfBSplineCurve.hxx>
#include <TColGeom2d_HArray1OfBSplineCurve.hxx>
return Standard_True;
}
+struct ShapeUpgrade_UnifySameDomain::SubSequenceOfEdges
+{
+ TopTools_SequenceOfShape SeqsEdges;
+ TopoDS_Edge UnionEdges;
+};
+
//=======================================================================
-//function : GenerateSubSeq
-//purpose : Generates sub-sequences of edges from sequence of edges
-//Edges from each subsequences can be merged into the one edge
+//function : generateSubSeq
+//purpose :
//=======================================================================
-
-static void GenerateSubSeq (const TopTools_SequenceOfShape& anInpEdgeSeq,
- NCollection_Sequence<SubSequenceOfEdges>& SeqOfSubSeqOfEdges,
- Standard_Boolean IsClosed, double theAngTol, double theLinTol,
- const TopTools_MapOfShape& AvoidEdgeVrt,
- const TopTools_IndexedDataMapOfShapeListOfShape& theVFmap)
+void ShapeUpgrade_UnifySameDomain::generateSubSeq (const TopTools_SequenceOfShape& anInpEdgeSeq,
+ NCollection_Sequence<SubSequenceOfEdges>& SeqOfSubSeqOfEdges,
+ Standard_Boolean IsClosed, double theAngTol, double theLinTol,
+ const TopTools_MapOfShape& AvoidEdgeVrt,
+ const TopTools_IndexedDataMapOfShapeListOfShape& theVFmap)
{
Standard_Boolean isOk = Standard_False;
TopoDS_Edge edge1, edge2;
// split chain by vertices at which merging is not possible
NCollection_Sequence<SubSequenceOfEdges> aOneSeq;
- GenerateSubSeq(aChain, aOneSeq, IsClosed, myAngTol, myLinTol, VerticesToAvoid, theVFmap);
+ generateSubSeq(aChain, aOneSeq, IsClosed, myAngTol, myLinTol, VerticesToAvoid, theVFmap);
// put sub-chains in the result
SeqOfSubSeqOfEdges.Append(aOneSeq);
//! The algorithm provides a place holder for the history and collects the
//! history by default.
//! To avoid collecting of the history the place holder should be set to null handle.
-
-struct SubSequenceOfEdges
-{
- TopTools_SequenceOfShape SeqsEdges;
- TopoDS_Edge UnionEdges;
-};
-
class ShapeUpgrade_UnifySameDomain : public Standard_Transient
{
DEFINE_STANDARD_RTTIEXT(ShapeUpgrade_UnifySameDomain,Standard_Transient)
+protected:
+
+ struct SubSequenceOfEdges;
+
protected:
//! This method makes if possible a common face from each
//! Fills the history of the modifications during the operation.
Standard_EXPORT void FillHistory();
+private:
+
+ //! Generates sub-sequences of edges from sequence of edges.
+ //! Edges from each subsequences can be merged into the one edge.
+ static void generateSubSeq (const TopTools_SequenceOfShape& anInpEdgeSeq,
+ NCollection_Sequence<SubSequenceOfEdges>& SeqOfSubSeqOfEdges,
+ Standard_Boolean IsClosed, double theAngTol, double theLinTol,
+ const TopTools_MapOfShape& AvoidEdgeVrt,
+ const TopTools_IndexedDataMapOfShapeListOfShape& theVFmap);
+
private:
TopoDS_Shape myInitShape;