#include <GeomAdaptor_HCurve.hxx>
#include <BRepAdaptor_HSurface.hxx>
+#include <TopOpeBRepDS_SurfaceCurveInterference.hxx>
//=======================================================================
//function : ChFi3d_InPeriod
bs.Update(umin,vmin,umax,vmax);
Standard_Boolean aIN = Standard_True;
for(Standard_Integer ii = 1; ii <= 4 && aIN; ii++) {
- if(bs.IsOut((*((Handle(Geom2d_BezierCurve)*) &Pcurv))->Pole(ii))) {
+ if(bs.IsOut(Handle(Geom2d_BezierCurve)::DownCast (Pcurv)->Pole(ii))) {
aIN = Standard_False;
TColgp_Array1OfPnt2d qoles(1,2);
qoles(1)=UV1;
TopOpeBRepDS_ListIteratorOfListOfInterference it(LI);
for (; it.More(); it.Next() ) {
const Handle(TopOpeBRepDS_Interference)& cur = it.Value();
- const Handle(TopOpeBRepDS_CurvePointInterference)& cpi =
- Handle(TopOpeBRepDS_CurvePointInterference)::DownCast(cur);
+ Handle(TopOpeBRepDS_CurvePointInterference) cpi (Handle(TopOpeBRepDS_CurvePointInterference)::DownCast(cur));
if(!cpi.IsNull()) {
Standard_Integer newIV = cpi->Geometry();
TopOpeBRepDS_Kind kv = cpi->GeometryType();
const BRepAdaptor_Curve& edc = Spine->CurrentElementarySpine(IF);
tolpared = edc.Resolution(tol);
Cv = BRep_Tool::Curve(E, First, Last);
+ //Add vertex with tangent
+ if (ES.IsPeriodic())
+ {
+ Standard_Real ParForElSpine = (E.Orientation() == TopAbs_FORWARD)? First : Last;
+ gp_Pnt PntForElSpine;
+ gp_Vec DirForElSpine;
+ Cv->D1(ParForElSpine, PntForElSpine, DirForElSpine);
+ ES.AddVertexWithTangent(gp_Ax1(PntForElSpine, DirForElSpine));
+ }
+ /////////////////////////
urefdeb = Spine->FirstParameter(IF);
checkdeb = (nwf > urefdeb);
if(checkdeb) {
}
//
Cv = BRep_Tool::Curve(E, First, Last);
+ //Add vertex with tangent
+ Standard_Real ParForElSpine = (E.Orientation() == TopAbs_FORWARD)? First : Last;
+ gp_Pnt PntForElSpine;
+ gp_Vec DirForElSpine;
+ Cv->D1(ParForElSpine, PntForElSpine, DirForElSpine);
+ ES.AddVertexWithTangent(gp_Ax1(PntForElSpine, DirForElSpine));
+ /////////////////////////
if(IEdge == IL) {
Standard_Real ureffin = Spine->LastParameter(iloc);
Standard_Boolean checkfin = (nwl < ureffin);