// File: IntPatch_Point.cxx // Created: Wed May 6 14:01:12 1992 // Author: Jacques GOUSSARD // Copyright: OPEN CASCADE 1992 #include #include #include void IntPatch_Point::SetValue (const gp_Pnt& Pt, const Standard_Real Tol, const Standard_Boolean Tangent) { onS1 = Standard_False; onS2 = Standard_False; vtxonS1 = Standard_False; vtxonS2 = Standard_False; mult = Standard_False; tgt = Tangent; pt.SetValue(Pt); tol = Tol; } void IntPatch_Point::SetVertex(const Standard_Boolean OnFirst, const Handle(Adaptor3d_HVertex)& V) { if (OnFirst) { onS1 = Standard_True; vtxonS1 = Standard_True; vS1 = V; } else { onS2 = Standard_True; vtxonS2 = Standard_True; vS2 = V; } } void IntPatch_Point::SetArc (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc) { if (OnFirst) { onS1 = Standard_True; arcS1 = A; traline1 = TLine; tra1 = TArc; prm1 = Param; } else { onS2 = Standard_True; arcS2 = A; traline2 = TLine; tra2 = TArc; prm2 = Param; } } void IntPatch_Point::ReverseTransition() { if(onS1) { IntSurf_Transition TLine; switch (traline1.TransitionType()) { case IntSurf_In: TLine.SetValue(Standard_False,IntSurf_Out); break; case IntSurf_Out: TLine.SetValue(Standard_False,IntSurf_In); break; default: /* Do nothing */ break; } traline1=TLine; IntSurf_Transition TArc; switch (tra1.TransitionType()) { case IntSurf_In: TArc.SetValue(Standard_False,IntSurf_Out); break; case IntSurf_Out: TArc.SetValue(Standard_False,IntSurf_In); break; default: /* Do nothing */ break; } tra1=TArc; } if(onS2) { IntSurf_Transition TLine; switch (traline2.TransitionType()) { case IntSurf_In: TLine.SetValue(Standard_False,IntSurf_Out); break; case IntSurf_Out: TLine.SetValue(Standard_False,IntSurf_In); break; default: /* Do nothing */ break; } traline2=TLine; IntSurf_Transition TArc; switch (tra2.TransitionType()) { case IntSurf_In: TArc.SetValue(Standard_False,IntSurf_Out); break; case IntSurf_Out: TArc.SetValue(Standard_False,IntSurf_In); break; default: /* Do nothing */ break; } tra2=TArc; } } #include #include #include static void DumpTransition(const IntSurf_Transition& T) { IntSurf_TypeTrans typetrans = T.TransitionType(); if(typetrans == IntSurf_In) cout<<" In "; else if(typetrans == IntSurf_Out) cout<<" Out "; else if(typetrans == IntSurf_Undecided) cout<<" Und."; else if(typetrans == IntSurf_Touch) { cout<<" Touch "; if(T.Situation() == IntSurf_Inside) cout<<" Inside "; else if(T.Situation() == IntSurf_Outside) cout<<" Outside"; else cout<<" Unknown"; if(T.IsOpposite()) cout<<" Opposite "; else cout<<" Non_Opposite "; } if(typetrans != IntSurf_Undecided) { if(T.IsTangent()) cout<<" Tangent "; else cout<<" Non_Tangent"; } } #include void IntPatch_Point::Dump() const { cout<<"----------- IntPatch_Point : "<