1 // File: TopCnx_EdgeFaceTransition.cxx
2 // Created: Wed Aug 12 17:08:45 1992
3 // Author: Remi LEQUETTE
7 #include <TopCnx_EdgeFaceTransition.ixx>
10 //=======================================================================
11 //function : TopCnx_EdgeFaceTransition
13 //=======================================================================
15 TopCnx_EdgeFaceTransition::TopCnx_EdgeFaceTransition() :
21 //=======================================================================
24 //=======================================================================
26 void TopCnx_EdgeFaceTransition::Reset(const gp_Dir& Tgt,
28 const Standard_Real Curv)
30 myCurveTransition.Reset(Tgt,Norm,Curv);
31 nbBoundForward = nbBoundReversed = 0;
34 //=======================================================================
37 //=======================================================================
39 void TopCnx_EdgeFaceTransition::Reset(const gp_Dir& Tgt)
41 myCurveTransition.Reset(Tgt);
42 nbBoundForward = nbBoundReversed = 0;
45 //=======================================================================
46 //function : AddInterference
48 //=======================================================================
50 void TopCnx_EdgeFaceTransition::AddInterference(const Standard_Real Tole,
53 const Standard_Real Curv,
54 const TopAbs_Orientation Or,
55 const TopAbs_Orientation Tr,
56 const TopAbs_Orientation BTr)
58 myCurveTransition.Compare(Tole,Tang,Norm,Curv,Tr,Or);
65 case TopAbs_REVERSED :
69 case TopAbs_INTERNAL :
70 case TopAbs_EXTERNAL :
75 //=======================================================================
76 //function : Transition
78 //=======================================================================
80 TopAbs_Orientation TopCnx_EdgeFaceTransition::Transition()const
82 TopAbs_State Bef = myCurveTransition.StateBefore();
83 TopAbs_State Aft = myCurveTransition.StateAfter();
84 if (Bef == TopAbs_IN) {
85 if (Aft == TopAbs_IN )
86 return TopAbs_INTERNAL;
87 else if (Aft == TopAbs_OUT)
88 return TopAbs_REVERSED;
90 cout << "\n*** Complex Transition : unprocessed state"<<endl;
92 else if (Bef == TopAbs_OUT) {
93 if (Aft == TopAbs_IN )
94 return TopAbs_FORWARD;
95 else if (Aft == TopAbs_OUT)
96 return TopAbs_EXTERNAL;
98 cout << "\n*** Complex Transition : unprocessed state"<<endl;
101 cout << "\n*** Complex Transition : unprocessed state"<<endl;
102 return TopAbs_INTERNAL;
105 //=======================================================================
106 //function : BoundaryTransition
108 //=======================================================================
110 TopAbs_Orientation TopCnx_EdgeFaceTransition::BoundaryTransition()const
112 if (nbBoundForward > nbBoundReversed)
113 return TopAbs_FORWARD;
114 else if (nbBoundForward < nbBoundReversed)
115 return TopAbs_REVERSED;
116 else if ((nbBoundReversed % 2) == 0)
117 return TopAbs_EXTERNAL;
119 return TopAbs_EXTERNAL;