2 #include <gp_Vec2d.hxx>
6 IntImpParGen_ImpParTool::IntImpParGen_ImpParTool(const ImpTool& ITool,
10 TheParCurve = (Standard_Address)(&PC);
14 Standard_Boolean IntImpParGen_ImpParTool::Value(const Standard_Real Param,
15 Standard_Real& ApproxDistance) {
17 ApproxDistance = TheImpTool.Distance(ParTool::Value((*((ParCurve *)(TheParCurve))),Param));
18 return(Standard_True);
21 Standard_Boolean IntImpParGen_ImpParTool::Derivative(const Standard_Real Param,
22 Standard_Real& D_ApproxDistance_DV) {
26 gp_Vec2d Grad=TheImpTool.GradDistance(ParTool::Value((*((ParCurve *)(TheParCurve))),Param));
27 ParTool::D1((*((ParCurve *)(TheParCurve))),Param,Pt,TanParCurve);
28 D_ApproxDistance_DV = Grad.Dot(TanParCurve);
29 return(Standard_True);
33 Standard_Boolean IntImpParGen_ImpParTool::Values(const Standard_Real Param,
34 Standard_Real& ApproxDistance,
35 Standard_Real& Deriv) {
37 this->Value(Param,ApproxDistance);
38 this->Derivative(Param,Deriv);
39 return(Standard_True);