1 // File: BRep_TEdge.cxx
2 // Created: Tue Aug 25 15:37:58 1992
3 // Author: Modelistation
7 #include <BRep_TEdge.ixx>
9 #include <BRep_CurveRepresentation.hxx>
10 #include <BRep_ListOfCurveRepresentation.hxx>
11 #include <BRep_ListIteratorOfListOfCurveRepresentation.hxx>
12 #include <BRep_GCurve.hxx>
13 #include <BRep_CurveOn2Surfaces.hxx>
15 static const Standard_Integer ParameterMask = 1;
16 static const Standard_Integer RangeMask = 2;
17 static const Standard_Integer DegeneratedMask = 4;
19 //=======================================================================
20 //function : BRep_TEdge
22 //=======================================================================
24 BRep_TEdge::BRep_TEdge() :
26 myTolerance(RealEpsilon()),
29 SameParameter(Standard_True);
30 SameRange(Standard_True);
33 //=======================================================================
34 //function : SameParameter
36 //=======================================================================
38 Standard_Boolean BRep_TEdge::SameParameter()const
40 return myFlags & ParameterMask;
44 //=======================================================================
45 //function : SameParameter
47 //=======================================================================
49 void BRep_TEdge::SameParameter(const Standard_Boolean S)
51 if (S) myFlags |= ParameterMask;
52 else myFlags &= ~ParameterMask;
56 //=======================================================================
57 //function : SameRange
59 //=======================================================================
61 Standard_Boolean BRep_TEdge::SameRange()const
63 return myFlags & RangeMask;
67 //=======================================================================
68 //function : SameRange
70 //=======================================================================
72 void BRep_TEdge::SameRange(const Standard_Boolean S)
74 if (S) myFlags |= RangeMask;
75 else myFlags &= ~RangeMask;
79 //=======================================================================
80 //function : Degenerated
82 //=======================================================================
84 Standard_Boolean BRep_TEdge::Degenerated()const
86 return myFlags & DegeneratedMask;
90 //=======================================================================
91 //function : Degenerated
93 //=======================================================================
95 void BRep_TEdge::Degenerated(const Standard_Boolean S)
97 if (S) myFlags |= DegeneratedMask;
98 else myFlags &= ~DegeneratedMask;
101 //=======================================================================
102 //function : EmptyCopy
104 //=======================================================================
106 Handle(TopoDS_TShape) BRep_TEdge::EmptyCopy() const
108 Handle(BRep_TEdge) TE =
110 TE->Tolerance(myTolerance);
111 // copy the curves representations
112 BRep_ListOfCurveRepresentation& l = TE->ChangeCurves();
113 BRep_ListIteratorOfListOfCurveRepresentation itr(myCurves);
116 // on ne recopie PAS les polygones
117 if ( itr.Value()->IsKind(STANDARD_TYPE(BRep_GCurve)) ||
118 itr.Value()->IsKind(STANDARD_TYPE(BRep_CurveOn2Surfaces)) ) {
119 l.Append(itr.Value()->Copy());
124 TE->Degenerated(Degenerated());
125 TE->SameParameter(SameParameter());
126 TE->SameRange(SameRange());