mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl": - WOK-generated header files from inc and sources from drv are moved to src - CDL files removed - All packages are converted to nocdlpack
This commit is contained in:
@@ -1,137 +0,0 @@
|
||||
-- Created on: 1993-12-06
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
-- jlr le 28-07-97 F(t) in Edge/Face
|
||||
|
||||
|
||||
|
||||
package BRepBlend
|
||||
|
||||
uses Blend, BlendFunc, AppBlend, Approx, Adaptor3d,Adaptor2d,
|
||||
Law, gp, TopAbs, IntSurf, Convert,
|
||||
TCollection,TColStd,TColgp,GeomAbs,Geom,Geom2d,
|
||||
AdvApprox, StdFail, math
|
||||
|
||||
is
|
||||
|
||||
class PointOnRst;
|
||||
class Extremity;
|
||||
class Line;
|
||||
|
||||
class HCurveTool;
|
||||
class HCurve2dTool;
|
||||
|
||||
class BlendTool;
|
||||
|
||||
alias ConstRad is ConstRad from BlendFunc;
|
||||
|
||||
alias ConstRadInv is ConstRadInv from BlendFunc;
|
||||
|
||||
alias Ruled is Ruled from BlendFunc;
|
||||
|
||||
alias RuledInv is RuledInv from BlendFunc;
|
||||
|
||||
alias EvolRad is EvolRad from BlendFunc;
|
||||
|
||||
alias EvolRadInv is EvolRadInv from BlendFunc;
|
||||
|
||||
alias CSConstRad is CSConstRad from BlendFunc;
|
||||
|
||||
alias CSCircular is CSCircular from BlendFunc;
|
||||
|
||||
alias Chamfer is Chamfer from BlendFunc;
|
||||
|
||||
alias ChamfInv is ChamfInv from BlendFunc;
|
||||
|
||||
alias ChAsym is ChAsym from BlendFunc;
|
||||
|
||||
alias ChAsymInv is ChAsymInv from BlendFunc;
|
||||
|
||||
imported SequenceOfPointOnRst;
|
||||
|
||||
class Walking instantiates Walking from Blend
|
||||
(HVertex from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
Integer from Standard,
|
||||
HCurve2dTool from BRepBlend,
|
||||
HSurfaceTool from Adaptor3d,
|
||||
HCurveTool from BRepBlend,
|
||||
TopolTool from Adaptor3d,
|
||||
BlendTool from BRepBlend,
|
||||
PointOnRst from BRepBlend,
|
||||
SequenceOfPointOnRst from BRepBlend,
|
||||
Extremity from BRepBlend,
|
||||
Line from BRepBlend);
|
||||
|
||||
class CSWalking instantiates CSWalking from Blend
|
||||
(HVertex from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
Integer from Standard,
|
||||
HCurve2dTool from BRepBlend,
|
||||
HSurfaceTool from Adaptor3d,
|
||||
HCurveTool from BRepBlend,
|
||||
TopolTool from Adaptor3d,
|
||||
BlendTool from BRepBlend,
|
||||
PointOnRst from BRepBlend,
|
||||
SequenceOfPointOnRst from BRepBlend,
|
||||
Extremity from BRepBlend,
|
||||
Line from BRepBlend);
|
||||
|
||||
class AppSurf instantiates AppSurf from AppBlend
|
||||
(AppFunction from Blend,
|
||||
Line from BRepBlend);
|
||||
|
||||
|
||||
imported SequenceOfLine;
|
||||
|
||||
|
||||
class AppSurface;
|
||||
|
||||
deferred class AppFuncRoot;
|
||||
|
||||
class AppFunc;
|
||||
|
||||
class AppFuncRst;
|
||||
|
||||
class AppFuncRstRst;
|
||||
|
||||
class SurfRstEvolRad;
|
||||
|
||||
class SurfRstConstRad;
|
||||
|
||||
class RstRstEvolRad;
|
||||
|
||||
class RstRstConstRad;
|
||||
|
||||
class SurfPointConstRadInv;
|
||||
|
||||
class SurfCurvConstRadInv;
|
||||
|
||||
class SurfPointEvolRadInv;
|
||||
|
||||
class CurvPointRadInv;
|
||||
|
||||
class SurfCurvEvolRadInv;
|
||||
|
||||
class SurfRstLineBuilder;
|
||||
|
||||
class RstRstLineBuilder;
|
||||
|
||||
end BRepBlend;
|
@@ -1,50 +0,0 @@
|
||||
-- Created on: 1996-11-25
|
||||
-- Created by: Philippe MANGIN
|
||||
-- Copyright (c) 1996-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class AppFunc from BRepBlend inherits AppFuncRoot from BRepBlend
|
||||
|
||||
---Purpose: Function to approximate by AppSurface
|
||||
-- for Surface/Surface contact.
|
||||
---Level: Advanced
|
||||
|
||||
uses
|
||||
Line from BRepBlend,
|
||||
Point from Blend,
|
||||
AppFunction from Blend,
|
||||
Function from Blend,
|
||||
Vector from math
|
||||
|
||||
raises OutOfRange
|
||||
|
||||
is
|
||||
Create(Line : in out Line from BRepBlend;
|
||||
Func : in out Function from Blend;
|
||||
Tol3d: Real;
|
||||
Tol2d: Real)
|
||||
---Warning: The Object Func cannot be killed before me.
|
||||
returns AppFunc;
|
||||
|
||||
Point(me;
|
||||
Func : AppFunction from Blend;
|
||||
Param : Real;
|
||||
Sol : Vector from math;
|
||||
Pnt : in out Point from Blend);
|
||||
|
||||
Vec(me;
|
||||
Sol : in out Vector from math;
|
||||
Pnt : Point from Blend);
|
||||
|
||||
end AppFunc;
|
@@ -14,7 +14,14 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_AppFunc.ixx>
|
||||
|
||||
#include <Blend_AppFunction.hxx>
|
||||
#include <Blend_Function.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <BRepBlend_AppFunc.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
BRepBlend_AppFunc::BRepBlend_AppFunc(Handle(BRepBlend_Line)& Line,
|
||||
Blend_Function& Func,
|
||||
|
73
src/BRepBlend/BRepBlend_AppFunc.hxx
Normal file
73
src/BRepBlend/BRepBlend_AppFunc.hxx
Normal file
@@ -0,0 +1,73 @@
|
||||
// Created on: 1996-11-25
|
||||
// Created by: Philippe MANGIN
|
||||
// Copyright (c) 1996-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_AppFunc_HeaderFile
|
||||
#define _BRepBlend_AppFunc_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <BRepBlend_AppFuncRoot.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class BRepBlend_Line;
|
||||
class Blend_Function;
|
||||
class Blend_AppFunction;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
class BRepBlend_AppFunc;
|
||||
DEFINE_STANDARD_HANDLE(BRepBlend_AppFunc, BRepBlend_AppFuncRoot)
|
||||
|
||||
//! Function to approximate by AppSurface
|
||||
//! for Surface/Surface contact.
|
||||
class BRepBlend_AppFunc : public BRepBlend_AppFuncRoot
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_AppFunc(Handle(BRepBlend_Line)& Line, Blend_Function& Func, const Standard_Real Tol3d, const Standard_Real Tol2d);
|
||||
|
||||
Standard_EXPORT void Point (const Blend_AppFunction& Func, const Standard_Real Param, const math_Vector& Sol, Blend_Point& Pnt) const;
|
||||
|
||||
Standard_EXPORT void Vec (math_Vector& Sol, const Blend_Point& Pnt) const;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTI(BRepBlend_AppFunc,BRepBlend_AppFuncRoot)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_AppFunc_HeaderFile
|
@@ -1,260 +0,0 @@
|
||||
-- Created on: 1998-05-12
|
||||
-- Created by: Philippe NOUAILLE
|
||||
-- Copyright (c) 1998-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
deferred class AppFuncRoot from BRepBlend inherits SweepFunction from Approx
|
||||
|
||||
---Purpose: Function to approximate by AppSurface
|
||||
---Level: Advanced
|
||||
|
||||
uses
|
||||
Line from BRepBlend,
|
||||
Point from Blend,
|
||||
AppFunction from Blend,
|
||||
Shape from GeomAbs,
|
||||
Vector from math,
|
||||
Pnt from gp,
|
||||
Array1OfPnt from TColgp,
|
||||
Array1OfPnt2d from TColgp,
|
||||
Array1OfVec from TColgp,
|
||||
Array1OfVec2d from TColgp,
|
||||
Array1OfReal from TColStd,
|
||||
Array1OfInteger from TColStd,
|
||||
HArray1OfPnt from TColgp,
|
||||
HArray1OfPnt2d from TColgp,
|
||||
HArray1OfVec from TColgp,
|
||||
HArray1OfVec2d from TColgp,
|
||||
HArray1OfReal from TColStd
|
||||
|
||||
|
||||
raises OutOfRange
|
||||
|
||||
is
|
||||
Initialize(Line : in out Line from BRepBlend;
|
||||
Func : in out AppFunction from Blend;
|
||||
Tol3d : Real from Standard;
|
||||
Tol2d : Real from Standard)
|
||||
---Warning: The Object Func cannot be killed before me.
|
||||
returns AppFuncRoot;
|
||||
|
||||
--
|
||||
-- To compute Sections and derivatives Sections
|
||||
--
|
||||
--
|
||||
|
||||
D0(me : mutable;
|
||||
Param: Real;
|
||||
First, Last : Real;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: compute the section for v = param
|
||||
returns Boolean is redefined;
|
||||
|
||||
D1(me : mutable;
|
||||
Param: Real;
|
||||
First, Last : Real;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd)
|
||||
---Purpose: compute the first derivative in v direction of the
|
||||
-- section for v = param
|
||||
returns Boolean
|
||||
is redefined;
|
||||
|
||||
D2(me : mutable;
|
||||
Param: Real;
|
||||
First, Last : Real;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
D2Poles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
D2Poles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd;
|
||||
D2Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: compute the second derivative in v direction of the
|
||||
-- section for v = param
|
||||
returns Boolean
|
||||
is redefined;
|
||||
|
||||
--
|
||||
-- General Information On The Function
|
||||
--
|
||||
|
||||
Nb2dCurves(me)
|
||||
---Purpose: get the number of 2d curves to approximate.
|
||||
returns Integer
|
||||
is redefined;
|
||||
|
||||
SectionShape(me; NbPoles : out Integer from Standard;
|
||||
NbKnots : out Integer from Standard;
|
||||
Degree : out Integer from Standard)
|
||||
---Purpose: get the format of an section
|
||||
is redefined;
|
||||
|
||||
Knots(me; TKnots: out Array1OfReal from TColStd)
|
||||
---Purpose: get the Knots of the section
|
||||
is redefined;
|
||||
|
||||
|
||||
Mults(me; TMults: out Array1OfInteger from TColStd)
|
||||
---Purpose: get the Multplicities of the section
|
||||
is redefined;
|
||||
|
||||
|
||||
IsRational(me)
|
||||
---Purpose: Returns if the section is rationnal or not
|
||||
returns Boolean
|
||||
is redefined;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Mangement of continuity
|
||||
--
|
||||
|
||||
NbIntervals(me; S : Shape from GeomAbs)
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(me) >= <S>
|
||||
returns Integer
|
||||
is redefined;
|
||||
|
||||
Intervals(me; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
--
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
raises
|
||||
OutOfRange from Standard
|
||||
is redefined;
|
||||
|
||||
|
||||
SetInterval(me: mutable; First, Last: Real from Standard)
|
||||
---Purpose: Sets the bounds of the parametric interval on
|
||||
-- the fonction
|
||||
-- This determines the derivatives in these values if the
|
||||
-- function is not Cn.
|
||||
is redefined;
|
||||
|
||||
|
||||
--
|
||||
-- To help computation of Tolerance
|
||||
--
|
||||
-- Evaluation of error, in 2d space, or on rational function, is
|
||||
-- dificult. The folowing methodes can help
|
||||
--
|
||||
--
|
||||
|
||||
|
||||
Resolution(me;
|
||||
Index : Integer from Standard;
|
||||
Tol : Real from Standard;
|
||||
TolU, TolV : out Real from Standard)
|
||||
---Purpose: Returns the resolutions in the sub-space 2d <Index> --
|
||||
-- This information is usfull to find an good tolerance in
|
||||
-- 2d approximation
|
||||
|
||||
---Warning: Used only if Nb2dCurve > 0
|
||||
is redefined;
|
||||
|
||||
|
||||
GetTolerance(me;
|
||||
BoundTol, SurfTol, AngleTol : Real;
|
||||
Tol3d : out Array1OfReal)
|
||||
---Purpose: Returns the tolerance to reach in approximation
|
||||
-- to respecte
|
||||
-- BoundTol error at the Boundary
|
||||
-- AngleTol tangent error at the Boundary (in radian)
|
||||
-- SurfTol error inside the surface.
|
||||
is redefined;
|
||||
|
||||
SetTolerance(me : mutable; Tol3d, Tol2d : Real)
|
||||
---Purpose: Is usfull, if (me) have to be run numerical
|
||||
-- algorithme to perform D0, D1 or D2
|
||||
is redefined;
|
||||
|
||||
BarycentreOfSurf(me)
|
||||
---Purpose: Get the barycentre of Surface. An very poor
|
||||
-- estimation is sufficent. This information is usefull
|
||||
-- to perform well conditionned rational approximation.
|
||||
|
||||
---Warning: Used only if <me> IsRational
|
||||
returns Pnt from gp
|
||||
is redefined;
|
||||
|
||||
|
||||
MaximalSection(me) returns Real
|
||||
---Purpose: Returns the length of the maximum section. This
|
||||
-- information is usefull to perform well conditionned rational
|
||||
-- approximation.
|
||||
|
||||
---Warning: Used only if <me> IsRational
|
||||
is redefined;
|
||||
|
||||
GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Compute the minimal value of weight for each poles
|
||||
-- of all sections. This information is usefull to
|
||||
-- perform well conditionned rational approximation.
|
||||
|
||||
---Warning: Used only if <me> IsRational
|
||||
is redefined;
|
||||
|
||||
-- Private methods
|
||||
|
||||
SearchPoint(me:mutable;
|
||||
Func : in out AppFunction from Blend;
|
||||
Param : Real;
|
||||
Pnt : in out Point from Blend)
|
||||
returns Boolean
|
||||
is private;
|
||||
|
||||
SearchLocation(me;
|
||||
Param : Real;
|
||||
FirstIndex, LastIndex : Integer;
|
||||
ParamIndex : in out Integer)
|
||||
returns Boolean
|
||||
raises OutOfRange
|
||||
is private;
|
||||
|
||||
Point(me;
|
||||
Func : AppFunction from Blend;
|
||||
Param : Real;
|
||||
Sol : Vector from math;
|
||||
Pnt : in out Point from Blend)
|
||||
is deferred;
|
||||
|
||||
Vec(me;
|
||||
Sol : in out Vector from math;
|
||||
Pnt : Point from Blend)
|
||||
is deferred;
|
||||
|
||||
fields
|
||||
|
||||
myLine : Line from BRepBlend;
|
||||
myFunc : Address;
|
||||
myTolerance : Vector;
|
||||
myPnt : Point from Blend;
|
||||
myBary : Pnt from gp;
|
||||
|
||||
X1, X2, XInit, Sol : Vector from math;
|
||||
|
||||
end AppFuncRoot;
|
@@ -14,21 +14,21 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_AppFuncRoot.ixx>
|
||||
|
||||
#include <Blend_AppFunction.hxx>
|
||||
|
||||
#include <Blend_Point.hxx>
|
||||
#include <BRepBlend_AppFuncRoot.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <TColgp_HArray1OfPnt.hxx>
|
||||
#include <TColgp_HArray1OfPnt2d.hxx>
|
||||
#include <TColgp_HArray1OfVec.hxx>
|
||||
#include <TColgp_HArray1OfVec2d.hxx>
|
||||
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
|
||||
BRepBlend_AppFuncRoot::BRepBlend_AppFuncRoot(Handle(BRepBlend_Line)& Line,
|
||||
Blend_AppFunction& Func,
|
||||
|
171
src/BRepBlend/BRepBlend_AppFuncRoot.hxx
Normal file
171
src/BRepBlend/BRepBlend_AppFuncRoot.hxx
Normal file
@@ -0,0 +1,171 @@
|
||||
// Created on: 1998-05-12
|
||||
// Created by: Philippe NOUAILLE
|
||||
// Copyright (c) 1998-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_AppFuncRoot_HeaderFile
|
||||
#define _BRepBlend_AppFuncRoot_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Approx_SweepFunction.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
class BRepBlend_Line;
|
||||
class Standard_OutOfRange;
|
||||
class Blend_AppFunction;
|
||||
class gp_Pnt;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
class BRepBlend_AppFuncRoot;
|
||||
DEFINE_STANDARD_HANDLE(BRepBlend_AppFuncRoot, Approx_SweepFunction)
|
||||
|
||||
//! Function to approximate by AppSurface
|
||||
class BRepBlend_AppFuncRoot : public Approx_SweepFunction
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
//! compute the section for v = param
|
||||
Standard_EXPORT virtual Standard_Boolean D0 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths) Standard_OVERRIDE;
|
||||
|
||||
//! compute the first derivative in v direction of the
|
||||
//! section for v = param
|
||||
Standard_EXPORT virtual Standard_Boolean D1 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths) Standard_OVERRIDE;
|
||||
|
||||
//! compute the second derivative in v direction of the
|
||||
//! section for v = param
|
||||
Standard_EXPORT virtual Standard_Boolean D2 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfVec& D2Poles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColgp_Array1OfVec2d& D2Poles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths, TColStd_Array1OfReal& D2Weigths) Standard_OVERRIDE;
|
||||
|
||||
//! get the number of 2d curves to approximate.
|
||||
Standard_EXPORT virtual Standard_Integer Nb2dCurves() const Standard_OVERRIDE;
|
||||
|
||||
//! get the format of an section
|
||||
Standard_EXPORT virtual void SectionShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree) const Standard_OVERRIDE;
|
||||
|
||||
//! get the Knots of the section
|
||||
Standard_EXPORT virtual void Knots (TColStd_Array1OfReal& TKnots) const Standard_OVERRIDE;
|
||||
|
||||
//! get the Multplicities of the section
|
||||
Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const Standard_OVERRIDE;
|
||||
|
||||
//! Returns if the section is rationnal or not
|
||||
Standard_EXPORT virtual Standard_Boolean IsRational() const Standard_OVERRIDE;
|
||||
|
||||
//! Returns the number of intervals for continuity
|
||||
//! <S>. May be one if Continuity(me) >= <S>
|
||||
Standard_EXPORT virtual Standard_Integer NbIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE;
|
||||
|
||||
//! Stores in <T> the parameters bounding the intervals
|
||||
//! of continuity <S>.
|
||||
//!
|
||||
//! The array must provide enough room to accomodate
|
||||
//! for the parameters. i.e. T.Length() > NbIntervals()
|
||||
Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE;
|
||||
|
||||
//! Sets the bounds of the parametric interval on
|
||||
//! the fonction
|
||||
//! This determines the derivatives in these values if the
|
||||
//! function is not Cn.
|
||||
Standard_EXPORT virtual void SetInterval (const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE;
|
||||
|
||||
//! Returns the resolutions in the sub-space 2d <Index> --
|
||||
//! This information is usfull to find an good tolerance in
|
||||
//! 2d approximation
|
||||
Standard_EXPORT virtual void Resolution (const Standard_Integer Index, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const Standard_OVERRIDE;
|
||||
|
||||
//! Returns the tolerance to reach in approximation
|
||||
//! to respecte
|
||||
//! BoundTol error at the Boundary
|
||||
//! AngleTol tangent error at the Boundary (in radian)
|
||||
//! SurfTol error inside the surface.
|
||||
Standard_EXPORT virtual void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, TColStd_Array1OfReal& Tol3d) const Standard_OVERRIDE;
|
||||
|
||||
//! Is usfull, if (me) have to be run numerical
|
||||
//! algorithme to perform D0, D1 or D2
|
||||
Standard_EXPORT virtual void SetTolerance (const Standard_Real Tol3d, const Standard_Real Tol2d) Standard_OVERRIDE;
|
||||
|
||||
//! Get the barycentre of Surface. An very poor
|
||||
//! estimation is sufficent. This information is usefull
|
||||
//! to perform well conditionned rational approximation.
|
||||
Standard_EXPORT virtual gp_Pnt BarycentreOfSurf() const Standard_OVERRIDE;
|
||||
|
||||
//! Returns the length of the maximum section. This
|
||||
//! information is usefull to perform well conditionned rational
|
||||
//! approximation.
|
||||
Standard_EXPORT virtual Standard_Real MaximalSection() const Standard_OVERRIDE;
|
||||
|
||||
//! Compute the minimal value of weight for each poles
|
||||
//! of all sections. This information is usefull to
|
||||
//! perform well conditionned rational approximation.
|
||||
Standard_EXPORT virtual void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual void Point (const Blend_AppFunction& Func, const Standard_Real Param, const math_Vector& Sol, Blend_Point& Pnt) const = 0;
|
||||
|
||||
Standard_EXPORT virtual void Vec (math_Vector& Sol, const Blend_Point& Pnt) const = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTI(BRepBlend_AppFuncRoot,Approx_SweepFunction)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_AppFuncRoot(Handle(BRepBlend_Line)& Line, Blend_AppFunction& Func, const Standard_Real Tol3d, const Standard_Real Tol2d);
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean SearchPoint (Blend_AppFunction& Func, const Standard_Real Param, Blend_Point& Pnt);
|
||||
|
||||
Standard_EXPORT Standard_Boolean SearchLocation (const Standard_Real Param, const Standard_Integer FirstIndex, const Standard_Integer LastIndex, Standard_Integer& ParamIndex) const;
|
||||
|
||||
Handle(BRepBlend_Line) myLine;
|
||||
Standard_Address myFunc;
|
||||
math_Vector myTolerance;
|
||||
Blend_Point myPnt;
|
||||
gp_Pnt myBary;
|
||||
math_Vector X1;
|
||||
math_Vector X2;
|
||||
math_Vector XInit;
|
||||
math_Vector Sol;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_AppFuncRoot_HeaderFile
|
@@ -1,49 +0,0 @@
|
||||
-- Created on: 1997-07-25
|
||||
-- Created by: Jerome LEMONIER
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class AppFuncRst from BRepBlend inherits AppFuncRoot from BRepBlend
|
||||
---Purpose: Function to approximate by AppSurface for Curve/Surface contact.
|
||||
---Level: Advanced
|
||||
|
||||
uses
|
||||
Line from BRepBlend,
|
||||
Point from Blend,
|
||||
SurfRstFunction from Blend,
|
||||
AppFunction from Blend,
|
||||
Vector from math
|
||||
|
||||
|
||||
raises OutOfRange from Standard
|
||||
|
||||
is
|
||||
|
||||
Create(Line : in out Line from BRepBlend;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
Tol3d: Real;
|
||||
Tol2d: Real)
|
||||
returns AppFuncRst from BRepBlend;
|
||||
|
||||
Point(me;
|
||||
Func : AppFunction from Blend;
|
||||
Param : Real;
|
||||
Sol : Vector from math;
|
||||
Pnt : in out Point from Blend);
|
||||
|
||||
Vec(me;
|
||||
Sol : in out Vector from math;
|
||||
Pnt : Point from Blend);
|
||||
|
||||
end AppFuncRst;
|
@@ -14,7 +14,14 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_AppFuncRst.ixx>
|
||||
|
||||
#include <Blend_AppFunction.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Blend_SurfRstFunction.hxx>
|
||||
#include <BRepBlend_AppFuncRst.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
BRepBlend_AppFuncRst::BRepBlend_AppFuncRst (Handle(BRepBlend_Line)& Line,
|
||||
Blend_SurfRstFunction& Func,
|
||||
|
72
src/BRepBlend/BRepBlend_AppFuncRst.hxx
Normal file
72
src/BRepBlend/BRepBlend_AppFuncRst.hxx
Normal file
@@ -0,0 +1,72 @@
|
||||
// Created on: 1997-07-25
|
||||
// Created by: Jerome LEMONIER
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_AppFuncRst_HeaderFile
|
||||
#define _BRepBlend_AppFuncRst_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <BRepBlend_AppFuncRoot.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class BRepBlend_Line;
|
||||
class Blend_SurfRstFunction;
|
||||
class Blend_AppFunction;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
class BRepBlend_AppFuncRst;
|
||||
DEFINE_STANDARD_HANDLE(BRepBlend_AppFuncRst, BRepBlend_AppFuncRoot)
|
||||
|
||||
//! Function to approximate by AppSurface for Curve/Surface contact.
|
||||
class BRepBlend_AppFuncRst : public BRepBlend_AppFuncRoot
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_AppFuncRst(Handle(BRepBlend_Line)& Line, Blend_SurfRstFunction& Func, const Standard_Real Tol3d, const Standard_Real Tol2d);
|
||||
|
||||
Standard_EXPORT void Point (const Blend_AppFunction& Func, const Standard_Real Param, const math_Vector& Sol, Blend_Point& Pnt) const;
|
||||
|
||||
Standard_EXPORT void Vec (math_Vector& Sol, const Blend_Point& Pnt) const;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTI(BRepBlend_AppFuncRst,BRepBlend_AppFuncRoot)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_AppFuncRst_HeaderFile
|
@@ -1,49 +0,0 @@
|
||||
-- Created on: 1998-05-12
|
||||
-- Created by: Philippe NOUAILLE
|
||||
-- Copyright (c) 1998-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class AppFuncRstRst from BRepBlend inherits AppFuncRoot from BRepBlend
|
||||
---Purpose: Function to approximate by AppSurface for Edge/Face (Curve/Curve contact).
|
||||
---Level: Advanced
|
||||
|
||||
uses
|
||||
Line from BRepBlend,
|
||||
Point from Blend,
|
||||
AppFunction from Blend,
|
||||
RstRstFunction from Blend,
|
||||
Vector from math
|
||||
|
||||
|
||||
raises OutOfRange from Standard
|
||||
|
||||
is
|
||||
|
||||
Create(Line : in out Line from BRepBlend;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
Tol3d: Real;
|
||||
Tol2d: Real)
|
||||
returns AppFuncRstRst from BRepBlend;
|
||||
|
||||
Point(me;
|
||||
Func : AppFunction from Blend;
|
||||
Param : Real;
|
||||
Sol : Vector from math;
|
||||
Pnt : in out Point from Blend);
|
||||
|
||||
Vec(me;
|
||||
Sol : in out Vector from math;
|
||||
Pnt : Point from Blend);
|
||||
|
||||
end AppFuncRstRst;
|
@@ -14,7 +14,14 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_AppFuncRstRst.ixx>
|
||||
|
||||
#include <Blend_AppFunction.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Blend_RstRstFunction.hxx>
|
||||
#include <BRepBlend_AppFuncRstRst.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
BRepBlend_AppFuncRstRst::BRepBlend_AppFuncRstRst (Handle(BRepBlend_Line)& Line,
|
||||
Blend_RstRstFunction& Func,
|
||||
|
72
src/BRepBlend/BRepBlend_AppFuncRstRst.hxx
Normal file
72
src/BRepBlend/BRepBlend_AppFuncRstRst.hxx
Normal file
@@ -0,0 +1,72 @@
|
||||
// Created on: 1998-05-12
|
||||
// Created by: Philippe NOUAILLE
|
||||
// Copyright (c) 1998-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_AppFuncRstRst_HeaderFile
|
||||
#define _BRepBlend_AppFuncRstRst_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <BRepBlend_AppFuncRoot.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class BRepBlend_Line;
|
||||
class Blend_RstRstFunction;
|
||||
class Blend_AppFunction;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
class BRepBlend_AppFuncRstRst;
|
||||
DEFINE_STANDARD_HANDLE(BRepBlend_AppFuncRstRst, BRepBlend_AppFuncRoot)
|
||||
|
||||
//! Function to approximate by AppSurface for Edge/Face (Curve/Curve contact).
|
||||
class BRepBlend_AppFuncRstRst : public BRepBlend_AppFuncRoot
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_AppFuncRstRst(Handle(BRepBlend_Line)& Line, Blend_RstRstFunction& Func, const Standard_Real Tol3d, const Standard_Real Tol2d);
|
||||
|
||||
Standard_EXPORT void Point (const Blend_AppFunction& Func, const Standard_Real Param, const math_Vector& Sol, Blend_Point& Pnt) const;
|
||||
|
||||
Standard_EXPORT void Vec (math_Vector& Sol, const Blend_Point& Pnt) const;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTI(BRepBlend_AppFuncRstRst,BRepBlend_AppFuncRoot)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_AppFuncRstRst_HeaderFile
|
180
src/BRepBlend/BRepBlend_AppSurf.hxx
Normal file
180
src/BRepBlend/BRepBlend_AppSurf.hxx
Normal file
@@ -0,0 +1,180 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_AppSurf_HeaderFile
|
||||
#define _BRepBlend_AppSurf_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TColgp_HArray2OfPnt.hxx>
|
||||
#include <TColStd_HArray2OfReal.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#include <TColgp_SequenceOfArray1OfPnt2d.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <AppBlend_Approx.hxx>
|
||||
#include <TColgp_Array2OfPnt.hxx>
|
||||
#include <TColStd_Array2OfReal.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_DomainError;
|
||||
class Standard_OutOfRange;
|
||||
class Blend_AppFunction;
|
||||
class BRepBlend_Line;
|
||||
|
||||
|
||||
|
||||
class BRepBlend_AppSurf : public AppBlend_Approx
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_AppSurf();
|
||||
|
||||
Standard_EXPORT BRepBlend_AppSurf(const Standard_Integer Degmin, const Standard_Integer Degmax, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIt, const Standard_Boolean KnownParameters = Standard_False);
|
||||
|
||||
Standard_EXPORT void Init (const Standard_Integer Degmin, const Standard_Integer Degmax, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIt, const Standard_Boolean KnownParameters = Standard_False);
|
||||
|
||||
Standard_EXPORT void SetParType (const Approx_ParametrizationType ParType);
|
||||
|
||||
Standard_EXPORT void SetContinuity (const GeomAbs_Shape C);
|
||||
|
||||
Standard_EXPORT void SetCriteriumWeight (const Standard_Real W1, const Standard_Real W2, const Standard_Real W3);
|
||||
|
||||
Standard_EXPORT Approx_ParametrizationType ParType() const;
|
||||
|
||||
Standard_EXPORT GeomAbs_Shape Continuity() const;
|
||||
|
||||
Standard_EXPORT void CriteriumWeight (Standard_Real& W1, Standard_Real& W2, Standard_Real& W3) const;
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen, const Standard_Boolean SpApprox = Standard_False);
|
||||
|
||||
Standard_EXPORT void PerformSmoothing (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen);
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen, const Standard_Integer NbMaxP);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT void SurfShape (Standard_Integer& UDegree, Standard_Integer& VDegree, Standard_Integer& NbUPoles, Standard_Integer& NbVPoles, Standard_Integer& NbUKnots, Standard_Integer& NbVKnots) const;
|
||||
|
||||
Standard_EXPORT void Surface (TColgp_Array2OfPnt& TPoles, TColStd_Array2OfReal& TWeights, TColStd_Array1OfReal& TUKnots, TColStd_Array1OfReal& TVKnots, TColStd_Array1OfInteger& TUMults, TColStd_Array1OfInteger& TVMults) const;
|
||||
|
||||
Standard_Integer UDegree() const;
|
||||
|
||||
Standard_Integer VDegree() const;
|
||||
|
||||
const TColgp_Array2OfPnt& SurfPoles() const;
|
||||
|
||||
const TColStd_Array2OfReal& SurfWeights() const;
|
||||
|
||||
const TColStd_Array1OfReal& SurfUKnots() const;
|
||||
|
||||
const TColStd_Array1OfReal& SurfVKnots() const;
|
||||
|
||||
const TColStd_Array1OfInteger& SurfUMults() const;
|
||||
|
||||
const TColStd_Array1OfInteger& SurfVMults() const;
|
||||
|
||||
Standard_Integer NbCurves2d() const;
|
||||
|
||||
Standard_EXPORT void Curves2dShape (Standard_Integer& Degree, Standard_Integer& NbPoles, Standard_Integer& NbKnots) const;
|
||||
|
||||
Standard_EXPORT void Curve2d (const Standard_Integer Index, TColgp_Array1OfPnt2d& TPoles, TColStd_Array1OfReal& TKnots, TColStd_Array1OfInteger& TMults) const;
|
||||
|
||||
Standard_Integer Curves2dDegree() const;
|
||||
|
||||
const TColgp_Array1OfPnt2d& Curve2dPoles (const Standard_Integer Index) const;
|
||||
|
||||
const TColStd_Array1OfReal& Curves2dKnots() const;
|
||||
|
||||
const TColStd_Array1OfInteger& Curves2dMults() const;
|
||||
|
||||
void TolReached (Standard_Real& Tol3d, Standard_Real& Tol2d) const;
|
||||
|
||||
Standard_EXPORT Standard_Real TolCurveOnSurf (const Standard_Integer Index) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void InternalPerform (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen, const Standard_Boolean SpApprox, const Standard_Boolean UseVariational);
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Standard_Integer dmin;
|
||||
Standard_Integer dmax;
|
||||
Standard_Real tol3d;
|
||||
Standard_Real tol2d;
|
||||
Standard_Integer nbit;
|
||||
Standard_Integer udeg;
|
||||
Standard_Integer vdeg;
|
||||
Standard_Boolean knownp;
|
||||
Handle(TColgp_HArray2OfPnt) tabPoles;
|
||||
Handle(TColStd_HArray2OfReal) tabWeights;
|
||||
Handle(TColStd_HArray1OfReal) tabUKnots;
|
||||
Handle(TColStd_HArray1OfReal) tabVKnots;
|
||||
Handle(TColStd_HArray1OfInteger) tabUMults;
|
||||
Handle(TColStd_HArray1OfInteger) tabVMults;
|
||||
TColgp_SequenceOfArray1OfPnt2d seqPoles2d;
|
||||
Standard_Real tol3dreached;
|
||||
Standard_Real tol2dreached;
|
||||
Approx_ParametrizationType paramtype;
|
||||
GeomAbs_Shape continuity;
|
||||
Standard_Real critweights[3];
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheSectionGenerator Blend_AppFunction
|
||||
#define TheSectionGenerator_hxx <Blend_AppFunction.hxx>
|
||||
#define Handle_TheLine Handle(BRepBlend_Line)
|
||||
#define TheLine BRepBlend_Line
|
||||
#define TheLine_hxx <BRepBlend_Line.hxx>
|
||||
#define AppBlend_AppSurf BRepBlend_AppSurf
|
||||
#define AppBlend_AppSurf_hxx <BRepBlend_AppSurf.hxx>
|
||||
|
||||
#include <AppBlend_AppSurf.lxx>
|
||||
|
||||
#undef TheSectionGenerator
|
||||
#undef TheSectionGenerator_hxx
|
||||
#undef Handle_TheLine
|
||||
#undef TheLine
|
||||
#undef TheLine_hxx
|
||||
#undef AppBlend_AppSurf
|
||||
#undef AppBlend_AppSurf_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_AppSurf_HeaderFile
|
34
src/BRepBlend/BRepBlend_AppSurf_0.cxx
Normal file
34
src/BRepBlend/BRepBlend_AppSurf_0.cxx
Normal file
@@ -0,0 +1,34 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_AppSurf.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Blend_AppFunction.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
|
||||
|
||||
#define TheSectionGenerator Blend_AppFunction
|
||||
#define TheSectionGenerator_hxx <Blend_AppFunction.hxx>
|
||||
#define Handle_TheLine Handle(BRepBlend_Line)
|
||||
#define TheLine BRepBlend_Line
|
||||
#define TheLine_hxx <BRepBlend_Line.hxx>
|
||||
#define AppBlend_AppSurf BRepBlend_AppSurf
|
||||
#define AppBlend_AppSurf_hxx <BRepBlend_AppSurf.hxx>
|
||||
#include <AppBlend_AppSurf.gxx>
|
||||
|
@@ -1,250 +0,0 @@
|
||||
-- Created on: 1996-11-25
|
||||
-- Created by: Philippe MANGIN
|
||||
-- Copyright (c) 1996-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class AppSurface from BRepBlend inherits Approx from AppBlend
|
||||
|
||||
---Purpose:Used to Approximate the blending surfaces.
|
||||
|
||||
uses Array2OfReal from TColStd,
|
||||
HArray2OfReal from TColStd,
|
||||
Array1OfReal from TColStd,
|
||||
HArray1OfReal from TColStd,
|
||||
Array1OfInteger from TColStd,
|
||||
HArray1OfInteger from TColStd,
|
||||
Array1OfPnt2d from TColgp,
|
||||
Array2OfPnt from TColgp,
|
||||
HArray2OfPnt from TColgp,
|
||||
|
||||
Shape from GeomAbs,
|
||||
SweepFunction from Approx,
|
||||
SweepApproximation from Approx
|
||||
|
||||
|
||||
raises NotDone from StdFail,
|
||||
DomainError,
|
||||
OutOfRange
|
||||
|
||||
is
|
||||
Create(Funct : in out SweepFunction from Approx;
|
||||
First, Last : Real;
|
||||
Tol3d, Tol2d, TolAngular : Real;
|
||||
Continuity : Shape = GeomAbs_C0;
|
||||
Degmax : Integer = 11;
|
||||
Segmax : Integer = 50)
|
||||
---Purpose: Approximation of the new Surface (and
|
||||
-- eventually the 2d Curves on the support
|
||||
-- surfaces).
|
||||
-- Normaly the 2d curve are
|
||||
-- approximated with an tolerance given by the
|
||||
-- resolution on support surfaces, but if this
|
||||
-- tolerance is too large Tol2d is used.
|
||||
returns AppSurface from BRepBlend;
|
||||
|
||||
|
||||
IsDone(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
|
||||
SurfShape(me; UDegree,VDegree : out Integer from Standard;
|
||||
NbUPoles,NbVPoles: out Integer from Standard;
|
||||
NbUKnots,NbVKnots: out Integer from Standard)
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
Surface(me; TPoles : out Array2OfPnt from TColgp;
|
||||
TWeights : out Array2OfReal from TColStd;
|
||||
TUKnots,TVKnots : out Array1OfReal from TColStd;
|
||||
TUMults,TVMults : out Array1OfInteger from TColStd)
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
UDegree(me)
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
VDegree(me)
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
SurfPoles(me)
|
||||
|
||||
returns Array2OfPnt from TColgp
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
SurfWeights(me)
|
||||
|
||||
returns Array2OfReal from TColStd
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
SurfUKnots(me)
|
||||
|
||||
returns Array1OfReal from TColStd
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
SurfVKnots(me)
|
||||
|
||||
returns Array1OfReal from TColStd
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
SurfUMults(me)
|
||||
|
||||
returns Array1OfInteger from TColStd
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
SurfVMults(me)
|
||||
|
||||
returns Array1OfInteger from TColStd
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
MaxErrorOnSurf (me)
|
||||
---Purpose: returns the maximum error in the suface approximation.
|
||||
returns Real;
|
||||
|
||||
NbCurves2d(me)
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
|
||||
Curves2dShape(me; Degree,NbPoles,NbKnots: out Integer from Standard)
|
||||
|
||||
raises NotDone from StdFail,
|
||||
DomainError from Standard
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Curve2d(me; Index: Integer from Standard;
|
||||
TPoles : out Array1OfPnt2d from TColgp;
|
||||
TKnots : out Array1OfReal from TColStd;
|
||||
TMults : out Array1OfInteger from TColStd)
|
||||
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard,
|
||||
DomainError from Standard
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Curves2dDegree(me)
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
|
||||
raises NotDone from StdFail,
|
||||
DomainError from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Curve2dPoles(me; Index: Integer from Standard)
|
||||
|
||||
returns Array1OfPnt2d from TColgp
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard,
|
||||
DomainError from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Curves2dKnots(me)
|
||||
|
||||
returns Array1OfReal from TColStd
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises NotDone from StdFail,
|
||||
DomainError from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Curves2dMults(me)
|
||||
returns Array1OfInteger from TColStd
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
raises NotDone from StdFail,
|
||||
DomainError from Standard
|
||||
is static;
|
||||
|
||||
|
||||
TolReached(me; Tol3d, Tol2d : out Real from Standard)
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
Max2dError (me; Index : Integer)
|
||||
---Purpose: returns the maximum error in the <Index> 2d curve approximation.
|
||||
returns Real
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
TolCurveOnSurf(me; Index : Integer from Standard)
|
||||
returns Real from Standard
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
Dump(me; o: in out OStream);
|
||||
---Purpose: diplay information on approximation.
|
||||
|
||||
fields
|
||||
approx : SweepApproximation from Approx;
|
||||
end AppSurface;
|
@@ -14,17 +14,18 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_AppSurface.ixx>
|
||||
|
||||
#include <Approx_SweepFunction.hxx>
|
||||
#include <BRepBlend_AppSurface.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
|
||||
BRepBlend_AppSurface::BRepBlend_AppSurface(
|
||||
Handle(Approx_SweepFunction)& Func,
|
||||
const Standard_Real First,
|
||||
|
133
src/BRepBlend/BRepBlend_AppSurface.hxx
Normal file
133
src/BRepBlend/BRepBlend_AppSurface.hxx
Normal file
@@ -0,0 +1,133 @@
|
||||
// Created on: 1996-11-25
|
||||
// Created by: Philippe MANGIN
|
||||
// Copyright (c) 1996-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_AppSurface_HeaderFile
|
||||
#define _BRepBlend_AppSurface_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Approx_SweepApproximation.hxx>
|
||||
#include <AppBlend_Approx.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColgp_Array2OfPnt.hxx>
|
||||
#include <TColStd_Array2OfReal.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <Standard_OStream.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_DomainError;
|
||||
class Standard_OutOfRange;
|
||||
class Approx_SweepFunction;
|
||||
|
||||
|
||||
//! Used to Approximate the blending surfaces.
|
||||
class BRepBlend_AppSurface : public AppBlend_Approx
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Approximation of the new Surface (and
|
||||
//! eventually the 2d Curves on the support
|
||||
//! surfaces).
|
||||
//! Normaly the 2d curve are
|
||||
//! approximated with an tolerance given by the
|
||||
//! resolution on support surfaces, but if this
|
||||
//! tolerance is too large Tol2d is used.
|
||||
Standard_EXPORT BRepBlend_AppSurface(Handle(Approx_SweepFunction)& Funct, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Real TolAngular, const GeomAbs_Shape Continuity = GeomAbs_C0, const Standard_Integer Degmax = 11, const Standard_Integer Segmax = 50);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT void SurfShape (Standard_Integer& UDegree, Standard_Integer& VDegree, Standard_Integer& NbUPoles, Standard_Integer& NbVPoles, Standard_Integer& NbUKnots, Standard_Integer& NbVKnots) const;
|
||||
|
||||
Standard_EXPORT void Surface (TColgp_Array2OfPnt& TPoles, TColStd_Array2OfReal& TWeights, TColStd_Array1OfReal& TUKnots, TColStd_Array1OfReal& TVKnots, TColStd_Array1OfInteger& TUMults, TColStd_Array1OfInteger& TVMults) const;
|
||||
|
||||
Standard_Integer UDegree() const;
|
||||
|
||||
Standard_Integer VDegree() const;
|
||||
|
||||
const TColgp_Array2OfPnt& SurfPoles() const;
|
||||
|
||||
const TColStd_Array2OfReal& SurfWeights() const;
|
||||
|
||||
const TColStd_Array1OfReal& SurfUKnots() const;
|
||||
|
||||
const TColStd_Array1OfReal& SurfVKnots() const;
|
||||
|
||||
const TColStd_Array1OfInteger& SurfUMults() const;
|
||||
|
||||
const TColStd_Array1OfInteger& SurfVMults() const;
|
||||
|
||||
//! returns the maximum error in the suface approximation.
|
||||
Standard_EXPORT Standard_Real MaxErrorOnSurf() const;
|
||||
|
||||
Standard_Integer NbCurves2d() const;
|
||||
|
||||
Standard_EXPORT void Curves2dShape (Standard_Integer& Degree, Standard_Integer& NbPoles, Standard_Integer& NbKnots) const;
|
||||
|
||||
Standard_EXPORT void Curve2d (const Standard_Integer Index, TColgp_Array1OfPnt2d& TPoles, TColStd_Array1OfReal& TKnots, TColStd_Array1OfInteger& TMults) const;
|
||||
|
||||
Standard_Integer Curves2dDegree() const;
|
||||
|
||||
const TColgp_Array1OfPnt2d& Curve2dPoles (const Standard_Integer Index) const;
|
||||
|
||||
const TColStd_Array1OfReal& Curves2dKnots() const;
|
||||
|
||||
const TColStd_Array1OfInteger& Curves2dMults() const;
|
||||
|
||||
Standard_EXPORT void TolReached (Standard_Real& Tol3d, Standard_Real& Tol2d) const;
|
||||
|
||||
//! returns the maximum error in the <Index> 2d curve approximation.
|
||||
Standard_EXPORT Standard_Real Max2dError (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Real TolCurveOnSurf (const Standard_Integer Index) const;
|
||||
|
||||
//! diplay information on approximation.
|
||||
Standard_EXPORT void Dump (Standard_OStream& o) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Approx_SweepApproximation approx;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_AppSurface.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_AppSurface_HeaderFile
|
@@ -1,115 +0,0 @@
|
||||
-- Created on: 1993-12-06
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class BlendTool from BRepBlend
|
||||
|
||||
---Purpose:
|
||||
|
||||
uses
|
||||
Pnt2d from gp,
|
||||
State from TopAbs,
|
||||
HCurve2d from Adaptor2d,
|
||||
HSurface from Adaptor3d,
|
||||
HVertex from Adaptor3d
|
||||
|
||||
is
|
||||
|
||||
Project(myclass; P: Pnt2d from gp;
|
||||
S: HSurface from Adaptor3d ;
|
||||
C: HCurve2d from Adaptor2d ;
|
||||
Paramproj: out Real from Standard;
|
||||
Dist: out Real from Standard)
|
||||
|
||||
---Purpose: Projects the point P on the arc C.
|
||||
-- If the methods returns Standard_True, the projection is
|
||||
-- successful, and Paramproj is the parameter on the arc
|
||||
-- of the projected point, Dist is the distance between
|
||||
-- P and the curve..
|
||||
-- If the method returns Standard_False, Param proj and Dist
|
||||
-- are not significant.
|
||||
--
|
||||
|
||||
returns Boolean from Standard;
|
||||
|
||||
Inters (myclass; P1,P2: Pnt2d from gp;
|
||||
S: HSurface from Adaptor3d ;
|
||||
C: HCurve2d from Adaptor2d ;
|
||||
Param: out Real from Standard;
|
||||
Dist: out Real from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
Parameter(myclass; V: HVertex from Adaptor3d; A: HCurve2d from Adaptor2d )
|
||||
|
||||
---Purpose: Returns the parameter of the vertex V on the edge A.
|
||||
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
Tolerance(myclass; V: HVertex from Adaptor3d; A: HCurve2d from Adaptor2d )
|
||||
|
||||
---Purpose: Returns the parametric tolerance on the arc A
|
||||
-- used to consider that the vertex and another point meet,
|
||||
-- i-e if Abs(Parameter(Vertex)-Parameter(OtherPnt))<=
|
||||
-- Tolerance, the points are "merged".
|
||||
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
-- Methodes pour Rayon constant, en plus des 2 precedentes
|
||||
|
||||
|
||||
SingularOnUMin(myclass; S:HSurface from Adaptor3d )
|
||||
returns Boolean from Standard;
|
||||
---C++: inline
|
||||
|
||||
SingularOnUMax(myclass; S:HSurface from Adaptor3d )
|
||||
returns Boolean from Standard;
|
||||
---C++: inline
|
||||
|
||||
SingularOnVMin(myclass; S:HSurface from Adaptor3d )
|
||||
returns Boolean from Standard;
|
||||
---C++: inline
|
||||
|
||||
SingularOnVMax(myclass; S:HSurface from Adaptor3d )
|
||||
returns Boolean from Standard;
|
||||
---C++: inline
|
||||
|
||||
NbSamplesU(myclass; S: HSurface from Adaptor3d ;
|
||||
u1,u2: Real from Standard)
|
||||
returns Integer from Standard;
|
||||
|
||||
NbSamplesV(myclass; S: HSurface from Adaptor3d ;
|
||||
v1,v2: Real from Standard)
|
||||
returns Integer from Standard;
|
||||
|
||||
|
||||
Bounds(myclass; C: HCurve2d from Adaptor2d ;
|
||||
Ufirst,Ulast: out Real from Standard);
|
||||
|
||||
---Purpose: Returns the parametric limits on the arc C.
|
||||
-- These limits must be finite : they are either
|
||||
-- the real limits of the arc, for a finite arc,
|
||||
-- or a bounding box for an infinite arc.
|
||||
|
||||
|
||||
CurveOnSurf(myclass; C: HCurve2d from Adaptor2d ; S: HSurface from Adaptor3d )
|
||||
---C++: inline
|
||||
returns HCurve2d from Adaptor2d ;
|
||||
|
||||
|
||||
end BlendTool;
|
@@ -14,22 +14,25 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_BlendTool.ixx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HVertex.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <BRepBlend_BlendTool.hxx>
|
||||
#include <BRepBlend_HCurve2dTool.hxx>
|
||||
#include <BRepClass_FaceClassifier.hxx>
|
||||
#include <Extrema_EPCOfExtPC2d.hxx>
|
||||
#include <Extrema_POnCurv2d.hxx>
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <Geom2d_Line.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Geom2dInt_GInter.hxx>
|
||||
#include <gp_Dir2d.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <IntRes2d_IntersectionPoint.hxx>
|
||||
#include <BRepBlend_HCurve2dTool.hxx>
|
||||
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : Project
|
||||
|
105
src/BRepBlend/BRepBlend_BlendTool.hxx
Normal file
105
src/BRepBlend/BRepBlend_BlendTool.hxx
Normal file
@@ -0,0 +1,105 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_BlendTool_HeaderFile
|
||||
#define _BRepBlend_BlendTool_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class gp_Pnt2d;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HVertex;
|
||||
|
||||
|
||||
|
||||
class BRepBlend_BlendTool
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Projects the point P on the arc C.
|
||||
//! If the methods returns Standard_True, the projection is
|
||||
//! successful, and Paramproj is the parameter on the arc
|
||||
//! of the projected point, Dist is the distance between
|
||||
//! P and the curve..
|
||||
//! If the method returns Standard_False, Param proj and Dist
|
||||
//! are not significant.
|
||||
Standard_EXPORT static Standard_Boolean Project (const gp_Pnt2d& P, const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor2d_HCurve2d)& C, Standard_Real& Paramproj, Standard_Real& Dist);
|
||||
|
||||
Standard_EXPORT static Standard_Boolean Inters (const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor2d_HCurve2d)& C, Standard_Real& Param, Standard_Real& Dist);
|
||||
|
||||
//! Returns the parameter of the vertex V on the edge A.
|
||||
static Standard_Real Parameter (const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& A);
|
||||
|
||||
//! Returns the parametric tolerance on the arc A
|
||||
//! used to consider that the vertex and another point meet,
|
||||
//! i-e if Abs(Parameter(Vertex)-Parameter(OtherPnt))<=
|
||||
//! Tolerance, the points are "merged".
|
||||
static Standard_Real Tolerance (const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& A);
|
||||
|
||||
static Standard_Boolean SingularOnUMin (const Handle(Adaptor3d_HSurface)& S);
|
||||
|
||||
static Standard_Boolean SingularOnUMax (const Handle(Adaptor3d_HSurface)& S);
|
||||
|
||||
static Standard_Boolean SingularOnVMin (const Handle(Adaptor3d_HSurface)& S);
|
||||
|
||||
static Standard_Boolean SingularOnVMax (const Handle(Adaptor3d_HSurface)& S);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamplesU (const Handle(Adaptor3d_HSurface)& S, const Standard_Real u1, const Standard_Real u2);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamplesV (const Handle(Adaptor3d_HSurface)& S, const Standard_Real v1, const Standard_Real v2);
|
||||
|
||||
//! Returns the parametric limits on the arc C.
|
||||
//! These limits must be finite : they are either
|
||||
//! the real limits of the arc, for a finite arc,
|
||||
//! or a bounding box for an infinite arc.
|
||||
Standard_EXPORT static void Bounds (const Handle(Adaptor2d_HCurve2d)& C, Standard_Real& Ufirst, Standard_Real& Ulast);
|
||||
|
||||
static Handle(Adaptor2d_HCurve2d) CurveOnSurf (const Handle(Adaptor2d_HCurve2d)& C, const Handle(Adaptor3d_HSurface)& S);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_BlendTool.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_BlendTool_HeaderFile
|
25
src/BRepBlend/BRepBlend_CSCircular.hxx
Normal file
25
src/BRepBlend/BRepBlend_CSCircular.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_CSCircular_HeaderFile
|
||||
#define _BRepBlend_CSCircular_HeaderFile
|
||||
|
||||
#include <BlendFunc_CSCircular.hxx>
|
||||
|
||||
typedef BlendFunc_CSCircular BRepBlend_CSCircular;
|
||||
|
||||
|
||||
#endif // _BRepBlend_CSCircular_HeaderFile
|
25
src/BRepBlend/BRepBlend_CSConstRad.hxx
Normal file
25
src/BRepBlend/BRepBlend_CSConstRad.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_CSConstRad_HeaderFile
|
||||
#define _BRepBlend_CSConstRad_HeaderFile
|
||||
|
||||
#include <BlendFunc_CSConstRad.hxx>
|
||||
|
||||
typedef BlendFunc_CSConstRad BRepBlend_CSConstRad;
|
||||
|
||||
|
||||
#endif // _BRepBlend_CSConstRad_HeaderFile
|
188
src/BRepBlend/BRepBlend_CSWalking.hxx
Normal file
188
src/BRepBlend/BRepBlend_CSWalking.hxx
Normal file
@@ -0,0 +1,188 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_CSWalking_HeaderFile
|
||||
#define _BRepBlend_CSWalking_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <BRepBlend_SequenceOfPointOnRst.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Blend_Status.hxx>
|
||||
class BRepBlend_Line;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HCurve;
|
||||
class Adaptor3d_TopolTool;
|
||||
class StdFail_NotDone;
|
||||
class Adaptor3d_HVertex;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class BRepBlend_HCurve2dTool;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class BRepBlend_HCurveTool;
|
||||
class BRepBlend_BlendTool;
|
||||
class BRepBlend_PointOnRst;
|
||||
class BRepBlend_Extremity;
|
||||
class Blend_CSFunction;
|
||||
class IntSurf_Transition;
|
||||
class gp_Pnt;
|
||||
class gp_Pnt2d;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
|
||||
|
||||
|
||||
class BRepBlend_CSWalking
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_CSWalking(const Handle(Adaptor3d_HCurve)& Curv, const Handle(Adaptor3d_HSurface)& Surf, const Handle(Adaptor3d_TopolTool)& Domain);
|
||||
|
||||
Standard_EXPORT void Perform (Blend_CSFunction& F, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Complete (Blend_CSFunction& F, const Standard_Real Pmin);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
const Handle(BRepBlend_Line)& Line() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void InternalPerform (Blend_CSFunction& F, math_Vector& Sol, const Standard_Real Bound);
|
||||
|
||||
Standard_EXPORT void Transition (const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc);
|
||||
|
||||
Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Integer Index, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Blend_Status CheckDeflectionOnSurf (const gp_Pnt& Psurf, const gp_Pnt2d& Ponsurf, const gp_Vec& Tgsurf, const gp_Vec2d& Tgonsurf);
|
||||
|
||||
Standard_EXPORT Blend_Status CheckDeflectionOnCurv (const gp_Pnt& Pcurv, const Standard_Real Poncurv, const gp_Vec& Tgcurv);
|
||||
|
||||
Standard_EXPORT Blend_Status TestArret (Blend_CSFunction& F, const math_Vector& Sol, const Standard_Boolean TestDeflection, const Blend_Status State);
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Handle(BRepBlend_Line) line;
|
||||
Handle(Adaptor3d_HSurface) surf;
|
||||
Handle(Adaptor3d_HCurve) curv;
|
||||
Handle(Adaptor3d_TopolTool) domain;
|
||||
Standard_Real tolesp;
|
||||
Standard_Real tolgui;
|
||||
Standard_Real pasmax;
|
||||
Standard_Real fleche;
|
||||
Standard_Real param;
|
||||
Standard_Real firstparam;
|
||||
Handle(TColStd_HArray1OfReal) firstsol;
|
||||
Blend_Point previousP;
|
||||
Standard_Boolean rebrou;
|
||||
Standard_Boolean iscomplete;
|
||||
Standard_Boolean comptra;
|
||||
Standard_Real sens;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheVertex Handle(Adaptor3d_HVertex)
|
||||
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
|
||||
#define TheArc Handle(Adaptor2d_HCurve2d)
|
||||
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
|
||||
#define TheSurface Handle(Adaptor3d_HSurface)
|
||||
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheVertexTool Standard_Integer
|
||||
#define TheVertexTool_hxx <Standard_Integer.hxx>
|
||||
#define TheArcTool BRepBlend_HCurve2dTool
|
||||
#define TheArcTool_hxx <BRepBlend_HCurve2dTool.hxx>
|
||||
#define TheSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheCurveTool BRepBlend_HCurveTool
|
||||
#define TheCurveTool_hxx <BRepBlend_HCurveTool.hxx>
|
||||
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
|
||||
#define TheTopolTool Adaptor3d_TopolTool
|
||||
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
|
||||
#define TheBlendTool BRepBlend_BlendTool
|
||||
#define TheBlendTool_hxx <BRepBlend_BlendTool.hxx>
|
||||
#define ThePointOnRst BRepBlend_PointOnRst
|
||||
#define ThePointOnRst_hxx <BRepBlend_PointOnRst.hxx>
|
||||
#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst
|
||||
#define TheSeqPointOnRst_hxx <BRepBlend_SequenceOfPointOnRst.hxx>
|
||||
#define TheExtremity BRepBlend_Extremity
|
||||
#define TheExtremity_hxx <BRepBlend_Extremity.hxx>
|
||||
#define Handle_TheLine Handle(BRepBlend_Line)
|
||||
#define TheLine BRepBlend_Line
|
||||
#define TheLine_hxx <BRepBlend_Line.hxx>
|
||||
#define Blend_CSWalking BRepBlend_CSWalking
|
||||
#define Blend_CSWalking_hxx <BRepBlend_CSWalking.hxx>
|
||||
|
||||
#include <Blend_CSWalking.lxx>
|
||||
|
||||
#undef TheVertex
|
||||
#undef TheVertex_hxx
|
||||
#undef TheArc
|
||||
#undef TheArc_hxx
|
||||
#undef TheSurface
|
||||
#undef TheSurface_hxx
|
||||
#undef TheCurve
|
||||
#undef TheCurve_hxx
|
||||
#undef TheVertexTool
|
||||
#undef TheVertexTool_hxx
|
||||
#undef TheArcTool
|
||||
#undef TheArcTool_hxx
|
||||
#undef TheSurfaceTool
|
||||
#undef TheSurfaceTool_hxx
|
||||
#undef TheCurveTool
|
||||
#undef TheCurveTool_hxx
|
||||
#undef Handle_TheTopolTool
|
||||
#undef TheTopolTool
|
||||
#undef TheTopolTool_hxx
|
||||
#undef TheBlendTool
|
||||
#undef TheBlendTool_hxx
|
||||
#undef ThePointOnRst
|
||||
#undef ThePointOnRst_hxx
|
||||
#undef TheSeqPointOnRst
|
||||
#undef TheSeqPointOnRst_hxx
|
||||
#undef TheExtremity
|
||||
#undef TheExtremity_hxx
|
||||
#undef Handle_TheLine
|
||||
#undef TheLine
|
||||
#undef TheLine_hxx
|
||||
#undef Blend_CSWalking
|
||||
#undef Blend_CSWalking_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_CSWalking_HeaderFile
|
73
src/BRepBlend/BRepBlend_CSWalking_0.cxx
Normal file
73
src/BRepBlend/BRepBlend_CSWalking_0.cxx
Normal file
@@ -0,0 +1,73 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_CSWalking.hxx>
|
||||
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Adaptor3d_HVertex.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <BRepBlend_HCurve2dTool.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <BRepBlend_HCurveTool.hxx>
|
||||
#include <BRepBlend_BlendTool.hxx>
|
||||
#include <BRepBlend_PointOnRst.hxx>
|
||||
#include <BRepBlend_Extremity.hxx>
|
||||
#include <Blend_CSFunction.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
|
||||
|
||||
#define TheVertex Handle(Adaptor3d_HVertex)
|
||||
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
|
||||
#define TheArc Handle(Adaptor2d_HCurve2d)
|
||||
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
|
||||
#define TheSurface Handle(Adaptor3d_HSurface)
|
||||
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheVertexTool Standard_Integer
|
||||
#define TheVertexTool_hxx <Standard_Integer.hxx>
|
||||
#define TheArcTool BRepBlend_HCurve2dTool
|
||||
#define TheArcTool_hxx <BRepBlend_HCurve2dTool.hxx>
|
||||
#define TheSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheCurveTool BRepBlend_HCurveTool
|
||||
#define TheCurveTool_hxx <BRepBlend_HCurveTool.hxx>
|
||||
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
|
||||
#define TheTopolTool Adaptor3d_TopolTool
|
||||
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
|
||||
#define TheBlendTool BRepBlend_BlendTool
|
||||
#define TheBlendTool_hxx <BRepBlend_BlendTool.hxx>
|
||||
#define ThePointOnRst BRepBlend_PointOnRst
|
||||
#define ThePointOnRst_hxx <BRepBlend_PointOnRst.hxx>
|
||||
#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst
|
||||
#define TheSeqPointOnRst_hxx <BRepBlend_SequenceOfPointOnRst.hxx>
|
||||
#define TheExtremity BRepBlend_Extremity
|
||||
#define TheExtremity_hxx <BRepBlend_Extremity.hxx>
|
||||
#define Handle_TheLine Handle(BRepBlend_Line)
|
||||
#define TheLine BRepBlend_Line
|
||||
#define TheLine_hxx <BRepBlend_Line.hxx>
|
||||
#define Blend_CSWalking BRepBlend_CSWalking
|
||||
#define Blend_CSWalking_hxx <BRepBlend_CSWalking.hxx>
|
||||
#include <Blend_CSWalking.gxx>
|
||||
|
25
src/BRepBlend/BRepBlend_ChAsym.hxx
Normal file
25
src/BRepBlend/BRepBlend_ChAsym.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_ChAsym_HeaderFile
|
||||
#define _BRepBlend_ChAsym_HeaderFile
|
||||
|
||||
#include <BlendFunc_ChAsym.hxx>
|
||||
|
||||
typedef BlendFunc_ChAsym BRepBlend_ChAsym;
|
||||
|
||||
|
||||
#endif // _BRepBlend_ChAsym_HeaderFile
|
25
src/BRepBlend/BRepBlend_ChAsymInv.hxx
Normal file
25
src/BRepBlend/BRepBlend_ChAsymInv.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_ChAsymInv_HeaderFile
|
||||
#define _BRepBlend_ChAsymInv_HeaderFile
|
||||
|
||||
#include <BlendFunc_ChAsymInv.hxx>
|
||||
|
||||
typedef BlendFunc_ChAsymInv BRepBlend_ChAsymInv;
|
||||
|
||||
|
||||
#endif // _BRepBlend_ChAsymInv_HeaderFile
|
25
src/BRepBlend/BRepBlend_ChamfInv.hxx
Normal file
25
src/BRepBlend/BRepBlend_ChamfInv.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_ChamfInv_HeaderFile
|
||||
#define _BRepBlend_ChamfInv_HeaderFile
|
||||
|
||||
#include <BlendFunc_ChamfInv.hxx>
|
||||
|
||||
typedef BlendFunc_ChamfInv BRepBlend_ChamfInv;
|
||||
|
||||
|
||||
#endif // _BRepBlend_ChamfInv_HeaderFile
|
25
src/BRepBlend/BRepBlend_Chamfer.hxx
Normal file
25
src/BRepBlend/BRepBlend_Chamfer.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_Chamfer_HeaderFile
|
||||
#define _BRepBlend_Chamfer_HeaderFile
|
||||
|
||||
#include <BlendFunc_Chamfer.hxx>
|
||||
|
||||
typedef BlendFunc_Chamfer BRepBlend_Chamfer;
|
||||
|
||||
|
||||
#endif // _BRepBlend_Chamfer_HeaderFile
|
25
src/BRepBlend/BRepBlend_ConstRad.hxx
Normal file
25
src/BRepBlend/BRepBlend_ConstRad.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_ConstRad_HeaderFile
|
||||
#define _BRepBlend_ConstRad_HeaderFile
|
||||
|
||||
#include <BlendFunc_ConstRad.hxx>
|
||||
|
||||
typedef BlendFunc_ConstRad BRepBlend_ConstRad;
|
||||
|
||||
|
||||
#endif // _BRepBlend_ConstRad_HeaderFile
|
25
src/BRepBlend/BRepBlend_ConstRadInv.hxx
Normal file
25
src/BRepBlend/BRepBlend_ConstRadInv.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_ConstRadInv_HeaderFile
|
||||
#define _BRepBlend_ConstRadInv_HeaderFile
|
||||
|
||||
#include <BlendFunc_ConstRadInv.hxx>
|
||||
|
||||
typedef BlendFunc_ConstRadInv BRepBlend_ConstRadInv;
|
||||
|
||||
|
||||
#endif // _BRepBlend_ConstRadInv_HeaderFile
|
@@ -1,97 +0,0 @@
|
||||
-- Created on: 1997-02-12
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class CurvPointRadInv from BRepBlend
|
||||
|
||||
inherits CurvPointFuncInv from Blend
|
||||
|
||||
---Purpose: Function of reframing between a point and a curve.
|
||||
-- valid in cases of constant and progressive radius.
|
||||
-- This function is used to find a solution on a done
|
||||
-- point of the curve 1 when using RstRstConsRad or
|
||||
-- CSConstRad...
|
||||
-- The vector <X> used in Value, Values and Derivatives
|
||||
-- methods has to be the vector of the parametric
|
||||
-- coordinates w, U where w is the parameter on the
|
||||
-- guide line, U are the parametric coordinates of a
|
||||
-- point on the partner curve 2.
|
||||
|
||||
uses
|
||||
Pnt from gp,
|
||||
Vector from math,
|
||||
Matrix from math,
|
||||
HCurve from Adaptor3d
|
||||
|
||||
|
||||
is
|
||||
Create(C1 : HCurve from Adaptor3d; C2 : HCurve from Adaptor3d)
|
||||
returns CurvPointRadInv from BRepBlend;
|
||||
|
||||
Set(me: in out; Choix: Integer from Standard)
|
||||
is static;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: returns 2.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me: in out; P : Pnt from gp);
|
||||
---Purpose: Set the Point on which a solution has to be found.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
---Purpose: Returns in the vector Tolerance the parametric tolerance
|
||||
-- for each of the 3 variables;
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
---Purpose: Returns in the vector InfBound the lowest values allowed
|
||||
-- for each of the 3 variables.
|
||||
-- Returns in the vector SupBound the greatest values allowed
|
||||
-- for each of the 3 variables.
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
---Purpose: Returns Standard_True if Sol is a zero of the function.
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
returns Boolean from Standard;
|
||||
|
||||
fields
|
||||
|
||||
curv1 : HCurve from Adaptor3d;
|
||||
curv2 : HCurve from Adaptor3d;
|
||||
point : Pnt from gp;
|
||||
choix : Integer from Standard;
|
||||
|
||||
end CurvPointRadInv;
|
@@ -14,13 +14,16 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_CurvPointRadInv.ixx>
|
||||
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <BRepBlend_CurvPointRadInv.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : BRepBlend_CurvPointRadInv
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
BRepBlend_CurvPointRadInv::BRepBlend_CurvPointRadInv
|
||||
(const Handle(Adaptor3d_HCurve)& C1,
|
||||
const Handle(Adaptor3d_HCurve)& C2) : curv1(C1), curv2(C2)
|
||||
|
122
src/BRepBlend/BRepBlend_CurvPointRadInv.hxx
Normal file
122
src/BRepBlend/BRepBlend_CurvPointRadInv.hxx
Normal file
@@ -0,0 +1,122 @@
|
||||
// Created on: 1997-02-12
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_CurvPointRadInv_HeaderFile
|
||||
#define _BRepBlend_CurvPointRadInv_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Blend_CurvPointFuncInv.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor3d_HCurve;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
//! Function of reframing between a point and a curve.
|
||||
//! valid in cases of constant and progressive radius.
|
||||
//! This function is used to find a solution on a done
|
||||
//! point of the curve 1 when using RstRstConsRad or
|
||||
//! CSConstRad...
|
||||
//! The vector <X> used in Value, Values and Derivatives
|
||||
//! methods has to be the vector of the parametric
|
||||
//! coordinates w, U where w is the parameter on the
|
||||
//! guide line, U are the parametric coordinates of a
|
||||
//! point on the partner curve 2.
|
||||
class BRepBlend_CurvPointRadInv : public Blend_CurvPointFuncInv
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_CurvPointRadInv(const Handle(Adaptor3d_HCurve)& C1, const Handle(Adaptor3d_HCurve)& C2);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Integer Choix);
|
||||
|
||||
//! returns 2.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
//! Set the Point on which a solution has to be found.
|
||||
Standard_EXPORT void Set (const gp_Pnt& P);
|
||||
|
||||
//! Returns in the vector Tolerance the parametric tolerance
|
||||
//! for each of the 3 variables;
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
//! Returns in the vector InfBound the lowest values allowed
|
||||
//! for each of the 3 variables.
|
||||
//! Returns in the vector SupBound the greatest values allowed
|
||||
//! for each of the 3 variables.
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
//! Returns Standard_True if Sol is a zero of the function.
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HCurve) curv1;
|
||||
Handle(Adaptor3d_HCurve) curv2;
|
||||
gp_Pnt point;
|
||||
Standard_Integer choix;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_CurvPointRadInv_HeaderFile
|
25
src/BRepBlend/BRepBlend_EvolRad.hxx
Normal file
25
src/BRepBlend/BRepBlend_EvolRad.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_EvolRad_HeaderFile
|
||||
#define _BRepBlend_EvolRad_HeaderFile
|
||||
|
||||
#include <BlendFunc_EvolRad.hxx>
|
||||
|
||||
typedef BlendFunc_EvolRad BRepBlend_EvolRad;
|
||||
|
||||
|
||||
#endif // _BRepBlend_EvolRad_HeaderFile
|
25
src/BRepBlend/BRepBlend_EvolRadInv.hxx
Normal file
25
src/BRepBlend/BRepBlend_EvolRadInv.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_EvolRadInv_HeaderFile
|
||||
#define _BRepBlend_EvolRadInv_HeaderFile
|
||||
|
||||
#include <BlendFunc_EvolRadInv.hxx>
|
||||
|
||||
typedef BlendFunc_EvolRadInv BRepBlend_EvolRadInv;
|
||||
|
||||
|
||||
#endif // _BRepBlend_EvolRadInv_HeaderFile
|
@@ -1,237 +0,0 @@
|
||||
-- Created on: 1994-01-25
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1994-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class Extremity from BRepBlend
|
||||
---Purpose:
|
||||
|
||||
uses Pnt from gp,
|
||||
Vec from gp,
|
||||
Transition from IntSurf,
|
||||
HVertex from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
PointOnRst from BRepBlend,
|
||||
SequenceOfPointOnRst from BRepBlend
|
||||
|
||||
raises DomainError from Standard,
|
||||
OutOfRange from Standard
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
|
||||
returns Extremity from BRepBlend;
|
||||
|
||||
|
||||
Create(P: Pnt from gp;
|
||||
U,V,Param: Real from Standard; Tol: Real from Standard)
|
||||
---Purpose: Creates an extremity on a surface
|
||||
returns Extremity from BRepBlend;
|
||||
|
||||
|
||||
Create(P: Pnt from gp;
|
||||
U,V,Param: Real from Standard; Tol: Real from Standard;
|
||||
Vtx: HVertex from Adaptor3d)
|
||||
---Purpose: Creates an extremity on a surface. This extremity matches
|
||||
-- the vertex <Vtx>.
|
||||
|
||||
returns Extremity from BRepBlend;
|
||||
|
||||
|
||||
Create(P: Pnt from gp;
|
||||
W, Param: Real from Standard; Tol: Real from Standard)
|
||||
---Purpose: Creates an extremity on a curve
|
||||
returns Extremity from BRepBlend;
|
||||
|
||||
|
||||
SetValue(me: in out; P: Pnt from gp;
|
||||
U,V,Param : Real from Standard;
|
||||
Tol: Real from Standard)
|
||||
---Purpose: Set the values for an extremity on a surface.
|
||||
is static;
|
||||
|
||||
|
||||
SetValue(me: in out; P: Pnt from gp;
|
||||
U,V,Param: Real from Standard;
|
||||
Tol: Real from Standard; Vtx: HVertex from Adaptor3d)
|
||||
---Purpose: Set the values for an extremity on a surface.This
|
||||
-- extremity matches the vertex <Vtx>.
|
||||
is static;
|
||||
|
||||
|
||||
SetValue(me: in out; P: Pnt from gp;
|
||||
W,Param: Real from Standard;
|
||||
Tol: Real from Standard)
|
||||
---Purpose: Set the values for an extremity on curve.
|
||||
is static;
|
||||
|
||||
|
||||
Value(me)
|
||||
|
||||
---Purpose: This method returns the value of the point in 3d space.
|
||||
|
||||
returns Pnt from gp
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
is static;
|
||||
|
||||
SetTangent(me: in out; Tangent : Vec from gp)
|
||||
---Purpose: Set the tangent vector for an extremity on a
|
||||
-- surface.
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
HasTangent(me)
|
||||
|
||||
---Purpose: Returns TRUE if the Tangent is stored.
|
||||
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
Tangent(me)
|
||||
|
||||
---Purpose: This method returns the value of tangent in 3d
|
||||
-- space.
|
||||
|
||||
returns Vec from gp
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
is static;
|
||||
|
||||
Tolerance(me)
|
||||
|
||||
---Purpose: This method returns the fuzziness on the point
|
||||
-- in 3d space.
|
||||
|
||||
returns Real from Standard
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
|
||||
-- methods for an extremity on a surface
|
||||
|
||||
SetVertex(me: in out; V: HVertex from Adaptor3d)
|
||||
---Purpose: Set the values for an extremity on a curve.
|
||||
is static;
|
||||
|
||||
|
||||
AddArc(me: in out; A: HCurve2d from Adaptor2d; Param: Real from Standard;
|
||||
TLine, TArc: Transition from IntSurf)
|
||||
|
||||
---Purpose: Sets the values of a point which is on the arc
|
||||
-- A, at parameter Param.
|
||||
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Parameters(me; U,V: out Real from Standard)
|
||||
|
||||
---Purpose: This method returns the parameters of the point
|
||||
-- on the concerned surface.
|
||||
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
|
||||
IsVertex(me)
|
||||
|
||||
---Purpose: Returns Standard_True when the point coincide with
|
||||
-- an existing vertex.
|
||||
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Vertex(me)
|
||||
|
||||
---Purpose: Returns the vertex when IsVertex returns Standard_True.
|
||||
|
||||
returns any HVertex from Adaptor3d
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises DomainError from Standard
|
||||
--- The exception is raised when IsVertex returns Standard_False
|
||||
is static;
|
||||
|
||||
|
||||
NbPointOnRst(me)
|
||||
|
||||
---Purpose: Returns the number of arc containing the extremity.
|
||||
-- If the method returns 0, the point is inside the
|
||||
-- surface.
|
||||
-- Otherwise, the extremity lies on at least 1 arc,
|
||||
-- and all the information (arc, parameter, transitions)
|
||||
-- are given by the point on restriction (PointOnRst)
|
||||
-- returned by the next method.
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
PointOnRst(me; Index: Integer from Standard)
|
||||
|
||||
---Purpose:
|
||||
|
||||
returns any PointOnRst from BRepBlend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises OutOfRange from Standard
|
||||
--- The exception is raised when Index <=0 or Index > NbPointOnRst
|
||||
is static;
|
||||
|
||||
|
||||
-- method for an extremity on a curve
|
||||
|
||||
Parameter(me)
|
||||
|
||||
returns Real from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
-- method for the parameter on the guide
|
||||
ParameterOnGuide(me)
|
||||
|
||||
returns Real from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
fields
|
||||
vtx : HVertex from Adaptor3d;
|
||||
seqpt : SequenceOfPointOnRst from BRepBlend;
|
||||
pt : Pnt from gp;
|
||||
tang : Vec from gp;
|
||||
param : Real from Standard;
|
||||
u : Real from Standard;
|
||||
v : Real from Standard;
|
||||
tol : Real from Standard;
|
||||
isvtx : Boolean from Standard;
|
||||
hastang: Boolean from Standard;
|
||||
|
||||
end Extremity;
|
||||
|
||||
|
@@ -12,8 +12,16 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_Extremity.ixx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HVertex.hxx>
|
||||
#include <BRepBlend_Extremity.hxx>
|
||||
#include <BRepBlend_PointOnRst.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
|
||||
BRepBlend_Extremity::BRepBlend_Extremity ():
|
||||
pt(gp_Pnt(0,0,0)),
|
||||
|
155
src/BRepBlend/BRepBlend_Extremity.hxx
Normal file
155
src/BRepBlend/BRepBlend_Extremity.hxx
Normal file
@@ -0,0 +1,155 @@
|
||||
// Created on: 1994-01-25
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1994-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_Extremity_HeaderFile
|
||||
#define _BRepBlend_Extremity_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <BRepBlend_SequenceOfPointOnRst.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class Adaptor3d_HVertex;
|
||||
class Standard_DomainError;
|
||||
class Standard_OutOfRange;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class IntSurf_Transition;
|
||||
class BRepBlend_PointOnRst;
|
||||
|
||||
|
||||
|
||||
class BRepBlend_Extremity
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_Extremity();
|
||||
|
||||
//! Creates an extremity on a surface
|
||||
Standard_EXPORT BRepBlend_Extremity(const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol);
|
||||
|
||||
//! Creates an extremity on a surface. This extremity matches
|
||||
//! the vertex <Vtx>.
|
||||
Standard_EXPORT BRepBlend_Extremity(const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol, const Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
//! Creates an extremity on a curve
|
||||
Standard_EXPORT BRepBlend_Extremity(const gp_Pnt& P, const Standard_Real W, const Standard_Real Param, const Standard_Real Tol);
|
||||
|
||||
//! Set the values for an extremity on a surface.
|
||||
Standard_EXPORT void SetValue (const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol);
|
||||
|
||||
//! Set the values for an extremity on a surface.This
|
||||
//! extremity matches the vertex <Vtx>.
|
||||
Standard_EXPORT void SetValue (const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol, const Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
//! Set the values for an extremity on curve.
|
||||
Standard_EXPORT void SetValue (const gp_Pnt& P, const Standard_Real W, const Standard_Real Param, const Standard_Real Tol);
|
||||
|
||||
//! This method returns the value of the point in 3d space.
|
||||
const gp_Pnt& Value() const;
|
||||
|
||||
//! Set the tangent vector for an extremity on a
|
||||
//! surface.
|
||||
void SetTangent (const gp_Vec& Tangent);
|
||||
|
||||
//! Returns TRUE if the Tangent is stored.
|
||||
Standard_Boolean HasTangent() const;
|
||||
|
||||
//! This method returns the value of tangent in 3d
|
||||
//! space.
|
||||
const gp_Vec& Tangent() const;
|
||||
|
||||
//! This method returns the fuzziness on the point
|
||||
//! in 3d space.
|
||||
Standard_Real Tolerance() const;
|
||||
|
||||
//! Set the values for an extremity on a curve.
|
||||
Standard_EXPORT void SetVertex (const Handle(Adaptor3d_HVertex)& V);
|
||||
|
||||
//! Sets the values of a point which is on the arc
|
||||
//! A, at parameter Param.
|
||||
Standard_EXPORT void AddArc (const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc);
|
||||
|
||||
//! This method returns the parameters of the point
|
||||
//! on the concerned surface.
|
||||
void Parameters (Standard_Real& U, Standard_Real& V) const;
|
||||
|
||||
//! Returns Standard_True when the point coincide with
|
||||
//! an existing vertex.
|
||||
Standard_Boolean IsVertex() const;
|
||||
|
||||
//! Returns the vertex when IsVertex returns Standard_True.
|
||||
const Handle(Adaptor3d_HVertex)& Vertex() const;
|
||||
|
||||
//! Returns the number of arc containing the extremity.
|
||||
//! If the method returns 0, the point is inside the
|
||||
//! surface.
|
||||
//! Otherwise, the extremity lies on at least 1 arc,
|
||||
//! and all the information (arc, parameter, transitions)
|
||||
//! are given by the point on restriction (PointOnRst)
|
||||
//! returned by the next method.
|
||||
Standard_Integer NbPointOnRst() const;
|
||||
|
||||
const BRepBlend_PointOnRst& PointOnRst (const Standard_Integer Index) const;
|
||||
|
||||
Standard_Real Parameter() const;
|
||||
|
||||
Standard_Real ParameterOnGuide() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HVertex) vtx;
|
||||
BRepBlend_SequenceOfPointOnRst seqpt;
|
||||
gp_Pnt pt;
|
||||
gp_Vec tang;
|
||||
Standard_Real param;
|
||||
Standard_Real u;
|
||||
Standard_Real v;
|
||||
Standard_Real tol;
|
||||
Standard_Boolean isvtx;
|
||||
Standard_Boolean hastang;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_Extremity.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_Extremity_HeaderFile
|
@@ -1,236 +0,0 @@
|
||||
-- Created on: 1995-07-17
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class HCurve2dTool from BRepBlend
|
||||
|
||||
uses
|
||||
Array1OfReal from TColStd,
|
||||
Shape from GeomAbs,
|
||||
CurveType from GeomAbs,
|
||||
Vec2d from gp,
|
||||
Pnt2d from gp,
|
||||
Circ2d from gp,
|
||||
Elips2d from gp,
|
||||
Hypr2d from gp,
|
||||
Parab2d from gp,
|
||||
Lin2d from gp,
|
||||
BezierCurve from Geom2d,
|
||||
BSplineCurve from Geom2d,
|
||||
HCurve2d from Adaptor2d
|
||||
|
||||
raises
|
||||
|
||||
OutOfRange from Standard,
|
||||
NoSuchObject from Standard,
|
||||
DomainError from Standard
|
||||
|
||||
is
|
||||
|
||||
--
|
||||
-- Global methods - Apply to the whole curve.
|
||||
--
|
||||
|
||||
FirstParameter(myclass; C: HCurve2d from Adaptor2d) returns Real
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
|
||||
LastParameter(myclass; C: HCurve2d from Adaptor2d) returns Real
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
--
|
||||
-- Services to break the curves to the expected continuity
|
||||
--
|
||||
-- If for example you need the curve to be C2 and the method
|
||||
-- Continuity returns you something lower than C2 (say C1 for
|
||||
-- example).
|
||||
--
|
||||
-- First compute the number of intervals with the requested
|
||||
-- continuity with the method NbIntervals(). Note that if the
|
||||
-- continuity is higher than the one you need NbIntervals will
|
||||
-- return 1.
|
||||
--
|
||||
-- Then you get the parameters bounding the intervals with the
|
||||
-- method Intervals, using an array of length at least
|
||||
-- NbIntervals()+1.
|
||||
--
|
||||
-- If you need to create a curve with a restricted span you can
|
||||
-- use the method Trim().
|
||||
|
||||
|
||||
Continuity(myclass; C: HCurve2d from Adaptor2d) returns Shape from GeomAbs
|
||||
---Purpose:
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
NbIntervals(myclass; C: HCurve2d from Adaptor2d; S : Shape from GeomAbs) returns Integer
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(myclass) >= <S>
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Intervals(myclass; C: HCurve2d from Adaptor2d; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
--
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
raises
|
||||
OutOfRange from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
IsClosed(myclass; C: HCurve2d from Adaptor2d) returns Boolean
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
IsPeriodic(myclass; C: HCurve2d from Adaptor2d) returns Boolean
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Period(myclass; C: HCurve2d from Adaptor2d) returns Real
|
||||
raises
|
||||
DomainError from Standard -- if the curve is not periodic
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Value(myclass; C: HCurve2d from Adaptor2d; U : Real) returns Pnt2d from gp
|
||||
--- Purpose : Computes the point of parameter U on the curve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D0 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp)
|
||||
--- Purpose : Computes the point of parameter U on the curve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D1 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp)
|
||||
--- Purpose : Computes the point of parameter U on the curve with its
|
||||
-- first derivative.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C1.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D2 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp)
|
||||
--- Purpose :
|
||||
-- Returns the point P of parameter U, the first and second
|
||||
-- derivatives V1 and V2.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C2.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D3 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp)
|
||||
--- Purpose :
|
||||
-- Returns the point P of parameter U, the first, the second
|
||||
-- and the third derivative.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C3.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
DN (myclass; C: HCurve2d from Adaptor2d; U : Real; N : Integer) returns Vec2d from gp
|
||||
--- Purpose :
|
||||
-- The returned vector gives the value of the derivative for the
|
||||
-- order of derivation N.
|
||||
raises
|
||||
DomainError from Standard,
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not CN.
|
||||
OutOfRange from Standard
|
||||
--- Purpose : Raised if N < 1.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Resolution(myclass; C: HCurve2d from Adaptor2d; R3d : Real) returns Real
|
||||
---Purpose : Returns the parametric resolution corresponding
|
||||
-- to the real space resolution <R3d>.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
GetType(myclass; C: HCurve2d from Adaptor2d) returns CurveType from GeomAbs
|
||||
---Purpose: Returns the type of the curve in the current
|
||||
-- interval : Line, Circle, Ellipse, Hyperbola,
|
||||
-- Parabola, BezierCurve, BSplineCurve, OtherCurve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
--
|
||||
-- The following methods must be called when GetType returned
|
||||
-- the corresponding type.
|
||||
--
|
||||
|
||||
Line(myclass; C: HCurve2d from Adaptor2d) returns Lin2d from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Circle(myclass; C: HCurve2d from Adaptor2d) returns Circ2d from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Ellipse(myclass; C: HCurve2d from Adaptor2d) returns Elips2d from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Hyperbola(myclass; C: HCurve2d from Adaptor2d) returns Hypr2d from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Parabola(myclass; C: HCurve2d from Adaptor2d) returns Parab2d from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Bezier(myclass; C: HCurve2d from Adaptor2d) returns BezierCurve from Geom2d
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
BSpline(myclass; C: HCurve2d from Adaptor2d) returns BSplineCurve from Geom2d
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NbSamples(myclass; C: HCurve2d from Adaptor2d; U0,U1: Real from Standard)
|
||||
returns Integer from Standard;
|
||||
|
||||
end HCurve2dTool;
|
||||
|
||||
|
@@ -14,16 +14,20 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_HCurve2dTool.ixx>
|
||||
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <BRepBlend_HCurve2dTool.hxx>
|
||||
#include <Geom2d_BezierCurve.hxx>
|
||||
#include <Geom2d_BSplineCurve.hxx>
|
||||
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
||||
|
||||
//============================================================
|
||||
Standard_Integer BRepBlend_HCurve2dTool::NbSamples (const Handle(Adaptor2d_HCurve2d)& C,
|
||||
const Standard_Real U0,
|
||||
|
161
src/BRepBlend/BRepBlend_HCurve2dTool.hxx
Normal file
161
src/BRepBlend/BRepBlend_HCurve2dTool.hxx
Normal file
@@ -0,0 +1,161 @@
|
||||
// Created on: 1995-07-17
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_HCurve2dTool_HeaderFile
|
||||
#define _BRepBlend_HCurve2dTool_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class Standard_NoSuchObject;
|
||||
class Standard_DomainError;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class gp_Pnt2d;
|
||||
class gp_Vec2d;
|
||||
class Geom2d_BezierCurve;
|
||||
class Geom2d_BSplineCurve;
|
||||
|
||||
|
||||
|
||||
class BRepBlend_HCurve2dTool
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static Standard_Real FirstParameter (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static Standard_Real LastParameter (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static GeomAbs_Shape Continuity (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
//! Returns the number of intervals for continuity
|
||||
//! <S>. May be one if Continuity(myclass) >= <S>
|
||||
static Standard_Integer NbIntervals (const Handle(Adaptor2d_HCurve2d)& C, const GeomAbs_Shape S);
|
||||
|
||||
//! Stores in <T> the parameters bounding the intervals
|
||||
//! of continuity <S>.
|
||||
//!
|
||||
//! The array must provide enough room to accomodate
|
||||
//! for the parameters. i.e. T.Length() > NbIntervals()
|
||||
static void Intervals (const Handle(Adaptor2d_HCurve2d)& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S);
|
||||
|
||||
static Standard_Boolean IsClosed (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static Standard_Boolean IsPeriodic (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static Standard_Real Period (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
//! Computes the point of parameter U on the curve.
|
||||
static gp_Pnt2d Value (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U);
|
||||
|
||||
//! Computes the point of parameter U on the curve.
|
||||
static void D0 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P);
|
||||
|
||||
//! Computes the point of parameter U on the curve with its
|
||||
//! first derivative.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not C1.
|
||||
static void D1 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V);
|
||||
|
||||
|
||||
//! Returns the point P of parameter U, the first and second
|
||||
//! derivatives V1 and V2.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not C2.
|
||||
static void D2 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2);
|
||||
|
||||
|
||||
//! Returns the point P of parameter U, the first, the second
|
||||
//! and the third derivative.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not C3.
|
||||
static void D3 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3);
|
||||
|
||||
|
||||
//! The returned vector gives the value of the derivative for the
|
||||
//! order of derivation N.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not CN.
|
||||
//! Raised if N < 1.
|
||||
static gp_Vec2d DN (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, const Standard_Integer N);
|
||||
|
||||
//! Returns the parametric resolution corresponding
|
||||
//! to the real space resolution <R3d>.
|
||||
static Standard_Real Resolution (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real R3d);
|
||||
|
||||
//! Returns the type of the curve in the current
|
||||
//! interval : Line, Circle, Ellipse, Hyperbola,
|
||||
//! Parabola, BezierCurve, BSplineCurve, OtherCurve.
|
||||
static GeomAbs_CurveType GetType (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static gp_Lin2d Line (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static gp_Circ2d Circle (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static gp_Elips2d Ellipse (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static gp_Hypr2d Hyperbola (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static gp_Parab2d Parabola (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static Handle(Geom2d_BezierCurve) Bezier (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
static Handle(Geom2d_BSplineCurve) BSpline (const Handle(Adaptor2d_HCurve2d)& C);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamples (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U0, const Standard_Real U1);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_HCurve2dTool.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_HCurve2dTool_HeaderFile
|
@@ -1,236 +0,0 @@
|
||||
-- Created on: 1995-07-17
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class HCurveTool from BRepBlend
|
||||
|
||||
uses
|
||||
Array1OfReal from TColStd,
|
||||
Shape from GeomAbs,
|
||||
CurveType from GeomAbs,
|
||||
Vec from gp,
|
||||
Pnt from gp,
|
||||
Circ from gp,
|
||||
Elips from gp,
|
||||
Hypr from gp,
|
||||
Parab from gp,
|
||||
Lin from gp,
|
||||
BezierCurve from Geom,
|
||||
BSplineCurve from Geom,
|
||||
HCurve from Adaptor3d
|
||||
|
||||
raises
|
||||
|
||||
OutOfRange from Standard,
|
||||
NoSuchObject from Standard,
|
||||
DomainError from Standard
|
||||
|
||||
is
|
||||
|
||||
--
|
||||
-- Global methods - Apply to the whole curve.
|
||||
--
|
||||
|
||||
FirstParameter(myclass; C: HCurve from Adaptor3d) returns Real
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
|
||||
LastParameter(myclass; C: HCurve from Adaptor3d) returns Real
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
--
|
||||
-- Services to break the curves to the expected continuity
|
||||
--
|
||||
-- If for example you need the curve to be C2 and the method
|
||||
-- Continuity returns you something lower than C2 (say C1 for
|
||||
-- example).
|
||||
--
|
||||
-- First compute the number of intervals with the requested
|
||||
-- continuity with the method NbIntervals(). Note that if the
|
||||
-- continuity is higher than the one you need NbIntervals will
|
||||
-- return 1.
|
||||
--
|
||||
-- Then you get the parameters bounding the intervals with the
|
||||
-- method Intervals, using an array of length at least
|
||||
-- NbIntervals()+1.
|
||||
--
|
||||
-- If you need to create a curve with a restricted span you can
|
||||
-- use the method Trim().
|
||||
|
||||
|
||||
Continuity(myclass; C: HCurve from Adaptor3d) returns Shape from GeomAbs
|
||||
---Purpose:
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
NbIntervals(myclass; C: HCurve from Adaptor3d; S : Shape from GeomAbs) returns Integer
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(myclass) >= <S>
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Intervals(myclass; C: HCurve from Adaptor3d; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
--
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
raises
|
||||
OutOfRange from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
IsClosed(myclass; C: HCurve from Adaptor3d) returns Boolean
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
IsPeriodic(myclass; C: HCurve from Adaptor3d) returns Boolean
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Period(myclass; C: HCurve from Adaptor3d) returns Real
|
||||
raises
|
||||
DomainError from Standard -- if the curve is not periodic
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Value(myclass; C: HCurve from Adaptor3d; U : Real) returns Pnt from gp
|
||||
--- Purpose : Computes the point of parameter U on the curve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D0 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp)
|
||||
--- Purpose : Computes the point of parameter U on the curve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D1 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp ; V : out Vec from gp)
|
||||
--- Purpose : Computes the point of parameter U on the curve with its
|
||||
-- first derivative.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C1.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D2 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
|
||||
--- Purpose :
|
||||
-- Returns the point P of parameter U, the first and second
|
||||
-- derivatives V1 and V2.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C2.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D3 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
|
||||
--- Purpose :
|
||||
-- Returns the point P of parameter U, the first, the second
|
||||
-- and the third derivative.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C3.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
DN (myclass; C: HCurve from Adaptor3d; U : Real; N : Integer) returns Vec from gp
|
||||
--- Purpose :
|
||||
-- The returned vector gives the value of the derivative for the
|
||||
-- order of derivation N.
|
||||
raises
|
||||
DomainError from Standard,
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not CN.
|
||||
OutOfRange from Standard
|
||||
--- Purpose : Raised if N < 1.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Resolution(myclass; C: HCurve from Adaptor3d; R3d : Real) returns Real
|
||||
---Purpose : Returns the parametric resolution corresponding
|
||||
-- to the real space resolution <R3d>.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
GetType(myclass; C: HCurve from Adaptor3d) returns CurveType from GeomAbs
|
||||
---Purpose: Returns the type of the curve in the current
|
||||
-- interval : Line, Circle, Ellipse, Hyperbola,
|
||||
-- Parabola, BezierCurve, BSplineCurve, OtherCurve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
--
|
||||
-- The following methods must be called when GetType returned
|
||||
-- the corresponding type.
|
||||
--
|
||||
|
||||
Line(myclass; C: HCurve from Adaptor3d) returns Lin from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Circle(myclass; C: HCurve from Adaptor3d) returns Circ from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Ellipse(myclass; C: HCurve from Adaptor3d) returns Elips from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Hyperbola(myclass; C: HCurve from Adaptor3d) returns Hypr from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Parabola(myclass; C: HCurve from Adaptor3d) returns Parab from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Bezier(myclass; C: HCurve from Adaptor3d) returns BezierCurve from Geom
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
BSpline(myclass; C: HCurve from Adaptor3d) returns BSplineCurve from Geom
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NbSamples(myclass; C: HCurve from Adaptor3d; U0,U1: Real from Standard)
|
||||
returns Integer from Standard;
|
||||
|
||||
end HCurveTool;
|
||||
|
||||
|
@@ -14,16 +14,20 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_HCurveTool.ixx>
|
||||
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <BRepBlend_HCurveTool.hxx>
|
||||
#include <Geom_BezierCurve.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
||||
|
||||
//============================================================
|
||||
Standard_Integer BRepBlend_HCurveTool::NbSamples (const Handle(Adaptor3d_HCurve)& C,
|
||||
const Standard_Real U0,
|
||||
|
161
src/BRepBlend/BRepBlend_HCurveTool.hxx
Normal file
161
src/BRepBlend/BRepBlend_HCurveTool.hxx
Normal file
@@ -0,0 +1,161 @@
|
||||
// Created on: 1995-07-17
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1995-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_HCurveTool_HeaderFile
|
||||
#define _BRepBlend_HCurveTool_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Elips.hxx>
|
||||
#include <gp_Hypr.hxx>
|
||||
#include <gp_Parab.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class Standard_NoSuchObject;
|
||||
class Standard_DomainError;
|
||||
class Adaptor3d_HCurve;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class Geom_BezierCurve;
|
||||
class Geom_BSplineCurve;
|
||||
|
||||
|
||||
|
||||
class BRepBlend_HCurveTool
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static Standard_Real FirstParameter (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Standard_Real LastParameter (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static GeomAbs_Shape Continuity (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
//! Returns the number of intervals for continuity
|
||||
//! <S>. May be one if Continuity(myclass) >= <S>
|
||||
static Standard_Integer NbIntervals (const Handle(Adaptor3d_HCurve)& C, const GeomAbs_Shape S);
|
||||
|
||||
//! Stores in <T> the parameters bounding the intervals
|
||||
//! of continuity <S>.
|
||||
//!
|
||||
//! The array must provide enough room to accomodate
|
||||
//! for the parameters. i.e. T.Length() > NbIntervals()
|
||||
static void Intervals (const Handle(Adaptor3d_HCurve)& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S);
|
||||
|
||||
static Standard_Boolean IsClosed (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Standard_Boolean IsPeriodic (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Standard_Real Period (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
//! Computes the point of parameter U on the curve.
|
||||
static gp_Pnt Value (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U);
|
||||
|
||||
//! Computes the point of parameter U on the curve.
|
||||
static void D0 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P);
|
||||
|
||||
//! Computes the point of parameter U on the curve with its
|
||||
//! first derivative.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not C1.
|
||||
static void D1 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V);
|
||||
|
||||
|
||||
//! Returns the point P of parameter U, the first and second
|
||||
//! derivatives V1 and V2.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not C2.
|
||||
static void D2 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2);
|
||||
|
||||
|
||||
//! Returns the point P of parameter U, the first, the second
|
||||
//! and the third derivative.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not C3.
|
||||
static void D3 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3);
|
||||
|
||||
|
||||
//! The returned vector gives the value of the derivative for the
|
||||
//! order of derivation N.
|
||||
//! Raised if the continuity of the current interval
|
||||
//! is not CN.
|
||||
//! Raised if N < 1.
|
||||
static gp_Vec DN (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, const Standard_Integer N);
|
||||
|
||||
//! Returns the parametric resolution corresponding
|
||||
//! to the real space resolution <R3d>.
|
||||
static Standard_Real Resolution (const Handle(Adaptor3d_HCurve)& C, const Standard_Real R3d);
|
||||
|
||||
//! Returns the type of the curve in the current
|
||||
//! interval : Line, Circle, Ellipse, Hyperbola,
|
||||
//! Parabola, BezierCurve, BSplineCurve, OtherCurve.
|
||||
static GeomAbs_CurveType GetType (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Lin Line (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Circ Circle (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Elips Ellipse (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Hypr Hyperbola (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Parab Parabola (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Handle(Geom_BezierCurve) Bezier (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Handle(Geom_BSplineCurve) BSpline (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamples (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U0, const Standard_Real U1);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_HCurveTool.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_HCurveTool_HeaderFile
|
@@ -1,236 +0,0 @@
|
||||
-- Created on: 1993-12-02
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
|
||||
class Line from BRepBlend inherits TShared from MMgt
|
||||
|
||||
|
||||
uses Point from Blend,
|
||||
SequenceOfPoint from Blend,
|
||||
Extremity from BRepBlend,
|
||||
TypeTrans from IntSurf
|
||||
|
||||
|
||||
raises OutOfRange from Standard
|
||||
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
|
||||
returns Line from BRepBlend;
|
||||
|
||||
|
||||
|
||||
Clear(me: mutable)
|
||||
|
||||
---Purpose: Clears the content of the line.
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
|
||||
Append(me: mutable; P: Point from Blend)
|
||||
|
||||
---Purpose: Adds a point in the line.
|
||||
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
|
||||
Prepend(me: mutable; P: Point from Blend)
|
||||
|
||||
---Purpose: Adds a point in the line at the first place.
|
||||
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
InsertBefore(me : mutable;
|
||||
Index : Integer from Standard;
|
||||
P : Point from Blend)
|
||||
|
||||
---Purpose: Adds a point in the line at the first place.
|
||||
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
|
||||
Remove(me: mutable; FromIndex,ToIndex: Integer from Standard)
|
||||
|
||||
---Purpose: Removes from <me> all the items of
|
||||
-- positions between <FromIndex> and <ToIndex>.
|
||||
-- Raises an exception if the indices are out of bounds.
|
||||
---C++: inline
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Set(me: mutable; TranS1,TranS2: TypeTrans from IntSurf)
|
||||
|
||||
---Purpose: Sets the value of the transition of the line on S1 and
|
||||
-- the line on S2.
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Set(me: mutable; Trans: TypeTrans from IntSurf)
|
||||
|
||||
---Purpose: Sets the value of the transition of the line on a surface
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
SetStartPoints(me: mutable; StartPt1,StartPt2: Extremity from BRepBlend)
|
||||
|
||||
---Purpose: Sets the values of the start points for the line.
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
SetEndPoints(me: mutable; EndPt1,EndPt2: Extremity from BRepBlend)
|
||||
|
||||
---Purpose: Sets tne values of the end points for the line.
|
||||
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
NbPoints(me)
|
||||
|
||||
---Purpose: Returns the number of points in the line.
|
||||
|
||||
returns Integer from Standard
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Point(me; Index: Integer from Standard)
|
||||
|
||||
---Purpose: Returns the point of range Index.
|
||||
|
||||
returns Point from Blend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
raises OutOfRange from Standard
|
||||
--- The exception OutOfRange is raised when Index <=0 or
|
||||
-- Index > NbPoints
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
TransitionOnS1(me)
|
||||
|
||||
---Purpose: Returns the type of the transition of the line defined
|
||||
-- on the first surface. The transition is "constant"
|
||||
-- along the line.
|
||||
-- The transition is IN if the line is oriented in such
|
||||
-- a way that the system of vectors (N,DRac,T) is
|
||||
-- right-handed, where
|
||||
-- N is the normal to the first surface at a point P,
|
||||
-- DRac is a vector tangent to the blending patch,
|
||||
-- oriented towards the valid part of this patch,
|
||||
-- T is the tangent to the line on S1 at P.
|
||||
-- The transitioon is OUT when the system of vectors is
|
||||
-- left-handed.
|
||||
|
||||
returns TypeTrans from IntSurf
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
TransitionOnS2(me)
|
||||
|
||||
---Purpose: Returns the type of the transition of the line defined
|
||||
-- on the second surface. The transition is "constant"
|
||||
-- along the line.
|
||||
|
||||
returns TypeTrans from IntSurf
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
StartPointOnFirst(me)
|
||||
|
||||
---Purpose: Returns the start point on S1.
|
||||
|
||||
returns Extremity from BRepBlend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
StartPointOnSecond(me)
|
||||
|
||||
---Purpose: Returns the start point on S2
|
||||
|
||||
returns Extremity from BRepBlend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
EndPointOnFirst(me)
|
||||
|
||||
---Purpose: Returns the end point on S1.
|
||||
|
||||
returns Extremity from BRepBlend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
EndPointOnSecond(me)
|
||||
|
||||
---Purpose: Returns the point on S2.
|
||||
|
||||
returns Extremity from BRepBlend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
TransitionOnS(me)
|
||||
|
||||
---Purpose: Returns the type of the transition of the line defined
|
||||
-- on the surface.
|
||||
|
||||
returns TypeTrans from IntSurf
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
fields
|
||||
seqpt : SequenceOfPoint from Blend;
|
||||
tras1 : TypeTrans from IntSurf;
|
||||
tras2 : TypeTrans from IntSurf;
|
||||
stp1 : Extremity from BRepBlend;
|
||||
stp2 : Extremity from BRepBlend;
|
||||
endp1 : Extremity from BRepBlend;
|
||||
endp2 : Extremity from BRepBlend;
|
||||
hass1 : Boolean from Standard;
|
||||
hass2 : Boolean from Standard;
|
||||
end;
|
@@ -12,7 +12,12 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_Line.ixx>
|
||||
|
||||
#include <Blend_Point.hxx>
|
||||
#include <BRepBlend_Extremity.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
BRepBlend_Line::BRepBlend_Line ():
|
||||
tras1(IntSurf_Undecided),tras2(IntSurf_Undecided),
|
||||
|
150
src/BRepBlend/BRepBlend_Line.hxx
Normal file
150
src/BRepBlend/BRepBlend_Line.hxx
Normal file
@@ -0,0 +1,150 @@
|
||||
// Created on: 1993-12-02
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_Line_HeaderFile
|
||||
#define _BRepBlend_Line_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
#include <Blend_SequenceOfPoint.hxx>
|
||||
#include <IntSurf_TypeTrans.hxx>
|
||||
#include <BRepBlend_Extremity.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <MMgt_TShared.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class Blend_Point;
|
||||
class BRepBlend_Extremity;
|
||||
|
||||
|
||||
class BRepBlend_Line;
|
||||
DEFINE_STANDARD_HANDLE(BRepBlend_Line, MMgt_TShared)
|
||||
|
||||
|
||||
class BRepBlend_Line : public MMgt_TShared
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_Line();
|
||||
|
||||
//! Clears the content of the line.
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
//! Adds a point in the line.
|
||||
void Append (const Blend_Point& P);
|
||||
|
||||
//! Adds a point in the line at the first place.
|
||||
void Prepend (const Blend_Point& P);
|
||||
|
||||
//! Adds a point in the line at the first place.
|
||||
void InsertBefore (const Standard_Integer Index, const Blend_Point& P);
|
||||
|
||||
//! Removes from <me> all the items of
|
||||
//! positions between <FromIndex> and <ToIndex>.
|
||||
//! Raises an exception if the indices are out of bounds.
|
||||
void Remove (const Standard_Integer FromIndex, const Standard_Integer ToIndex);
|
||||
|
||||
//! Sets the value of the transition of the line on S1 and
|
||||
//! the line on S2.
|
||||
Standard_EXPORT void Set (const IntSurf_TypeTrans TranS1, const IntSurf_TypeTrans TranS2);
|
||||
|
||||
//! Sets the value of the transition of the line on a surface
|
||||
Standard_EXPORT void Set (const IntSurf_TypeTrans Trans);
|
||||
|
||||
//! Sets the values of the start points for the line.
|
||||
void SetStartPoints (const BRepBlend_Extremity& StartPt1, const BRepBlend_Extremity& StartPt2);
|
||||
|
||||
//! Sets tne values of the end points for the line.
|
||||
void SetEndPoints (const BRepBlend_Extremity& EndPt1, const BRepBlend_Extremity& EndPt2);
|
||||
|
||||
//! Returns the number of points in the line.
|
||||
Standard_Integer NbPoints() const;
|
||||
|
||||
//! Returns the point of range Index.
|
||||
const Blend_Point& Point (const Standard_Integer Index) const;
|
||||
|
||||
//! Returns the type of the transition of the line defined
|
||||
//! on the first surface. The transition is "constant"
|
||||
//! along the line.
|
||||
//! The transition is IN if the line is oriented in such
|
||||
//! a way that the system of vectors (N,DRac,T) is
|
||||
//! right-handed, where
|
||||
//! N is the normal to the first surface at a point P,
|
||||
//! DRac is a vector tangent to the blending patch,
|
||||
//! oriented towards the valid part of this patch,
|
||||
//! T is the tangent to the line on S1 at P.
|
||||
//! The transitioon is OUT when the system of vectors is
|
||||
//! left-handed.
|
||||
IntSurf_TypeTrans TransitionOnS1() const;
|
||||
|
||||
//! Returns the type of the transition of the line defined
|
||||
//! on the second surface. The transition is "constant"
|
||||
//! along the line.
|
||||
IntSurf_TypeTrans TransitionOnS2() const;
|
||||
|
||||
//! Returns the start point on S1.
|
||||
const BRepBlend_Extremity& StartPointOnFirst() const;
|
||||
|
||||
//! Returns the start point on S2
|
||||
const BRepBlend_Extremity& StartPointOnSecond() const;
|
||||
|
||||
//! Returns the end point on S1.
|
||||
const BRepBlend_Extremity& EndPointOnFirst() const;
|
||||
|
||||
//! Returns the point on S2.
|
||||
const BRepBlend_Extremity& EndPointOnSecond() const;
|
||||
|
||||
//! Returns the type of the transition of the line defined
|
||||
//! on the surface.
|
||||
IntSurf_TypeTrans TransitionOnS() const;
|
||||
|
||||
|
||||
|
||||
|
||||
DEFINE_STANDARD_RTTI(BRepBlend_Line,MMgt_TShared)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Blend_SequenceOfPoint seqpt;
|
||||
IntSurf_TypeTrans tras1;
|
||||
IntSurf_TypeTrans tras2;
|
||||
BRepBlend_Extremity stp1;
|
||||
BRepBlend_Extremity stp2;
|
||||
BRepBlend_Extremity endp1;
|
||||
BRepBlend_Extremity endp2;
|
||||
Standard_Boolean hass1;
|
||||
Standard_Boolean hass2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_Line.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_Line_HeaderFile
|
@@ -1,117 +0,0 @@
|
||||
-- Created on: 1993-12-02
|
||||
-- Created by: Jacques GOUSSARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class PointOnRst from BRepBlend
|
||||
|
||||
|
||||
---Purpose: Definition of an intersection point between a line
|
||||
-- and a restriction on a surface.
|
||||
-- Such a point is contains geometrical informations (see
|
||||
-- the Value method) and logical informations.
|
||||
|
||||
|
||||
uses Transition from IntSurf,
|
||||
HCurve2d from Adaptor2d
|
||||
|
||||
raises DomainError from Standard
|
||||
|
||||
is
|
||||
|
||||
|
||||
Create
|
||||
|
||||
---Purpose: Empty constructor.
|
||||
|
||||
returns PointOnRst from BRepBlend;
|
||||
|
||||
|
||||
Create( A: HCurve2d from Adaptor2d; Param: Real from Standard;
|
||||
TLine, TArc: Transition from IntSurf)
|
||||
|
||||
---Purpose: Creates the PointOnRst on the arc A, at parameter Param,
|
||||
-- with the transition TLine on the walking line, and
|
||||
-- TArc on the arc A.
|
||||
|
||||
returns PointOnRst from BRepBlend;
|
||||
|
||||
|
||||
|
||||
SetArc(me: in out; A: HCurve2d from Adaptor2d; Param: Real from Standard;
|
||||
TLine, TArc: Transition from IntSurf)
|
||||
|
||||
---Purpose: Sets the values of a point which is on the arc
|
||||
-- A, at parameter Param.
|
||||
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
|
||||
Arc(me)
|
||||
|
||||
---Purpose: Returns the arc of restriction containing the
|
||||
-- vertex.
|
||||
|
||||
returns any HCurve2d from Adaptor2d
|
||||
---C++: return const&
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
TransitionOnLine(me)
|
||||
|
||||
---Purpose: Returns the transition of the point on the
|
||||
-- line on surface.
|
||||
|
||||
returns Transition from IntSurf
|
||||
---C++: return const&
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
TransitionOnArc(me)
|
||||
|
||||
---Purpose: Returns the transition of the point on the arc
|
||||
-- returned by Arc().
|
||||
|
||||
returns Transition from IntSurf
|
||||
---C++: return const&
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
ParameterOnArc(me)
|
||||
|
||||
---Purpose: Returns the parameter of the point on the
|
||||
-- arc returned by the method Arc().
|
||||
|
||||
returns Real from Standard
|
||||
---C++: inline
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
fields
|
||||
|
||||
arc : HCurve2d from Adaptor2d;
|
||||
traline : Transition from IntSurf;
|
||||
traarc : Transition from IntSurf;
|
||||
prm : Real from Standard;
|
||||
|
||||
end PointOnRst;
|
@@ -12,7 +12,11 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_PointOnRst.ixx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <BRepBlend_PointOnRst.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
|
||||
BRepBlend_PointOnRst::BRepBlend_PointOnRst () {}
|
||||
|
||||
|
98
src/BRepBlend/BRepBlend_PointOnRst.hxx
Normal file
98
src/BRepBlend/BRepBlend_PointOnRst.hxx
Normal file
@@ -0,0 +1,98 @@
|
||||
// Created on: 1993-12-02
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_PointOnRst_HeaderFile
|
||||
#define _BRepBlend_PointOnRst_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Standard_DomainError;
|
||||
class IntSurf_Transition;
|
||||
|
||||
|
||||
//! Definition of an intersection point between a line
|
||||
//! and a restriction on a surface.
|
||||
//! Such a point is contains geometrical informations (see
|
||||
//! the Value method) and logical informations.
|
||||
class BRepBlend_PointOnRst
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Empty constructor.
|
||||
Standard_EXPORT BRepBlend_PointOnRst();
|
||||
|
||||
//! Creates the PointOnRst on the arc A, at parameter Param,
|
||||
//! with the transition TLine on the walking line, and
|
||||
//! TArc on the arc A.
|
||||
Standard_EXPORT BRepBlend_PointOnRst(const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc);
|
||||
|
||||
//! Sets the values of a point which is on the arc
|
||||
//! A, at parameter Param.
|
||||
Standard_EXPORT void SetArc (const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc);
|
||||
|
||||
//! Returns the arc of restriction containing the
|
||||
//! vertex.
|
||||
const Handle(Adaptor2d_HCurve2d)& Arc() const;
|
||||
|
||||
//! Returns the transition of the point on the
|
||||
//! line on surface.
|
||||
const IntSurf_Transition& TransitionOnLine() const;
|
||||
|
||||
//! Returns the transition of the point on the arc
|
||||
//! returned by Arc().
|
||||
const IntSurf_Transition& TransitionOnArc() const;
|
||||
|
||||
//! Returns the parameter of the point on the
|
||||
//! arc returned by the method Arc().
|
||||
Standard_Real ParameterOnArc() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor2d_HCurve2d) arc;
|
||||
IntSurf_Transition traline;
|
||||
IntSurf_Transition traarc;
|
||||
Standard_Real prm;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_PointOnRst.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_PointOnRst_HeaderFile
|
@@ -1,346 +0,0 @@
|
||||
-- Created on: 1997-02-06
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class RstRstConstRad from BRepBlend
|
||||
inherits RstRstFunction from Blend
|
||||
|
||||
---Purpose: Copy of CSConstRad with a pcurve on surface
|
||||
-- as support.
|
||||
|
||||
uses Vector from math,
|
||||
Matrix from math,
|
||||
Ax1 from gp,
|
||||
Vec from gp,
|
||||
Vec2d from gp,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Circ from gp,
|
||||
Array1OfPnt from TColgp,
|
||||
Array1OfVec from TColgp,
|
||||
Array1OfPnt2d from TColgp,
|
||||
Array1OfVec2d from TColgp,
|
||||
Array1OfReal from TColStd,
|
||||
Array1OfInteger from TColStd,
|
||||
Shape from GeomAbs,
|
||||
Point from Blend,
|
||||
SectionShape from BlendFunc,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
CurveOnSurface from Adaptor3d,
|
||||
ParameterisationType from Convert,
|
||||
DecrochStatus from Blend
|
||||
|
||||
is
|
||||
|
||||
Create(Surf1 : HSurface from Adaptor3d;
|
||||
Rst1 : HCurve2d from Adaptor2d;
|
||||
Surf2 : HSurface from Adaptor3d;
|
||||
Rst2 : HCurve2d from Adaptor2d;
|
||||
CGuide : HCurve from Adaptor3d)
|
||||
returns RstRstConstRad from BRepBlend;
|
||||
|
||||
NbVariables(me)
|
||||
---Purpose: Returns 2.
|
||||
returns Integer from Standard;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: Returns 2.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me : in out;
|
||||
SurfRef1 : HSurface from Adaptor3d;
|
||||
RstRef1 : HCurve2d from Adaptor2d;
|
||||
SurfRef2 : HSurface from Adaptor3d;
|
||||
RstRef2 : HCurve2d from Adaptor2d);
|
||||
|
||||
Set(me: in out; Param: Real from Standard);
|
||||
|
||||
Set(me: in out; First, Last: Real from Standard);
|
||||
---Purpose: Sets the bounds of the parametric interval on
|
||||
-- the guide line.
|
||||
-- This determines the derivatives in these values if the
|
||||
-- function is not Cn.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
GetMinimalDistance(me)
|
||||
---Purpose: Returns the minimal Distance beetween two
|
||||
-- extremitys of calculed sections.
|
||||
returns Real from Standard
|
||||
is redefined;
|
||||
|
||||
--- TheFollowing methods are called only when
|
||||
-- IsSolution returns Standard_True.
|
||||
|
||||
PointOnRst1(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
PointOnRst2(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
Pnt2dOnRst1(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
Pnt2dOnRst2(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the curve on
|
||||
-- surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
ParameterOnRst1(me)
|
||||
---Purpose: Returns parameter of the point on the curve.
|
||||
returns Real from Standard;
|
||||
|
||||
ParameterOnRst2(me)
|
||||
---Purpose: Returns parameter of the point on the curve.
|
||||
returns Real from Standard;
|
||||
|
||||
IsTangencyPoint(me)
|
||||
returns Boolean from Standard;
|
||||
|
||||
TangentOnRst1(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnRst1(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
TangentOnRst2(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnRst2(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
Decroch(me;
|
||||
Sol : Vector from math;
|
||||
NRst1, TgRst1 : out Vec from gp;
|
||||
NRst2, TgRst2 : out Vec from gp)
|
||||
---Warning: Peut etre appele sans appel prealable a issolution
|
||||
-- mais les valeurs calculees risquent de ne pas avoir
|
||||
-- grand sens.
|
||||
---Purpose: Permet d ' implementer un critere de decrochage
|
||||
-- specifique a la fonction.
|
||||
returns DecrochStatus from Blend
|
||||
is static;
|
||||
|
||||
-- methodes hors template (en plus du create)
|
||||
|
||||
Set(me : in out;
|
||||
Radius : Real from Standard;
|
||||
Choix : Integer from Standard)
|
||||
is static;
|
||||
|
||||
Set(me: in out; TypeSection: SectionShape from BlendFunc)
|
||||
---Purpose: Sets the type of section generation for the
|
||||
-- approximations.
|
||||
is static;
|
||||
|
||||
CenterCircleRst1Rst2(me;
|
||||
PtRst1 : Pnt from gp;
|
||||
PtRst2 : Pnt from gp;
|
||||
np : Vec from gp;
|
||||
Center : out Pnt from gp;
|
||||
VdMed : out Vec from gp)
|
||||
---Purpose: Give the center of circle define by PtRst1, PtRst2 and
|
||||
-- radius ray.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me : in out;
|
||||
Param : Real from Standard;
|
||||
U,V : Real from Standard;
|
||||
Pdeb,Pfin : out Real from Standard;
|
||||
C : out Circ from gp)
|
||||
is static;
|
||||
|
||||
-- Methods for the approximation
|
||||
--
|
||||
IsRational(me) returns Boolean
|
||||
---Purpose: Returns if the section is rationnal
|
||||
is static;
|
||||
|
||||
GetSectionSize(me) returns Real
|
||||
---Purpose: Returns the length of the maximum section
|
||||
is static;
|
||||
|
||||
GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Compute the minimal value of weight for each poles
|
||||
-- of all sections.
|
||||
is static;
|
||||
|
||||
NbIntervals(me; S : Shape from GeomAbs) returns Integer
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(me) >= <S>
|
||||
is static;
|
||||
|
||||
Intervals(me; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
is static;
|
||||
|
||||
GetShape(me : in out;
|
||||
NbPoles : out Integer from Standard;
|
||||
NbKnots : out Integer from Standard;
|
||||
Degree : out Integer from Standard;
|
||||
NbPoles2d : out Integer from Standard)
|
||||
is static;
|
||||
|
||||
GetTolerance(me;
|
||||
BoundTol, SurfTol, AngleTol : Real;
|
||||
Tol3d : out Vector;
|
||||
Tol1D : out Vector )
|
||||
---Purpose: Returns the tolerance to reach in approximation
|
||||
-- to respecte
|
||||
-- BoundTol error at the Boundary
|
||||
-- AngleTol tangent error at the Boundary
|
||||
-- SurfTol error inside the surface.
|
||||
is static;
|
||||
|
||||
Knots(me: in out; TKnots: out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
Mults(me: in out; TMults: out Array1OfInteger from TColStd)
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
|
||||
Section(me: in out; P: Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
D2Poles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
D2Poles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd;
|
||||
D2Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
-- The method returns Standard_True if the derivatives
|
||||
-- are computed, otherwise it returns Standard_False.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Resolution(me;
|
||||
IC2d : Integer from Standard;
|
||||
Tol : Real from Standard;
|
||||
TolU, TolV : out Real from Standard);
|
||||
|
||||
fields
|
||||
|
||||
surf1 : HSurface from Adaptor3d;
|
||||
surf2 : HSurface from Adaptor3d;
|
||||
rst1 : HCurve2d from Adaptor2d;
|
||||
rst2 : HCurve2d from Adaptor2d;
|
||||
cons1 : CurveOnSurface from Adaptor3d;
|
||||
cons2 : CurveOnSurface from Adaptor3d;
|
||||
guide : HCurve from Adaptor3d;
|
||||
tguide : HCurve from Adaptor3d;
|
||||
ptrst1 : Pnt from gp;
|
||||
ptrst2 : Pnt from gp;
|
||||
pt2drst1 : Pnt2d from gp;
|
||||
pt2drst2 : Pnt2d from gp;
|
||||
prmrst1 : Real from Standard;
|
||||
prmrst2 : Real from Standard;
|
||||
istangent: Boolean from Standard;
|
||||
tgrst1 : Vec from gp;
|
||||
tg2drst1 : Vec2d from gp;
|
||||
tgrst2 : Vec from gp;
|
||||
tg2drst2 : Vec2d from gp;
|
||||
|
||||
ray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
ptgui : Pnt from gp;
|
||||
d1gui : Vec from gp;
|
||||
d2gui : Vec from gp;
|
||||
nplan : Vec from gp;
|
||||
normtg : Real from Standard;
|
||||
theD : Real from Standard;
|
||||
|
||||
surfref1 : HSurface from Adaptor3d;
|
||||
rstref1 : HCurve2d from Adaptor2d;
|
||||
surfref2 : HSurface from Adaptor3d;
|
||||
rstref2 : HCurve2d from Adaptor2d;
|
||||
maxang : Real from Standard;
|
||||
minang : Real from Standard;
|
||||
distmin : Real from Standard;
|
||||
mySShape : SectionShape from BlendFunc;
|
||||
myTConv : ParameterisationType from Convert;
|
||||
|
||||
end RstRstConstRad;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -14,17 +14,27 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_RstRstConstRad.ixx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <BlendFunc.hxx>
|
||||
#include <BRepBlend_RstRstConstRad.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <GeomFill.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_NotImplemented.hxx>
|
||||
#include <Precision.hxx>
|
||||
|
||||
#define Eps 1.e-15
|
||||
|
||||
|
258
src/BRepBlend/BRepBlend_RstRstConstRad.hxx
Normal file
258
src/BRepBlend/BRepBlend_RstRstConstRad.hxx
Normal file
@@ -0,0 +1,258 @@
|
||||
// Created on: 1997-02-06
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_RstRstConstRad_HeaderFile
|
||||
#define _BRepBlend_RstRstConstRad_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <BlendFunc_SectionShape.hxx>
|
||||
#include <Convert_ParameterisationType.hxx>
|
||||
#include <Blend_RstRstFunction.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Blend_DecrochStatus.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HCurve;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
class gp_Pnt2d;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
class gp_Circ;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
//! Copy of CSConstRad with a pcurve on surface
|
||||
//! as support.
|
||||
class BRepBlend_RstRstConstRad : public Blend_RstRstFunction
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_RstRstConstRad(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& Rst1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst2, const Handle(Adaptor3d_HCurve)& CGuide);
|
||||
|
||||
//! Returns 2.
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
//! Returns 2.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef1, const Handle(Adaptor2d_HCurve2d)& RstRef1, const Handle(Adaptor3d_HSurface)& SurfRef2, const Handle(Adaptor2d_HCurve2d)& RstRef2);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real Param);
|
||||
|
||||
//! Sets the bounds of the parametric interval on
|
||||
//! the guide line.
|
||||
//! This determines the derivatives in these values if the
|
||||
//! function is not Cn.
|
||||
Standard_EXPORT void Set (const Standard_Real First, const Standard_Real Last);
|
||||
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
//! Returns the minimal Distance beetween two
|
||||
//! extremitys of calculed sections.
|
||||
Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnRst1() const;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnRst2() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst1() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the curve on
|
||||
//! surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst2() const;
|
||||
|
||||
//! Returns parameter of the point on the curve.
|
||||
Standard_EXPORT Standard_Real ParameterOnRst1() const;
|
||||
|
||||
//! Returns parameter of the point on the curve.
|
||||
Standard_EXPORT Standard_Real ParameterOnRst2() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangencyPoint() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnRst1() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnRst1() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnRst2() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnRst2() const;
|
||||
|
||||
//! Permet d ' implementer un critere de decrochage
|
||||
//! specifique a la fonction.
|
||||
Standard_EXPORT Blend_DecrochStatus Decroch (const math_Vector& Sol, gp_Vec& NRst1, gp_Vec& TgRst1, gp_Vec& NRst2, gp_Vec& TgRst2) const;
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real Radius, const Standard_Integer Choix);
|
||||
|
||||
//! Sets the type of section generation for the
|
||||
//! approximations.
|
||||
Standard_EXPORT void Set (const BlendFunc_SectionShape TypeSection);
|
||||
|
||||
//! Give the center of circle define by PtRst1, PtRst2 and
|
||||
//! radius ray.
|
||||
Standard_EXPORT Standard_Boolean CenterCircleRst1Rst2 (const gp_Pnt& PtRst1, const gp_Pnt& PtRst2, const gp_Vec& np, gp_Pnt& Center, gp_Vec& VdMed) const;
|
||||
|
||||
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
|
||||
|
||||
//! Returns if the section is rationnal
|
||||
Standard_EXPORT Standard_Boolean IsRational() const;
|
||||
|
||||
//! Returns the length of the maximum section
|
||||
Standard_EXPORT Standard_Real GetSectionSize() const;
|
||||
|
||||
//! Compute the minimal value of weight for each poles
|
||||
//! of all sections.
|
||||
Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const;
|
||||
|
||||
//! Returns the number of intervals for continuity
|
||||
//! <S>. May be one if Continuity(me) >= <S>
|
||||
Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const;
|
||||
|
||||
//! Stores in <T> the parameters bounding the intervals
|
||||
//! of continuity <S>.
|
||||
//! The array must provide enough room to accomodate
|
||||
//! for the parameters. i.e. T.Length() > NbIntervals()
|
||||
Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const;
|
||||
|
||||
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d);
|
||||
|
||||
//! Returns the tolerance to reach in approximation
|
||||
//! to respecte
|
||||
//! BoundTol error at the Boundary
|
||||
//! AngleTol tangent error at the Boundary
|
||||
//! SurfTol error inside the surface.
|
||||
Standard_EXPORT void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, math_Vector& Tol3d, math_Vector& Tol1D) const;
|
||||
|
||||
Standard_EXPORT void Knots (TColStd_Array1OfReal& TKnots);
|
||||
|
||||
Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults);
|
||||
|
||||
//! Used for the first and last section
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths);
|
||||
|
||||
Standard_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths);
|
||||
|
||||
//! Used for the first and last section
|
||||
//! The method returns Standard_True if the derivatives
|
||||
//! are computed, otherwise it returns Standard_False.
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfVec& D2Poles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColgp_Array1OfVec2d& D2Poles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths, TColStd_Array1OfReal& D2Weigths);
|
||||
|
||||
Standard_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf1;
|
||||
Handle(Adaptor3d_HSurface) surf2;
|
||||
Handle(Adaptor2d_HCurve2d) rst1;
|
||||
Handle(Adaptor2d_HCurve2d) rst2;
|
||||
Adaptor3d_CurveOnSurface cons1;
|
||||
Adaptor3d_CurveOnSurface cons2;
|
||||
Handle(Adaptor3d_HCurve) guide;
|
||||
Handle(Adaptor3d_HCurve) tguide;
|
||||
gp_Pnt ptrst1;
|
||||
gp_Pnt ptrst2;
|
||||
gp_Pnt2d pt2drst1;
|
||||
gp_Pnt2d pt2drst2;
|
||||
Standard_Real prmrst1;
|
||||
Standard_Real prmrst2;
|
||||
Standard_Boolean istangent;
|
||||
gp_Vec tgrst1;
|
||||
gp_Vec2d tg2drst1;
|
||||
gp_Vec tgrst2;
|
||||
gp_Vec2d tg2drst2;
|
||||
Standard_Real ray;
|
||||
Standard_Integer choix;
|
||||
gp_Pnt ptgui;
|
||||
gp_Vec d1gui;
|
||||
gp_Vec d2gui;
|
||||
gp_Vec nplan;
|
||||
Standard_Real normtg;
|
||||
Standard_Real theD;
|
||||
Handle(Adaptor3d_HSurface) surfref1;
|
||||
Handle(Adaptor2d_HCurve2d) rstref1;
|
||||
Handle(Adaptor3d_HSurface) surfref2;
|
||||
Handle(Adaptor2d_HCurve2d) rstref2;
|
||||
Standard_Real maxang;
|
||||
Standard_Real minang;
|
||||
Standard_Real distmin;
|
||||
BlendFunc_SectionShape mySShape;
|
||||
Convert_ParameterisationType myTConv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_RstRstConstRad_HeaderFile
|
@@ -1,351 +0,0 @@
|
||||
-- Created on: 1997-02-06
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class RstRstEvolRad from BRepBlend
|
||||
inherits RstRstFunction from Blend
|
||||
|
||||
---Purpose: Function to approximate by AppSurface for
|
||||
-- Edge/Edge and evolutif radius
|
||||
|
||||
uses Vector from math,
|
||||
Matrix from math,
|
||||
Ax1 from gp,
|
||||
Vec from gp,
|
||||
Vec2d from gp,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Circ from gp,
|
||||
Array1OfPnt from TColgp,
|
||||
Array1OfVec from TColgp,
|
||||
Array1OfPnt2d from TColgp,
|
||||
Array1OfVec2d from TColgp,
|
||||
Array1OfReal from TColStd,
|
||||
Array1OfInteger from TColStd,
|
||||
Shape from GeomAbs,
|
||||
Point from Blend,
|
||||
SectionShape from BlendFunc,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
CurveOnSurface from Adaptor3d,
|
||||
ParameterisationType from Convert,
|
||||
DecrochStatus from Blend,
|
||||
Function from Law
|
||||
|
||||
is
|
||||
|
||||
Create(Surf1 : HSurface from Adaptor3d;
|
||||
Rst1 : HCurve2d from Adaptor2d;
|
||||
Surf2 : HSurface from Adaptor3d;
|
||||
Rst2 : HCurve2d from Adaptor2d;
|
||||
CGuide : HCurve from Adaptor3d;
|
||||
Evol : Function from Law)
|
||||
returns RstRstEvolRad from BRepBlend;
|
||||
|
||||
NbVariables(me)
|
||||
---Purpose: Returns 2.
|
||||
returns Integer from Standard;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: Returns 2.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me : in out;
|
||||
SurfRef1 : HSurface from Adaptor3d;
|
||||
RstRef1 : HCurve2d from Adaptor2d;
|
||||
SurfRef2 : HSurface from Adaptor3d;
|
||||
RstRef2 : HCurve2d from Adaptor2d);
|
||||
|
||||
Set(me: in out; Param: Real from Standard);
|
||||
|
||||
Set(me: in out; First, Last: Real from Standard);
|
||||
---Purpose: Sets the bounds of the parametric interval on
|
||||
-- the guide line.
|
||||
-- This determines the derivatives in these values if the
|
||||
-- function is not Cn.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
GetMinimalDistance(me)
|
||||
---Purpose: Returns the minimal Distance beetween two
|
||||
-- extremitys of calculed sections.
|
||||
returns Real from Standard
|
||||
is redefined;
|
||||
|
||||
--- TheFollowing methods are called only when
|
||||
-- IsSolution returns Standard_True.
|
||||
|
||||
PointOnRst1(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
PointOnRst2(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
Pnt2dOnRst1(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
Pnt2dOnRst2(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the curve on
|
||||
-- surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
ParameterOnRst1(me)
|
||||
---Purpose: Returns parameter of the point on the curve.
|
||||
returns Real from Standard;
|
||||
|
||||
ParameterOnRst2(me)
|
||||
---Purpose: Returns parameter of the point on the curve.
|
||||
returns Real from Standard;
|
||||
|
||||
IsTangencyPoint(me)
|
||||
returns Boolean from Standard;
|
||||
|
||||
TangentOnRst1(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnRst1(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
TangentOnRst2(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnRst2(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
Decroch(me;
|
||||
Sol : Vector from math;
|
||||
NRst1, TgRst1 : out Vec from gp;
|
||||
NRst2, TgRst2 : out Vec from gp)
|
||||
|
||||
---Purpose: Enables implementation of a criterion of decrochage
|
||||
-- specific to the function.
|
||||
---Warning: Can be called without previous call of issolution
|
||||
-- but the calculated values risquent de ne pas avoir
|
||||
-- grand sens.
|
||||
returns DecrochStatus from Blend
|
||||
is static;
|
||||
|
||||
-- methodes hors template (en plus du create)
|
||||
|
||||
Set(me : in out;
|
||||
Choix : Integer from Standard)
|
||||
is static;
|
||||
|
||||
Set(me: in out; TypeSection: SectionShape from BlendFunc)
|
||||
---Purpose: Sets the type of section generation for the
|
||||
-- approximations.
|
||||
is static;
|
||||
|
||||
CenterCircleRst1Rst2(me;
|
||||
PtRst1 : Pnt from gp;
|
||||
PtRst2 : Pnt from gp;
|
||||
np : Vec from gp;
|
||||
Center : out Pnt from gp;
|
||||
VdMed : out Vec from gp)
|
||||
---Purpose: Gives the center of circle defined by PtRst1, PtRst2 and
|
||||
-- radius ray.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me : in out;
|
||||
Param : Real from Standard;
|
||||
U,V : Real from Standard;
|
||||
Pdeb,Pfin : out Real from Standard;
|
||||
C : out Circ from gp)
|
||||
is static;
|
||||
|
||||
-- Methods for the approximation
|
||||
--
|
||||
IsRational(me) returns Boolean
|
||||
---Purpose: Returns if the section is rationnal
|
||||
is static;
|
||||
|
||||
GetSectionSize(me) returns Real
|
||||
---Purpose: Returns the length of the maximum section
|
||||
is static;
|
||||
|
||||
GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Compute the minimal value of weight for each poles
|
||||
-- of all sections.
|
||||
is static;
|
||||
|
||||
NbIntervals(me; S : Shape from GeomAbs) returns Integer
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(me) >= <S>
|
||||
is static;
|
||||
|
||||
Intervals(me; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
is static;
|
||||
|
||||
GetShape(me : in out;
|
||||
NbPoles : out Integer from Standard;
|
||||
NbKnots : out Integer from Standard;
|
||||
Degree : out Integer from Standard;
|
||||
NbPoles2d : out Integer from Standard)
|
||||
is static;
|
||||
|
||||
GetTolerance(me;
|
||||
BoundTol, SurfTol, AngleTol : Real;
|
||||
Tol3d : out Vector;
|
||||
Tol1D : out Vector )
|
||||
---Purpose: Returns the tolerance to reach in approximation
|
||||
-- to respecte
|
||||
-- BoundTol error at the Boundary
|
||||
-- AngleTol tangent error at the Boundary
|
||||
-- SurfTol error inside the surface.
|
||||
is static;
|
||||
|
||||
Knots(me: in out; TKnots: out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
Mults(me: in out; TMults: out Array1OfInteger from TColStd)
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
|
||||
Section(me: in out; P: Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
D2Poles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
D2Poles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd;
|
||||
D2Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
-- The method returns Standard_True if the derivatives
|
||||
-- are computed, otherwise it returns Standard_False.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Resolution(me;
|
||||
IC2d : Integer from Standard;
|
||||
Tol : Real from Standard;
|
||||
TolU, TolV : out Real from Standard);
|
||||
|
||||
fields
|
||||
|
||||
surf1 : HSurface from Adaptor3d;
|
||||
surf2 : HSurface from Adaptor3d;
|
||||
rst1 : HCurve2d from Adaptor2d;
|
||||
rst2 : HCurve2d from Adaptor2d;
|
||||
cons1 : CurveOnSurface from Adaptor3d;
|
||||
cons2 : CurveOnSurface from Adaptor3d;
|
||||
guide : HCurve from Adaptor3d;
|
||||
tguide : HCurve from Adaptor3d;
|
||||
ptrst1 : Pnt from gp;
|
||||
ptrst2 : Pnt from gp;
|
||||
pt2drst1 : Pnt2d from gp;
|
||||
pt2drst2 : Pnt2d from gp;
|
||||
prmrst1 : Real from Standard;
|
||||
prmrst2 : Real from Standard;
|
||||
istangent: Boolean from Standard;
|
||||
tgrst1 : Vec from gp;
|
||||
tg2drst1 : Vec2d from gp;
|
||||
tgrst2 : Vec from gp;
|
||||
tg2drst2 : Vec2d from gp;
|
||||
|
||||
ray : Real from Standard;
|
||||
dray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
ptgui : Pnt from gp;
|
||||
d1gui : Vec from gp;
|
||||
d2gui : Vec from gp;
|
||||
nplan : Vec from gp;
|
||||
normtg : Real from Standard;
|
||||
theD : Real from Standard;
|
||||
|
||||
surfref1 : HSurface from Adaptor3d;
|
||||
rstref1 : HCurve2d from Adaptor2d;
|
||||
surfref2 : HSurface from Adaptor3d;
|
||||
rstref2 : HCurve2d from Adaptor2d;
|
||||
maxang : Real from Standard;
|
||||
minang : Real from Standard;
|
||||
distmin : Real from Standard;
|
||||
mySShape : SectionShape from BlendFunc;
|
||||
myTConv : ParameterisationType from Convert;
|
||||
tevol : Function from Law ;
|
||||
fevol : Function from Law ;
|
||||
|
||||
end RstRstEvolRad;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -14,18 +14,29 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_RstRstEvolRad.ixx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <BlendFunc.hxx>
|
||||
#include <BRepBlend_RstRstEvolRad.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <GeomFill.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Law_Function.hxx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_NotImplemented.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
|
||||
#define Eps 1.e-15
|
||||
|
||||
|
262
src/BRepBlend/BRepBlend_RstRstEvolRad.hxx
Normal file
262
src/BRepBlend/BRepBlend_RstRstEvolRad.hxx
Normal file
@@ -0,0 +1,262 @@
|
||||
// Created on: 1997-02-06
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_RstRstEvolRad_HeaderFile
|
||||
#define _BRepBlend_RstRstEvolRad_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <BlendFunc_SectionShape.hxx>
|
||||
#include <Convert_ParameterisationType.hxx>
|
||||
#include <Blend_RstRstFunction.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Blend_DecrochStatus.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HCurve;
|
||||
class Law_Function;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
class gp_Pnt2d;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
class gp_Circ;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
//! Function to approximate by AppSurface for
|
||||
//! Edge/Edge and evolutif radius
|
||||
class BRepBlend_RstRstEvolRad : public Blend_RstRstFunction
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_RstRstEvolRad(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& Rst1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst2, const Handle(Adaptor3d_HCurve)& CGuide, const Handle(Law_Function)& Evol);
|
||||
|
||||
//! Returns 2.
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
//! Returns 2.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef1, const Handle(Adaptor2d_HCurve2d)& RstRef1, const Handle(Adaptor3d_HSurface)& SurfRef2, const Handle(Adaptor2d_HCurve2d)& RstRef2);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real Param);
|
||||
|
||||
//! Sets the bounds of the parametric interval on
|
||||
//! the guide line.
|
||||
//! This determines the derivatives in these values if the
|
||||
//! function is not Cn.
|
||||
Standard_EXPORT void Set (const Standard_Real First, const Standard_Real Last);
|
||||
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
//! Returns the minimal Distance beetween two
|
||||
//! extremitys of calculed sections.
|
||||
Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnRst1() const;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnRst2() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst1() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the curve on
|
||||
//! surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst2() const;
|
||||
|
||||
//! Returns parameter of the point on the curve.
|
||||
Standard_EXPORT Standard_Real ParameterOnRst1() const;
|
||||
|
||||
//! Returns parameter of the point on the curve.
|
||||
Standard_EXPORT Standard_Real ParameterOnRst2() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangencyPoint() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnRst1() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnRst1() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnRst2() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnRst2() const;
|
||||
|
||||
//! Enables implementation of a criterion of decrochage
|
||||
//! specific to the function.
|
||||
Standard_EXPORT Blend_DecrochStatus Decroch (const math_Vector& Sol, gp_Vec& NRst1, gp_Vec& TgRst1, gp_Vec& NRst2, gp_Vec& TgRst2) const;
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Integer Choix);
|
||||
|
||||
//! Sets the type of section generation for the
|
||||
//! approximations.
|
||||
Standard_EXPORT void Set (const BlendFunc_SectionShape TypeSection);
|
||||
|
||||
//! Gives the center of circle defined by PtRst1, PtRst2 and
|
||||
//! radius ray.
|
||||
Standard_EXPORT Standard_Boolean CenterCircleRst1Rst2 (const gp_Pnt& PtRst1, const gp_Pnt& PtRst2, const gp_Vec& np, gp_Pnt& Center, gp_Vec& VdMed) const;
|
||||
|
||||
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
|
||||
|
||||
//! Returns if the section is rationnal
|
||||
Standard_EXPORT Standard_Boolean IsRational() const;
|
||||
|
||||
//! Returns the length of the maximum section
|
||||
Standard_EXPORT Standard_Real GetSectionSize() const;
|
||||
|
||||
//! Compute the minimal value of weight for each poles
|
||||
//! of all sections.
|
||||
Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const;
|
||||
|
||||
//! Returns the number of intervals for continuity
|
||||
//! <S>. May be one if Continuity(me) >= <S>
|
||||
Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const;
|
||||
|
||||
//! Stores in <T> the parameters bounding the intervals
|
||||
//! of continuity <S>.
|
||||
//! The array must provide enough room to accomodate
|
||||
//! for the parameters. i.e. T.Length() > NbIntervals()
|
||||
Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const;
|
||||
|
||||
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d);
|
||||
|
||||
//! Returns the tolerance to reach in approximation
|
||||
//! to respecte
|
||||
//! BoundTol error at the Boundary
|
||||
//! AngleTol tangent error at the Boundary
|
||||
//! SurfTol error inside the surface.
|
||||
Standard_EXPORT void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, math_Vector& Tol3d, math_Vector& Tol1D) const;
|
||||
|
||||
Standard_EXPORT void Knots (TColStd_Array1OfReal& TKnots);
|
||||
|
||||
Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults);
|
||||
|
||||
//! Used for the first and last section
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths);
|
||||
|
||||
Standard_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths);
|
||||
|
||||
//! Used for the first and last section
|
||||
//! The method returns Standard_True if the derivatives
|
||||
//! are computed, otherwise it returns Standard_False.
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfVec& D2Poles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColgp_Array1OfVec2d& D2Poles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths, TColStd_Array1OfReal& D2Weigths);
|
||||
|
||||
Standard_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf1;
|
||||
Handle(Adaptor3d_HSurface) surf2;
|
||||
Handle(Adaptor2d_HCurve2d) rst1;
|
||||
Handle(Adaptor2d_HCurve2d) rst2;
|
||||
Adaptor3d_CurveOnSurface cons1;
|
||||
Adaptor3d_CurveOnSurface cons2;
|
||||
Handle(Adaptor3d_HCurve) guide;
|
||||
Handle(Adaptor3d_HCurve) tguide;
|
||||
gp_Pnt ptrst1;
|
||||
gp_Pnt ptrst2;
|
||||
gp_Pnt2d pt2drst1;
|
||||
gp_Pnt2d pt2drst2;
|
||||
Standard_Real prmrst1;
|
||||
Standard_Real prmrst2;
|
||||
Standard_Boolean istangent;
|
||||
gp_Vec tgrst1;
|
||||
gp_Vec2d tg2drst1;
|
||||
gp_Vec tgrst2;
|
||||
gp_Vec2d tg2drst2;
|
||||
Standard_Real ray;
|
||||
Standard_Real dray;
|
||||
Standard_Integer choix;
|
||||
gp_Pnt ptgui;
|
||||
gp_Vec d1gui;
|
||||
gp_Vec d2gui;
|
||||
gp_Vec nplan;
|
||||
Standard_Real normtg;
|
||||
Standard_Real theD;
|
||||
Handle(Adaptor3d_HSurface) surfref1;
|
||||
Handle(Adaptor2d_HCurve2d) rstref1;
|
||||
Handle(Adaptor3d_HSurface) surfref2;
|
||||
Handle(Adaptor2d_HCurve2d) rstref2;
|
||||
Standard_Real maxang;
|
||||
Standard_Real minang;
|
||||
Standard_Real distmin;
|
||||
BlendFunc_SectionShape mySShape;
|
||||
Convert_ParameterisationType myTConv;
|
||||
Handle(Law_Function) tevol;
|
||||
Handle(Law_Function) fevol;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_RstRstEvolRad_HeaderFile
|
@@ -1,273 +0,0 @@
|
||||
-- Created on: 1997-01-23
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class RstRstLineBuilder from BRepBlend
|
||||
|
||||
---Purpose: This class processes the data resulting from
|
||||
-- Blend_CSWalking but it takes in consideration the Surface
|
||||
-- supporting the curve to detect the breakpoint.
|
||||
--
|
||||
-- As a result, the criteria of distribution of
|
||||
-- points on the line become more flexible because it
|
||||
-- should calculate values approached
|
||||
-- by an approximation of continued functions based on the
|
||||
-- Blend_RstRstFunction.
|
||||
--
|
||||
-- Thus this pseudo path necessitates 3 criteria of
|
||||
-- regrouping :
|
||||
--
|
||||
-- 1) exit of the domain of the curve
|
||||
--
|
||||
-- 2) exit of the domain of the surface
|
||||
--
|
||||
-- 3) stall as there is a solution of problem
|
||||
-- surf/surf within the domain of the surface
|
||||
-- of support of the restriction.
|
||||
--
|
||||
-- Construction of a BRepBlend_Line between two pcurves
|
||||
-- from an approached starting solution. The output
|
||||
-- entries of this builder are of the same nature
|
||||
-- as of a traditional walking, but the requirements
|
||||
-- to the Line are not the same. If the determination of validity range is always
|
||||
-- guaranteed, the criteria of correct repartition of sections
|
||||
-- before smoothing are not respected. The resulting Line
|
||||
-- is f(t) oriented.
|
||||
|
||||
uses Point from Blend,
|
||||
Status from Blend,
|
||||
DecrochStatus from Blend,
|
||||
RstRstFunction from Blend,
|
||||
FuncInv from Blend,
|
||||
SurfCurvFuncInv from Blend,
|
||||
CurvPointFuncInv from Blend,
|
||||
Vector from math,
|
||||
Matrix from math,
|
||||
State from TopAbs,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Vec from gp,
|
||||
Vec2d from gp,
|
||||
HArray1OfReal from TColStd,
|
||||
Transition from IntSurf,
|
||||
HVertex from Adaptor3d,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
TopolTool from Adaptor3d,
|
||||
Line from BRepBlend,
|
||||
Extremity from BRepBlend
|
||||
|
||||
is
|
||||
|
||||
Create(Surf1 : HSurface from Adaptor3d;
|
||||
Rst1 : HCurve2d from Adaptor2d;
|
||||
Domain1 : TopolTool from Adaptor3d;
|
||||
Surf2 : HSurface from Adaptor3d;
|
||||
Rst2 : HCurve2d from Adaptor2d;
|
||||
Domain2 : TopolTool from Adaptor3d)
|
||||
returns RstRstLineBuilder from BRepBlend;
|
||||
|
||||
Perform(me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
Finv1 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP1 : in out CurvPointFuncInv from Blend;
|
||||
Finv2 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP2 : in out CurvPointFuncInv from Blend;
|
||||
Pdep : Real from Standard;
|
||||
Pmax : Real from Standard;
|
||||
MaxStep : Real from Standard;
|
||||
TolGuide : Real from Standard;
|
||||
Soldep : Vector from math;
|
||||
Tolesp : Real from Standard;
|
||||
Fleche : Real from Standard;
|
||||
Appro : Boolean from Standard = Standard_False)
|
||||
is static;
|
||||
|
||||
PerformFirstSection(me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
Finv1 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP1 : in out CurvPointFuncInv from Blend;
|
||||
Finv2 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP2 : in out CurvPointFuncInv from Blend;
|
||||
Pdep : Real from Standard;
|
||||
Pmax : Real from Standard;
|
||||
Soldep : Vector from math;
|
||||
Tolesp : Real from Standard;
|
||||
TolGuide : Real from Standard;
|
||||
RecRst1 : Boolean from Standard;
|
||||
RecP1 : Boolean from Standard;
|
||||
RecRst2 : Boolean from Standard;
|
||||
RecP2 : Boolean from Standard;
|
||||
Psol : out Real from Standard;
|
||||
ParSol : out Vector from math)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Complete(me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
Finv1 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP1 : in out CurvPointFuncInv from Blend;
|
||||
Finv2 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP2 : in out CurvPointFuncInv from Blend;
|
||||
Pmin : Real from Standard)
|
||||
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
InternalPerform (me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
Finv1 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP1 : in out CurvPointFuncInv from Blend;
|
||||
Finv2 : in out SurfCurvFuncInv from Blend;
|
||||
FinvP2 : in out CurvPointFuncInv from Blend;
|
||||
Bound : Real from Standard)
|
||||
is static private;
|
||||
|
||||
Recadre1(me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
Finv : in out SurfCurvFuncInv from Blend;
|
||||
Solinv : out Vector from math;
|
||||
IsVtx : out Boolean from Standard;
|
||||
Vtx : out HVertex from Adaptor3d)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
Recadre2(me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
Finv : in out SurfCurvFuncInv from Blend;
|
||||
Solinv : out Vector from math;
|
||||
IsVtx : out Boolean from Standard;
|
||||
Vtx : out HVertex from Adaptor3d)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
Recadre1(me : in out;
|
||||
FinvP : in out CurvPointFuncInv from Blend;
|
||||
Solinv : out Vector from math;
|
||||
IsVtx : out Boolean from Standard;
|
||||
Vtx : out HVertex from Adaptor3d)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
Recadre2(me : in out;
|
||||
FinvP : in out CurvPointFuncInv from Blend;
|
||||
Solinv : out Vector from math;
|
||||
IsVtx : out Boolean from Standard;
|
||||
Vtx : out HVertex from Adaptor3d)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
IsDone(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Line(me)
|
||||
returns Line from BRepBlend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
is static;
|
||||
|
||||
Decroch1Start(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Decroch1End(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Decroch2Start(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Decroch2End(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Transition(me : in out;
|
||||
OnFirst : Boolean from Standard;
|
||||
Arc : HCurve2d from Adaptor2d;
|
||||
Param : Real from Standard;
|
||||
TLine,TArc : out Transition from IntSurf)
|
||||
is static private;
|
||||
|
||||
MakeExtremity(me : in out;
|
||||
Extrem : in out Extremity from BRepBlend;
|
||||
OnFirst : Boolean from Standard;
|
||||
Arc : HCurve2d from Adaptor2d;
|
||||
Param : Real from Standard;
|
||||
IsVtx : Boolean from Standard;
|
||||
Vtx : HVertex from Adaptor3d)
|
||||
is static private;
|
||||
|
||||
CheckDeflectionOnRst1(me : in out;
|
||||
CurPoint : Point from Blend)
|
||||
returns Status from Blend
|
||||
is static private;
|
||||
|
||||
CheckDeflectionOnRst2(me : in out;
|
||||
CurPoint : Point from Blend)
|
||||
returns Status from Blend
|
||||
is static private;
|
||||
|
||||
TestArret(me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
TestDeflection : Boolean from Standard;
|
||||
State : Status from Blend)
|
||||
returns Status from Blend
|
||||
is static private;
|
||||
|
||||
CheckInside(me : in out;
|
||||
Func : in out RstRstFunction from Blend;
|
||||
SituOnC1 : out State from TopAbs;
|
||||
SituOnC2 : out State from TopAbs;
|
||||
Decroch : out DecrochStatus from Blend)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
fields
|
||||
|
||||
done : Boolean from Standard;
|
||||
line : Line from BRepBlend;
|
||||
sol : Vector from math;
|
||||
surf1 : HSurface from Adaptor3d;
|
||||
domain1 : TopolTool from Adaptor3d;
|
||||
surf2 : HSurface from Adaptor3d;
|
||||
domain2 : TopolTool from Adaptor3d;
|
||||
rst1 : HCurve2d from Adaptor2d;
|
||||
rst2 : HCurve2d from Adaptor2d;
|
||||
|
||||
tolesp : Real from Standard;
|
||||
tolgui : Real from Standard;
|
||||
pasmax : Real from Standard;
|
||||
fleche : Real from Standard;
|
||||
param : Real from Standard;
|
||||
previousP : Point from Blend;
|
||||
rebrou : Boolean from Standard;
|
||||
iscomplete : Boolean from Standard;
|
||||
comptra : Boolean from Standard;
|
||||
sens : Real from Standard;
|
||||
decrochdeb : DecrochStatus from Blend;
|
||||
decrochfin : DecrochStatus from Blend;
|
||||
|
||||
end RstRstLineBuilder from BRepBlend;
|
||||
|
||||
|
||||
|
||||
|
@@ -14,18 +14,29 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <BRepBlend_RstRstLineBuilder.ixx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HVertex.hxx>
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <Blend_CurvPointFuncInv.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Blend_RstRstFunction.hxx>
|
||||
#include <Blend_SurfCurvFuncInv.hxx>
|
||||
#include <BRepBlend_BlendTool.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
#include <IntSurf.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <BRepBlend_Extremity.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <BRepBlend_RstRstLineBuilder.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <IntSurf.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
|
||||
#include <stdio.h>
|
||||
#ifdef OCCT_DEBUG
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
167
src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx
Normal file
167
src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx
Normal file
@@ -0,0 +1,167 @@
|
||||
// Created on: 1997-01-23
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_RstRstLineBuilder_HeaderFile
|
||||
#define _BRepBlend_RstRstLineBuilder_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Blend_DecrochStatus.hxx>
|
||||
#include <Blend_Status.hxx>
|
||||
#include <TopAbs_State.hxx>
|
||||
class BRepBlend_Line;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_TopolTool;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Blend_RstRstFunction;
|
||||
class Blend_SurfCurvFuncInv;
|
||||
class Blend_CurvPointFuncInv;
|
||||
class Adaptor3d_HVertex;
|
||||
class IntSurf_Transition;
|
||||
class BRepBlend_Extremity;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
//! This class processes the data resulting from
|
||||
//! Blend_CSWalking but it takes in consideration the Surface
|
||||
//! supporting the curve to detect the breakpoint.
|
||||
//!
|
||||
//! As a result, the criteria of distribution of
|
||||
//! points on the line become more flexible because it
|
||||
//! should calculate values approached
|
||||
//! by an approximation of continued functions based on the
|
||||
//! Blend_RstRstFunction.
|
||||
//!
|
||||
//! Thus this pseudo path necessitates 3 criteria of
|
||||
//! regrouping :
|
||||
//!
|
||||
//! 1) exit of the domain of the curve
|
||||
//!
|
||||
//! 2) exit of the domain of the surface
|
||||
//!
|
||||
//! 3) stall as there is a solution of problem
|
||||
//! surf/surf within the domain of the surface
|
||||
//! of support of the restriction.
|
||||
//!
|
||||
//! Construction of a BRepBlend_Line between two pcurves
|
||||
//! from an approached starting solution. The output
|
||||
//! entries of this builder are of the same nature
|
||||
//! as of a traditional walking, but the requirements
|
||||
//! to the Line are not the same. If the determination of validity range is always
|
||||
//! guaranteed, the criteria of correct repartition of sections
|
||||
//! before smoothing are not respected. The resulting Line
|
||||
//! is f(t) oriented.
|
||||
class BRepBlend_RstRstLineBuilder
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_RstRstLineBuilder(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& Rst1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst2, const Handle(Adaptor3d_TopolTool)& Domain2);
|
||||
|
||||
Standard_EXPORT void Perform (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False);
|
||||
|
||||
Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Pdep, const Standard_Real Pmax, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real TolGuide, const Standard_Boolean RecRst1, const Standard_Boolean RecP1, const Standard_Boolean RecRst2, const Standard_Boolean RecP2, Standard_Real& Psol, math_Vector& ParSol);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Complete (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Pmin);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
const Handle(BRepBlend_Line)& Line() const;
|
||||
|
||||
Standard_Boolean Decroch1Start() const;
|
||||
|
||||
Standard_Boolean Decroch1End() const;
|
||||
|
||||
Standard_Boolean Decroch2Start() const;
|
||||
|
||||
Standard_Boolean Decroch2End() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void InternalPerform (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Bound);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre1 (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre2 (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre1 (Blend_CurvPointFuncInv& FinvP, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre2 (Blend_CurvPointFuncInv& FinvP, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT void Transition (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc);
|
||||
|
||||
Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Blend_Status CheckDeflectionOnRst1 (const Blend_Point& CurPoint);
|
||||
|
||||
Standard_EXPORT Blend_Status CheckDeflectionOnRst2 (const Blend_Point& CurPoint);
|
||||
|
||||
Standard_EXPORT Blend_Status TestArret (Blend_RstRstFunction& Func, const Standard_Boolean TestDeflection, const Blend_Status State);
|
||||
|
||||
Standard_EXPORT Standard_Boolean CheckInside (Blend_RstRstFunction& Func, TopAbs_State& SituOnC1, TopAbs_State& SituOnC2, Blend_DecrochStatus& Decroch);
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Handle(BRepBlend_Line) line;
|
||||
math_Vector sol;
|
||||
Handle(Adaptor3d_HSurface) surf1;
|
||||
Handle(Adaptor3d_TopolTool) domain1;
|
||||
Handle(Adaptor3d_HSurface) surf2;
|
||||
Handle(Adaptor3d_TopolTool) domain2;
|
||||
Handle(Adaptor2d_HCurve2d) rst1;
|
||||
Handle(Adaptor2d_HCurve2d) rst2;
|
||||
Standard_Real tolesp;
|
||||
Standard_Real tolgui;
|
||||
Standard_Real pasmax;
|
||||
Standard_Real fleche;
|
||||
Standard_Real param;
|
||||
Blend_Point previousP;
|
||||
Standard_Boolean rebrou;
|
||||
Standard_Boolean iscomplete;
|
||||
Standard_Boolean comptra;
|
||||
Standard_Real sens;
|
||||
Blend_DecrochStatus decrochdeb;
|
||||
Blend_DecrochStatus decrochfin;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_RstRstLineBuilder.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_RstRstLineBuilder_HeaderFile
|
25
src/BRepBlend/BRepBlend_Ruled.hxx
Normal file
25
src/BRepBlend/BRepBlend_Ruled.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_Ruled_HeaderFile
|
||||
#define _BRepBlend_Ruled_HeaderFile
|
||||
|
||||
#include <BlendFunc_Ruled.hxx>
|
||||
|
||||
typedef BlendFunc_Ruled BRepBlend_Ruled;
|
||||
|
||||
|
||||
#endif // _BRepBlend_Ruled_HeaderFile
|
25
src/BRepBlend/BRepBlend_RuledInv.hxx
Normal file
25
src/BRepBlend/BRepBlend_RuledInv.hxx
Normal file
@@ -0,0 +1,25 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_RuledInv_HeaderFile
|
||||
#define _BRepBlend_RuledInv_HeaderFile
|
||||
|
||||
#include <BlendFunc_RuledInv.hxx>
|
||||
|
||||
typedef BlendFunc_RuledInv BRepBlend_RuledInv;
|
||||
|
||||
|
||||
#endif // _BRepBlend_RuledInv_HeaderFile
|
@@ -1,107 +0,0 @@
|
||||
-- Created on: 1997-02-21
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfCurvConstRadInv from BRepBlend
|
||||
|
||||
inherits SurfCurvFuncInv from Blend
|
||||
|
||||
---Purpose: Function of reframing between a restriction surface of the
|
||||
-- surface and a curve.
|
||||
-- Class used to compute a solution of the
|
||||
-- surfRstConstRad problem on a done restriction of the
|
||||
-- surface.
|
||||
-- The vector <X> used in Value, Values and Derivatives
|
||||
-- methods has to be the vector of the parametric
|
||||
-- coordinates wguide, wcurv, wrst where wguide is the
|
||||
-- parameter on the guide line, wcurv is the parameter on
|
||||
-- the curve, wrst is the parameter on the restriction on
|
||||
-- the surface.
|
||||
|
||||
|
||||
uses
|
||||
HCurve2d from Adaptor2d,
|
||||
HCurve from Adaptor3d,
|
||||
HSurface from Adaptor3d,
|
||||
Vector from math,
|
||||
Matrix from math
|
||||
|
||||
|
||||
is
|
||||
|
||||
Create(S : HSurface from Adaptor3d;
|
||||
C : HCurve from Adaptor3d;
|
||||
Cg : HCurve from Adaptor3d)
|
||||
returns SurfCurvConstRadInv from BRepBlend;
|
||||
|
||||
Set(me: in out; R: Real from Standard; Choix: Integer from Standard)
|
||||
is static;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me: in out; Rst : HCurve2d from Adaptor2d);
|
||||
---Purpose: Set the restriction on which a solution has to be found.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
---Purpose: Returns in the vector Tolerance the parametric tolerance
|
||||
-- for each of the 3 variables;
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
---Purpose: Returns in the vector InfBound the lowest values allowed
|
||||
-- for each of the 3 variables.
|
||||
-- Returns in the vector SupBound the greatest values allowed
|
||||
-- for each of the 3 variables.
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
---Purpose: Returns Standard_True if Sol is a zero of the function.
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
returns Boolean from Standard;
|
||||
|
||||
fields
|
||||
|
||||
surf : HSurface from Adaptor3d;
|
||||
curv : HCurve from Adaptor3d;
|
||||
guide : HCurve from Adaptor3d;
|
||||
rst : HCurve2d from Adaptor2d;
|
||||
ray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
|
||||
end SurfCurvConstRadInv;
|
||||
|
||||
|
@@ -14,13 +14,17 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_SurfCurvConstRadInv.ixx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <BRepBlend_SurfCurvConstRadInv.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : BRepBlend_SurfCurvConstRadInv
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
BRepBlend_SurfCurvConstRadInv::BRepBlend_SurfCurvConstRadInv
|
||||
(const Handle(Adaptor3d_HSurface)& S,
|
||||
const Handle(Adaptor3d_HCurve)& C,
|
||||
|
125
src/BRepBlend/BRepBlend_SurfCurvConstRadInv.hxx
Normal file
125
src/BRepBlend/BRepBlend_SurfCurvConstRadInv.hxx
Normal file
@@ -0,0 +1,125 @@
|
||||
// Created on: 1997-02-21
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_SurfCurvConstRadInv_HeaderFile
|
||||
#define _BRepBlend_SurfCurvConstRadInv_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Blend_SurfCurvFuncInv.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HCurve;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
//! Function of reframing between a restriction surface of the
|
||||
//! surface and a curve.
|
||||
//! Class used to compute a solution of the
|
||||
//! surfRstConstRad problem on a done restriction of the
|
||||
//! surface.
|
||||
//! The vector <X> used in Value, Values and Derivatives
|
||||
//! methods has to be the vector of the parametric
|
||||
//! coordinates wguide, wcurv, wrst where wguide is the
|
||||
//! parameter on the guide line, wcurv is the parameter on
|
||||
//! the curve, wrst is the parameter on the restriction on
|
||||
//! the surface.
|
||||
class BRepBlend_SurfCurvConstRadInv : public Blend_SurfCurvFuncInv
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_SurfCurvConstRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C, const Handle(Adaptor3d_HCurve)& Cg);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real R, const Standard_Integer Choix);
|
||||
|
||||
//! returns 3.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
//! Set the restriction on which a solution has to be found.
|
||||
Standard_EXPORT void Set (const Handle(Adaptor2d_HCurve2d)& Rst);
|
||||
|
||||
//! Returns in the vector Tolerance the parametric tolerance
|
||||
//! for each of the 3 variables;
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
//! Returns in the vector InfBound the lowest values allowed
|
||||
//! for each of the 3 variables.
|
||||
//! Returns in the vector SupBound the greatest values allowed
|
||||
//! for each of the 3 variables.
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
//! Returns Standard_True if Sol is a zero of the function.
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf;
|
||||
Handle(Adaptor3d_HCurve) curv;
|
||||
Handle(Adaptor3d_HCurve) guide;
|
||||
Handle(Adaptor2d_HCurve2d) rst;
|
||||
Standard_Real ray;
|
||||
Standard_Integer choix;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_SurfCurvConstRadInv_HeaderFile
|
@@ -1,111 +0,0 @@
|
||||
-- Created on: 1997-07-29
|
||||
-- Created by: Jerome LEMONIER
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfCurvEvolRadInv from BRepBlend
|
||||
|
||||
inherits SurfCurvFuncInv from Blend
|
||||
|
||||
---Purpose: Function of reframing between a surface restriction
|
||||
-- of the surface and a curve.
|
||||
-- Class used to compute a solution of the
|
||||
-- surfRstConstRad problem on a done restriction of the
|
||||
-- surface.
|
||||
-- The vector <X> used in Value, Values and Derivatives
|
||||
-- methods has to be the vector of the parametric
|
||||
-- coordinates wguide, wcurv, wrst where wguide is the
|
||||
-- parameter on the guide line, wcurv is the parameter on
|
||||
-- the curve, wrst is the parameter on the restriction on
|
||||
-- the surface.
|
||||
|
||||
uses
|
||||
HCurve2d from Adaptor2d,
|
||||
HCurve from Adaptor3d,
|
||||
HSurface from Adaptor3d,
|
||||
Vector from math,
|
||||
Matrix from math,
|
||||
Function from Law
|
||||
|
||||
|
||||
is
|
||||
|
||||
Create(S : HSurface from Adaptor3d;
|
||||
C : HCurve from Adaptor3d;
|
||||
Cg : HCurve from Adaptor3d;
|
||||
Evol : Function from Law)
|
||||
returns SurfCurvEvolRadInv from BRepBlend;
|
||||
|
||||
Set(me: in out;Choix: Integer from Standard)
|
||||
is static;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me: in out; Rst : HCurve2d from Adaptor2d);
|
||||
---Purpose: Set the restriction on which a solution has to be found.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
---Purpose: Returns in the vector Tolerance the parametric tolerance
|
||||
-- for each of the 3 variables;
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
---Purpose: Returns in the vector InfBound the lowest values allowed
|
||||
-- for each of the 3 variables.
|
||||
-- Returns in the vector SupBound the greatest values allowed
|
||||
-- for each of the 3 variables.
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
---Purpose: Returns Standard_True if Sol is a zero of the function.
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
returns Boolean from Standard;
|
||||
|
||||
fields
|
||||
|
||||
surf : HSurface from Adaptor3d;
|
||||
curv : HCurve from Adaptor3d;
|
||||
guide : HCurve from Adaptor3d;
|
||||
rst : HCurve2d from Adaptor2d;
|
||||
ray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
tevol : Function from Law;
|
||||
sg1 : Real from Standard;
|
||||
|
||||
|
||||
end SurfCurvEvolRadInv;
|
||||
|
||||
|
@@ -14,7 +14,13 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_SurfCurvEvolRadInv.ixx>
|
||||
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <BRepBlend_SurfCurvEvolRadInv.hxx>
|
||||
#include <Law_Function.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function :
|
||||
|
128
src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.hxx
Normal file
128
src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.hxx
Normal file
@@ -0,0 +1,128 @@
|
||||
// Created on: 1997-07-29
|
||||
// Created by: Jerome LEMONIER
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_SurfCurvEvolRadInv_HeaderFile
|
||||
#define _BRepBlend_SurfCurvEvolRadInv_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Blend_SurfCurvFuncInv.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HCurve;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Law_Function;
|
||||
class math_Matrix;
|
||||
|
||||
|
||||
//! Function of reframing between a surface restriction
|
||||
//! of the surface and a curve.
|
||||
//! Class used to compute a solution of the
|
||||
//! surfRstConstRad problem on a done restriction of the
|
||||
//! surface.
|
||||
//! The vector <X> used in Value, Values and Derivatives
|
||||
//! methods has to be the vector of the parametric
|
||||
//! coordinates wguide, wcurv, wrst where wguide is the
|
||||
//! parameter on the guide line, wcurv is the parameter on
|
||||
//! the curve, wrst is the parameter on the restriction on
|
||||
//! the surface.
|
||||
class BRepBlend_SurfCurvEvolRadInv : public Blend_SurfCurvFuncInv
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_SurfCurvEvolRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C, const Handle(Adaptor3d_HCurve)& Cg, const Handle(Law_Function)& Evol);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Integer Choix);
|
||||
|
||||
//! returns 3.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
//! Set the restriction on which a solution has to be found.
|
||||
Standard_EXPORT void Set (const Handle(Adaptor2d_HCurve2d)& Rst);
|
||||
|
||||
//! Returns in the vector Tolerance the parametric tolerance
|
||||
//! for each of the 3 variables;
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
//! Returns in the vector InfBound the lowest values allowed
|
||||
//! for each of the 3 variables.
|
||||
//! Returns in the vector SupBound the greatest values allowed
|
||||
//! for each of the 3 variables.
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
//! Returns Standard_True if Sol is a zero of the function.
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf;
|
||||
Handle(Adaptor3d_HCurve) curv;
|
||||
Handle(Adaptor3d_HCurve) guide;
|
||||
Handle(Adaptor2d_HCurve2d) rst;
|
||||
Standard_Real ray;
|
||||
Standard_Integer choix;
|
||||
Handle(Law_Function) tevol;
|
||||
Standard_Real sg1;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_SurfCurvEvolRadInv_HeaderFile
|
@@ -1,98 +0,0 @@
|
||||
-- Created on: 1997-02-12
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfPointConstRadInv from BRepBlend
|
||||
|
||||
inherits SurfPointFuncInv from Blend
|
||||
|
||||
---Purpose: Function of reframing between a point and a surface.
|
||||
-- This function is used to find a solution on a done
|
||||
-- point of the curve when using SurfRstConsRad or
|
||||
-- CSConstRad...
|
||||
-- The vector <X> used in Value, Values and Derivatives
|
||||
-- methods has to be the vector of the parametric
|
||||
-- coordinates w, U, V where w is the parameter on the
|
||||
-- guide line, U,V are the parametric coordinates of a
|
||||
-- point on the partner surface.
|
||||
|
||||
uses
|
||||
Pnt from gp,
|
||||
Vector from math,
|
||||
Matrix from math,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d
|
||||
|
||||
|
||||
is
|
||||
Create(S : HSurface from Adaptor3d; C : HCurve from Adaptor3d)
|
||||
returns SurfPointConstRadInv from BRepBlend;
|
||||
|
||||
Set(me: in out; R: Real from Standard; Choix: Integer from Standard)
|
||||
is static;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me: in out; P : Pnt from gp);
|
||||
---Purpose: Set the Point on which a solution has to be found.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
---Purpose: Returns in the vector Tolerance the parametric tolerance
|
||||
-- for each of the 3 variables;
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
---Purpose: Returns in the vector InfBound the lowest values allowed
|
||||
-- for each of the 3 variables.
|
||||
-- Returns in the vector SupBound the greatest values allowed
|
||||
-- for each of the 3 variables.
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
---Purpose: Returns Standard_True if Sol is a zero of the function.
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
returns Boolean from Standard;
|
||||
|
||||
fields
|
||||
|
||||
surf : HSurface from Adaptor3d;
|
||||
curv : HCurve from Adaptor3d;
|
||||
point : Pnt from gp;
|
||||
ray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
|
||||
end SurfPointConstRadInv;
|
@@ -14,13 +14,17 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_SurfPointConstRadInv.ixx>
|
||||
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <BRepBlend_SurfPointConstRadInv.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : BRepBlend_SurfPointConstRadInv
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
BRepBlend_SurfPointConstRadInv::BRepBlend_SurfPointConstRadInv
|
||||
(const Handle(Adaptor3d_HSurface)& S,
|
||||
const Handle(Adaptor3d_HCurve)& C) : surf(S), curv(C)
|
||||
|
123
src/BRepBlend/BRepBlend_SurfPointConstRadInv.hxx
Normal file
123
src/BRepBlend/BRepBlend_SurfPointConstRadInv.hxx
Normal file
@@ -0,0 +1,123 @@
|
||||
// Created on: 1997-02-12
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_SurfPointConstRadInv_HeaderFile
|
||||
#define _BRepBlend_SurfPointConstRadInv_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Blend_SurfPointFuncInv.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HCurve;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
//! Function of reframing between a point and a surface.
|
||||
//! This function is used to find a solution on a done
|
||||
//! point of the curve when using SurfRstConsRad or
|
||||
//! CSConstRad...
|
||||
//! The vector <X> used in Value, Values and Derivatives
|
||||
//! methods has to be the vector of the parametric
|
||||
//! coordinates w, U, V where w is the parameter on the
|
||||
//! guide line, U,V are the parametric coordinates of a
|
||||
//! point on the partner surface.
|
||||
class BRepBlend_SurfPointConstRadInv : public Blend_SurfPointFuncInv
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_SurfPointConstRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real R, const Standard_Integer Choix);
|
||||
|
||||
//! returns 3.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
//! Set the Point on which a solution has to be found.
|
||||
Standard_EXPORT void Set (const gp_Pnt& P);
|
||||
|
||||
//! Returns in the vector Tolerance the parametric tolerance
|
||||
//! for each of the 3 variables;
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
//! Returns in the vector InfBound the lowest values allowed
|
||||
//! for each of the 3 variables.
|
||||
//! Returns in the vector SupBound the greatest values allowed
|
||||
//! for each of the 3 variables.
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
//! Returns Standard_True if Sol is a zero of the function.
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf;
|
||||
Handle(Adaptor3d_HCurve) curv;
|
||||
gp_Pnt point;
|
||||
Standard_Real ray;
|
||||
Standard_Integer choix;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_SurfPointConstRadInv_HeaderFile
|
@@ -1,102 +0,0 @@
|
||||
-- Created on: 1997-07-29
|
||||
-- Created by: Jerome LEMONIER
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfPointEvolRadInv from BRepBlend
|
||||
|
||||
inherits SurfPointFuncInv from Blend
|
||||
|
||||
---Purpose: Function of reframing between a point and a surface.
|
||||
-- This function is used to find a solution on a done
|
||||
-- point of the curve when using SurfRstConsRad or
|
||||
-- CSConstRad...
|
||||
-- The vector <X> used in Value, Values and Derivatives
|
||||
-- methods has to be the vector of the parametric
|
||||
-- coordinates w, U, V where w is the parameter on the
|
||||
-- guide line, U,V are the parametric coordinates of a
|
||||
-- point on the partner surface.
|
||||
|
||||
uses
|
||||
Pnt from gp,
|
||||
Vector from math,
|
||||
Matrix from math,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
Function from Law
|
||||
|
||||
is
|
||||
Create(S : HSurface from Adaptor3d; C : HCurve from Adaptor3d;
|
||||
Evol : Function from Law)
|
||||
returns SurfPointEvolRadInv from BRepBlend;
|
||||
|
||||
Set(me: in out; Choix: Integer from Standard)
|
||||
is static;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me: in out; P : Pnt from gp);
|
||||
---Purpose: Set the Point on which a solution has to be found.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
---Purpose: Returns in the vector Tolerance the parametric tolerance
|
||||
-- for each of the 3 variables;
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
---Purpose: Returns in the vector InfBound the lowest values allowed
|
||||
-- for each of the 3 variables.
|
||||
-- Returns in the vector SupBound the greatest values allowed
|
||||
-- for each of the 3 variables.
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
---Purpose: Returns Standard_True if Sol is a zero of the function.
|
||||
-- Tol is the tolerance used in 3d space.
|
||||
returns Boolean from Standard;
|
||||
|
||||
fields
|
||||
|
||||
surf : HSurface from Adaptor3d;
|
||||
curv : HCurve from Adaptor3d;
|
||||
point : Pnt from gp;
|
||||
ray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
tevol : Function from Law;
|
||||
sg1 : Real from Standard;
|
||||
|
||||
|
||||
end SurfPointEvolRadInv;
|
@@ -14,8 +14,13 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_SurfPointEvolRadInv.ixx>
|
||||
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <BRepBlend_SurfPointEvolRadInv.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Law_Function.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function :
|
||||
|
126
src/BRepBlend/BRepBlend_SurfPointEvolRadInv.hxx
Normal file
126
src/BRepBlend/BRepBlend_SurfPointEvolRadInv.hxx
Normal file
@@ -0,0 +1,126 @@
|
||||
// Created on: 1997-07-29
|
||||
// Created by: Jerome LEMONIER
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_SurfPointEvolRadInv_HeaderFile
|
||||
#define _BRepBlend_SurfPointEvolRadInv_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Blend_SurfPointFuncInv.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HCurve;
|
||||
class Law_Function;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
//! Function of reframing between a point and a surface.
|
||||
//! This function is used to find a solution on a done
|
||||
//! point of the curve when using SurfRstConsRad or
|
||||
//! CSConstRad...
|
||||
//! The vector <X> used in Value, Values and Derivatives
|
||||
//! methods has to be the vector of the parametric
|
||||
//! coordinates w, U, V where w is the parameter on the
|
||||
//! guide line, U,V are the parametric coordinates of a
|
||||
//! point on the partner surface.
|
||||
class BRepBlend_SurfPointEvolRadInv : public Blend_SurfPointFuncInv
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_SurfPointEvolRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C, const Handle(Law_Function)& Evol);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Integer Choix);
|
||||
|
||||
//! returns 3.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
//! Set the Point on which a solution has to be found.
|
||||
Standard_EXPORT void Set (const gp_Pnt& P);
|
||||
|
||||
//! Returns in the vector Tolerance the parametric tolerance
|
||||
//! for each of the 3 variables;
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
//! Returns in the vector InfBound the lowest values allowed
|
||||
//! for each of the 3 variables.
|
||||
//! Returns in the vector SupBound the greatest values allowed
|
||||
//! for each of the 3 variables.
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
//! Returns Standard_True if Sol is a zero of the function.
|
||||
//! Tol is the tolerance used in 3d space.
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf;
|
||||
Handle(Adaptor3d_HCurve) curv;
|
||||
gp_Pnt point;
|
||||
Standard_Real ray;
|
||||
Standard_Integer choix;
|
||||
Handle(Law_Function) tevol;
|
||||
Standard_Real sg1;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_SurfPointEvolRadInv_HeaderFile
|
@@ -1,312 +0,0 @@
|
||||
-- Created on: 1997-02-06
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfRstConstRad from BRepBlend
|
||||
inherits SurfRstFunction from Blend
|
||||
|
||||
---Purpose: Copy of CSConstRad with pcurve on surface
|
||||
-- as support.
|
||||
|
||||
uses Vector from math,
|
||||
Matrix from math,
|
||||
Ax1 from gp,
|
||||
Vec from gp,
|
||||
Vec2d from gp,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Circ from gp,
|
||||
Array1OfPnt from TColgp,
|
||||
Array1OfVec from TColgp,
|
||||
Array1OfPnt2d from TColgp,
|
||||
Array1OfVec2d from TColgp,
|
||||
Array1OfReal from TColStd,
|
||||
Array1OfInteger from TColStd,
|
||||
Shape from GeomAbs,
|
||||
Point from Blend,
|
||||
SectionShape from BlendFunc,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
CurveOnSurface from Adaptor3d,
|
||||
ParameterisationType from Convert
|
||||
|
||||
|
||||
is
|
||||
|
||||
Create(Surf : HSurface from Adaptor3d;
|
||||
SurfRst : HSurface from Adaptor3d;
|
||||
Rst : HCurve2d from Adaptor2d;
|
||||
CGuide : HCurve from Adaptor3d)
|
||||
returns SurfRstConstRad from BRepBlend;
|
||||
|
||||
NbVariables(me)
|
||||
---Purpose: Returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: Returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me : in out;
|
||||
SurfRef : HSurface from Adaptor3d;
|
||||
RstRef : HCurve2d from Adaptor2d);
|
||||
|
||||
Set(me: in out; Param: Real from Standard);
|
||||
|
||||
Set(me: in out; First, Last: Real from Standard);
|
||||
---Purpose: Sets the bounds of the parametric interval on
|
||||
-- the guide line.
|
||||
-- This determines the derivatives in these values if the
|
||||
-- function is not Cn.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
GetMinimalDistance(me)
|
||||
---Purpose: Returns the minimal Distance beetween two
|
||||
-- extremitys of calculed sections.
|
||||
returns Real from Standard
|
||||
is redefined;
|
||||
|
||||
--- TheFollowing methods are called only when
|
||||
-- IsSolution returns Standard_True.
|
||||
|
||||
PointOnS(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
PointOnRst(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
Pnt2dOnS(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
Pnt2dOnRst(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the curve on
|
||||
-- surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
ParameterOnRst(me)
|
||||
---Purpose: Returns parameter of the point on the curve.
|
||||
returns Real from Standard;
|
||||
|
||||
IsTangencyPoint(me)
|
||||
returns Boolean from Standard;
|
||||
|
||||
TangentOnS(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnS(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
TangentOnRst(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnRst(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
Decroch(me;
|
||||
Sol : Vector from math;
|
||||
NS,TgS : out Vec from gp)
|
||||
---Purpose: Enables implementation of a criterion of decrochage
|
||||
-- specific to the function.
|
||||
-- Warning: Can be called without previous call of issolution
|
||||
-- but the values calculated can be senseless.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
-- methodes hors template (en plus du create)
|
||||
|
||||
Set(me : in out;
|
||||
Radius : Real from Standard;
|
||||
Choix : Integer from Standard)
|
||||
is static;
|
||||
|
||||
Set(me: in out; TypeSection: SectionShape from BlendFunc)
|
||||
---Purpose: Sets the type of section generation for the
|
||||
-- approximations.
|
||||
is static;
|
||||
|
||||
Section(me : in out;
|
||||
Param : Real from Standard;
|
||||
U,V,W : Real from Standard;
|
||||
Pdeb,Pfin : out Real from Standard;
|
||||
C : out Circ from gp)
|
||||
is static;
|
||||
|
||||
-- Methods for the approximation
|
||||
--
|
||||
IsRational(me) returns Boolean
|
||||
---Purpose: Returns if the section is rationnal
|
||||
is static;
|
||||
|
||||
GetSectionSize(me) returns Real
|
||||
---Purpose: Returns the length of the maximum section
|
||||
is static;
|
||||
|
||||
GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Compute the minimal value of weight for each poles
|
||||
-- of all sections.
|
||||
is static;
|
||||
|
||||
NbIntervals(me; S : Shape from GeomAbs) returns Integer
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(me) >= <S>
|
||||
is static;
|
||||
|
||||
Intervals(me; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
is static;
|
||||
|
||||
GetShape(me : in out;
|
||||
NbPoles : out Integer from Standard;
|
||||
NbKnots : out Integer from Standard;
|
||||
Degree : out Integer from Standard;
|
||||
NbPoles2d : out Integer from Standard)
|
||||
is static;
|
||||
|
||||
GetTolerance(me;
|
||||
BoundTol, SurfTol, AngleTol : Real;
|
||||
Tol3d : out Vector;
|
||||
Tol1D : out Vector )
|
||||
---Purpose: Returns the tolerance to reach in approximation
|
||||
-- to respecte
|
||||
-- BoundTol error at the Boundary
|
||||
-- AngleTol tangent error at the Boundary
|
||||
-- SurfTol error inside the surface.
|
||||
is static;
|
||||
|
||||
Knots(me: in out; TKnots: out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
Mults(me: in out; TMults: out Array1OfInteger from TColStd)
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me: in out; P: Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
D2Poles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
D2Poles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd;
|
||||
D2Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
-- The method returns Standard_True if the derivatives
|
||||
-- are computed, otherwise it returns Standard_False.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
Resolution(me;
|
||||
IC2d : Integer from Standard;
|
||||
Tol : Real from Standard;
|
||||
TolU, TolV : out Real from Standard);
|
||||
|
||||
fields
|
||||
|
||||
surf : HSurface from Adaptor3d;
|
||||
surfrst : HSurface from Adaptor3d;
|
||||
rst : HCurve2d from Adaptor2d;
|
||||
cons : CurveOnSurface from Adaptor3d;
|
||||
guide : HCurve from Adaptor3d;
|
||||
tguide : HCurve from Adaptor3d;
|
||||
pts : Pnt from gp;
|
||||
ptrst : Pnt from gp;
|
||||
pt2ds : Pnt2d from gp;
|
||||
pt2drst : Pnt2d from gp;
|
||||
prmrst : Real from Standard;
|
||||
istangent: Boolean from Standard;
|
||||
tgs : Vec from gp;
|
||||
tg2ds : Vec2d from gp;
|
||||
tgrst : Vec from gp;
|
||||
tg2drst : Vec2d from gp;
|
||||
|
||||
ray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
ptgui : Pnt from gp;
|
||||
d1gui : Vec from gp;
|
||||
d2gui : Vec from gp;
|
||||
nplan : Vec from gp;
|
||||
normtg : Real from Standard;
|
||||
theD : Real from Standard;
|
||||
|
||||
surfref : HSurface from Adaptor3d;
|
||||
rstref : HCurve2d from Adaptor2d;
|
||||
|
||||
maxang : Real from Standard;
|
||||
minang : Real from Standard;
|
||||
distmin : Real from Standard;
|
||||
mySShape : SectionShape from BlendFunc;
|
||||
myTConv : ParameterisationType from Convert;
|
||||
|
||||
end SurfRstConstRad;
|
@@ -14,17 +14,27 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_SurfRstConstRad.ixx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <BlendFunc.hxx>
|
||||
#include <BRepBlend_SurfRstConstRad.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <GeomFill.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_NotImplemented.hxx>
|
||||
#include <Precision.hxx>
|
||||
|
||||
#define Eps 1.e-15
|
||||
|
||||
|
247
src/BRepBlend/BRepBlend_SurfRstConstRad.hxx
Normal file
247
src/BRepBlend/BRepBlend_SurfRstConstRad.hxx
Normal file
@@ -0,0 +1,247 @@
|
||||
// Created on: 1997-02-06
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_SurfRstConstRad_HeaderFile
|
||||
#define _BRepBlend_SurfRstConstRad_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <BlendFunc_SectionShape.hxx>
|
||||
#include <Convert_ParameterisationType.hxx>
|
||||
#include <Blend_SurfRstFunction.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HCurve;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
class gp_Pnt2d;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
class gp_Circ;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
//! Copy of CSConstRad with pcurve on surface
|
||||
//! as support.
|
||||
class BRepBlend_SurfRstConstRad : public Blend_SurfRstFunction
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_SurfRstConstRad(const Handle(Adaptor3d_HSurface)& Surf, const Handle(Adaptor3d_HSurface)& SurfRst, const Handle(Adaptor2d_HCurve2d)& Rst, const Handle(Adaptor3d_HCurve)& CGuide);
|
||||
|
||||
//! Returns 3.
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
//! Returns 3.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef, const Handle(Adaptor2d_HCurve2d)& RstRef);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real Param);
|
||||
|
||||
//! Sets the bounds of the parametric interval on
|
||||
//! the guide line.
|
||||
//! This determines the derivatives in these values if the
|
||||
//! function is not Cn.
|
||||
Standard_EXPORT void Set (const Standard_Real First, const Standard_Real Last);
|
||||
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
//! Returns the minimal Distance beetween two
|
||||
//! extremitys of calculed sections.
|
||||
Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnS() const;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnRst() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnS() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the curve on
|
||||
//! surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst() const;
|
||||
|
||||
//! Returns parameter of the point on the curve.
|
||||
Standard_EXPORT Standard_Real ParameterOnRst() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangencyPoint() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnS() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnS() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnRst() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnRst() const;
|
||||
|
||||
//! Enables implementation of a criterion of decrochage
|
||||
//! specific to the function.
|
||||
//! Warning: Can be called without previous call of issolution
|
||||
//! but the values calculated can be senseless.
|
||||
Standard_EXPORT Standard_Boolean Decroch (const math_Vector& Sol, gp_Vec& NS, gp_Vec& TgS) const;
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real Radius, const Standard_Integer Choix);
|
||||
|
||||
//! Sets the type of section generation for the
|
||||
//! approximations.
|
||||
Standard_EXPORT void Set (const BlendFunc_SectionShape TypeSection);
|
||||
|
||||
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
|
||||
|
||||
//! Returns if the section is rationnal
|
||||
Standard_EXPORT Standard_Boolean IsRational() const;
|
||||
|
||||
//! Returns the length of the maximum section
|
||||
Standard_EXPORT Standard_Real GetSectionSize() const;
|
||||
|
||||
//! Compute the minimal value of weight for each poles
|
||||
//! of all sections.
|
||||
Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const;
|
||||
|
||||
//! Returns the number of intervals for continuity
|
||||
//! <S>. May be one if Continuity(me) >= <S>
|
||||
Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const;
|
||||
|
||||
//! Stores in <T> the parameters bounding the intervals
|
||||
//! of continuity <S>.
|
||||
//! The array must provide enough room to accomodate
|
||||
//! for the parameters. i.e. T.Length() > NbIntervals()
|
||||
Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const;
|
||||
|
||||
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d);
|
||||
|
||||
//! Returns the tolerance to reach in approximation
|
||||
//! to respecte
|
||||
//! BoundTol error at the Boundary
|
||||
//! AngleTol tangent error at the Boundary
|
||||
//! SurfTol error inside the surface.
|
||||
Standard_EXPORT void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, math_Vector& Tol3d, math_Vector& Tol1D) const;
|
||||
|
||||
Standard_EXPORT void Knots (TColStd_Array1OfReal& TKnots);
|
||||
|
||||
Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults);
|
||||
|
||||
//! Used for the first and last section
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths);
|
||||
|
||||
//! Used for the first and last section
|
||||
//! The method returns Standard_True if the derivatives
|
||||
//! are computed, otherwise it returns Standard_False.
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfVec& D2Poles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColgp_Array1OfVec2d& D2Poles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths, TColStd_Array1OfReal& D2Weigths);
|
||||
|
||||
Standard_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths);
|
||||
|
||||
Standard_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf;
|
||||
Handle(Adaptor3d_HSurface) surfrst;
|
||||
Handle(Adaptor2d_HCurve2d) rst;
|
||||
Adaptor3d_CurveOnSurface cons;
|
||||
Handle(Adaptor3d_HCurve) guide;
|
||||
Handle(Adaptor3d_HCurve) tguide;
|
||||
gp_Pnt pts;
|
||||
gp_Pnt ptrst;
|
||||
gp_Pnt2d pt2ds;
|
||||
gp_Pnt2d pt2drst;
|
||||
Standard_Real prmrst;
|
||||
Standard_Boolean istangent;
|
||||
gp_Vec tgs;
|
||||
gp_Vec2d tg2ds;
|
||||
gp_Vec tgrst;
|
||||
gp_Vec2d tg2drst;
|
||||
Standard_Real ray;
|
||||
Standard_Integer choix;
|
||||
gp_Pnt ptgui;
|
||||
gp_Vec d1gui;
|
||||
gp_Vec d2gui;
|
||||
gp_Vec nplan;
|
||||
Standard_Real normtg;
|
||||
Standard_Real theD;
|
||||
Handle(Adaptor3d_HSurface) surfref;
|
||||
Handle(Adaptor2d_HCurve2d) rstref;
|
||||
Standard_Real maxang;
|
||||
Standard_Real minang;
|
||||
Standard_Real distmin;
|
||||
BlendFunc_SectionShape mySShape;
|
||||
Convert_ParameterisationType myTConv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_SurfRstConstRad_HeaderFile
|
@@ -1,317 +0,0 @@
|
||||
-- Created on: 1997-07-28
|
||||
-- Created by: Jerome LEMONIER
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfRstEvolRad from BRepBlend
|
||||
inherits SurfRstFunction from Blend
|
||||
|
||||
---Purpose: Function to approximate by AppSurface for
|
||||
-- Edge/Face and evolutif radius
|
||||
|
||||
uses Vector from math,
|
||||
Matrix from math,
|
||||
Ax1 from gp,
|
||||
Vec from gp,
|
||||
Vec2d from gp,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Circ from gp,
|
||||
Array1OfPnt from TColgp,
|
||||
Array1OfVec from TColgp,
|
||||
Array1OfPnt2d from TColgp,
|
||||
Array1OfVec2d from TColgp,
|
||||
Array1OfReal from TColStd,
|
||||
Array1OfInteger from TColStd,
|
||||
Shape from GeomAbs,
|
||||
Point from Blend,
|
||||
SectionShape from BlendFunc,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
CurveOnSurface from Adaptor3d,
|
||||
ParameterisationType from Convert,
|
||||
Function from Law
|
||||
|
||||
is
|
||||
|
||||
Create(Surf : HSurface from Adaptor3d;
|
||||
SurfRst : HSurface from Adaptor3d;
|
||||
Rst : HCurve2d from Adaptor2d;
|
||||
CGuide : HCurve from Adaptor3d;
|
||||
Evol : Function from Law)
|
||||
returns SurfRstEvolRad from BRepBlend;
|
||||
|
||||
NbVariables(me)
|
||||
---Purpose: Returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
NbEquations(me)
|
||||
---Purpose: Returns 3.
|
||||
returns Integer from Standard;
|
||||
|
||||
Value(me: in out; X: Vector; F: out Vector)
|
||||
---Purpose: computes the values <F> of the Functions for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Derivatives(me: in out; X: Vector; D: out Matrix)
|
||||
---Purpose: returns the values <D> of the derivatives for the
|
||||
-- variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
|
||||
---Purpose: returns the values <F> of the functions and the derivatives
|
||||
-- <D> for the variable <X>.
|
||||
-- Returns True if the computation was done successfully,
|
||||
-- False otherwise.
|
||||
returns Boolean from Standard;
|
||||
|
||||
Set(me : in out;
|
||||
SurfRef : HSurface from Adaptor3d;
|
||||
RstRef : HCurve2d from Adaptor2d);
|
||||
|
||||
Set(me: in out; Param: Real from Standard);
|
||||
|
||||
Set(me: in out; First, Last: Real from Standard);
|
||||
---Purpose: Sets the bounds of the parametric interval on
|
||||
-- the guide line.
|
||||
-- This determines the derivatives in these values if the
|
||||
-- function is not Cn.
|
||||
|
||||
GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
|
||||
|
||||
GetBounds(me; InfBound,SupBound: out Vector from math);
|
||||
|
||||
IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
|
||||
returns Boolean from Standard;
|
||||
|
||||
GetMinimalDistance(me)
|
||||
---Purpose: Returns the minimal Distance beetween two
|
||||
-- extremitys of calculed sections.
|
||||
returns Real from Standard
|
||||
is redefined;
|
||||
|
||||
--- TheFollowing methods are called only when
|
||||
-- IsSolution returns Standard_True.
|
||||
|
||||
PointOnS(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
PointOnRst(me)
|
||||
---C++: return const&
|
||||
returns Pnt from gp;
|
||||
|
||||
Pnt2dOnS(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
Pnt2dOnRst(me)
|
||||
---Purpose: Returns U,V coordinates of the point on the curve on
|
||||
-- surface.
|
||||
---C++: return const&
|
||||
returns Pnt2d from gp;
|
||||
|
||||
ParameterOnRst(me)
|
||||
---Purpose: Returns parameter of the point on the curve.
|
||||
returns Real from Standard;
|
||||
|
||||
IsTangencyPoint(me)
|
||||
returns Boolean from Standard;
|
||||
|
||||
TangentOnS(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnS(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
TangentOnRst(me)
|
||||
---C++: return const&
|
||||
returns Vec from gp;
|
||||
|
||||
Tangent2dOnRst(me)
|
||||
---C++: return const&
|
||||
returns Vec2d from gp;
|
||||
|
||||
Decroch(me;
|
||||
Sol : Vector from math;
|
||||
NS,TgS : out Vec from gp)
|
||||
---Warning: Peut etre appele sans appel prealable a issolution
|
||||
-- mais les valeurs calculees risquent de ne pas avoir
|
||||
-- grand sens.
|
||||
---Purpose: Permet d ' implementer un critere de decrochage
|
||||
-- specifique a la fonction.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
-- methodes hors template (en plus du create)
|
||||
|
||||
Set(me : in out;
|
||||
Choix : Integer from Standard)
|
||||
is static;
|
||||
|
||||
Set(me: in out; TypeSection: SectionShape from BlendFunc)
|
||||
---Purpose: Sets the type of section generation for the
|
||||
-- approximations.
|
||||
is static;
|
||||
|
||||
Section(me : in out;
|
||||
Param : Real from Standard;
|
||||
U,V,W : Real from Standard;
|
||||
Pdeb,Pfin : out Real from Standard;
|
||||
C : out Circ from gp)
|
||||
is static;
|
||||
|
||||
-- Methods for the approximation
|
||||
--
|
||||
IsRational(me) returns Boolean
|
||||
---Purpose: Returns if the section is rationnal
|
||||
is static;
|
||||
|
||||
GetSectionSize(me) returns Real
|
||||
---Purpose: Returns the length of the maximum section
|
||||
is static;
|
||||
|
||||
GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Compute the minimal value of weight for each poles
|
||||
-- of all sections.
|
||||
is static;
|
||||
|
||||
NbIntervals(me; S : Shape from GeomAbs) returns Integer
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(me) >= <S>
|
||||
is static;
|
||||
|
||||
Intervals(me; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
is static;
|
||||
|
||||
GetShape(me : in out;
|
||||
NbPoles : out Integer from Standard;
|
||||
NbKnots : out Integer from Standard;
|
||||
Degree : out Integer from Standard;
|
||||
NbPoles2d : out Integer from Standard)
|
||||
is static;
|
||||
|
||||
GetTolerance(me;
|
||||
BoundTol, SurfTol, AngleTol : Real;
|
||||
Tol3d : out Vector;
|
||||
Tol1D : out Vector )
|
||||
---Purpose: Returns the tolerance to reach in approximation
|
||||
-- to respecte
|
||||
-- BoundTol error at the Boundary
|
||||
-- AngleTol tangent error at the Boundary
|
||||
-- SurfTol error inside the surface.
|
||||
is static;
|
||||
|
||||
Knots(me: in out; TKnots: out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
Mults(me: in out; TMults: out Array1OfInteger from TColStd)
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me: in out; P: Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
DPoles : out Array1OfVec from TColgp;
|
||||
D2Poles : out Array1OfVec from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
DPoles2d : out Array1OfVec2d from TColgp;
|
||||
D2Poles2d : out Array1OfVec2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd;
|
||||
DWeigths : out Array1OfReal from TColStd;
|
||||
D2Weigths : out Array1OfReal from TColStd)
|
||||
---Purpose: Used for the first and last section
|
||||
-- The method returns Standard_True if the derivatives
|
||||
-- are computed, otherwise it returns Standard_False.
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Section(me : in out ;
|
||||
P : Point from Blend;
|
||||
Poles : out Array1OfPnt from TColgp;
|
||||
Poles2d : out Array1OfPnt2d from TColgp;
|
||||
Weigths : out Array1OfReal from TColStd)
|
||||
is static;
|
||||
|
||||
Resolution(me;
|
||||
IC2d : Integer from Standard;
|
||||
Tol : Real from Standard;
|
||||
TolU, TolV : out Real from Standard);
|
||||
|
||||
fields
|
||||
|
||||
surf : HSurface from Adaptor3d;
|
||||
surfrst : HSurface from Adaptor3d;
|
||||
rst : HCurve2d from Adaptor2d;
|
||||
cons : CurveOnSurface from Adaptor3d;
|
||||
guide : HCurve from Adaptor3d;
|
||||
tguide : HCurve from Adaptor3d;
|
||||
pts : Pnt from gp;
|
||||
ptrst : Pnt from gp;
|
||||
pt2ds : Pnt2d from gp;
|
||||
pt2drst : Pnt2d from gp;
|
||||
prmrst : Real from Standard;
|
||||
istangent: Boolean from Standard;
|
||||
tgs : Vec from gp;
|
||||
tg2ds : Vec2d from gp;
|
||||
tgrst : Vec from gp;
|
||||
tg2drst : Vec2d from gp;
|
||||
|
||||
ray : Real from Standard;
|
||||
dray : Real from Standard;
|
||||
choix : Integer from Standard;
|
||||
ptgui : Pnt from gp;
|
||||
d1gui : Vec from gp;
|
||||
d2gui : Vec from gp;
|
||||
nplan : Vec from gp;
|
||||
normtg : Real from Standard;
|
||||
theD : Real from Standard;
|
||||
|
||||
surfref : HSurface from Adaptor3d;
|
||||
rstref : HCurve2d from Adaptor2d;
|
||||
|
||||
maxang : Real from Standard;
|
||||
minang : Real from Standard;
|
||||
distmin : Real from Standard;
|
||||
mySShape : SectionShape from BlendFunc;
|
||||
myTConv : ParameterisationType from Convert;
|
||||
tevol : Function from Law ;
|
||||
fevol : Function from Law ;
|
||||
sg1 : Real from Standard;
|
||||
|
||||
end SurfRstEvolRad;
|
@@ -14,18 +14,29 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_SurfRstEvolRad.ixx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <BlendFunc.hxx>
|
||||
#include <BRepBlend_SurfRstEvolRad.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <GeomFill.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Law_Function.hxx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_SVD.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_NotImplemented.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
|
||||
#define Eps 1.e-15
|
||||
|
||||
|
250
src/BRepBlend/BRepBlend_SurfRstEvolRad.hxx
Normal file
250
src/BRepBlend/BRepBlend_SurfRstEvolRad.hxx
Normal file
@@ -0,0 +1,250 @@
|
||||
// Created on: 1997-07-28
|
||||
// Created by: Jerome LEMONIER
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_SurfRstEvolRad_HeaderFile
|
||||
#define _BRepBlend_SurfRstEvolRad_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Adaptor3d_CurveOnSurface.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <BlendFunc_SectionShape.hxx>
|
||||
#include <Convert_ParameterisationType.hxx>
|
||||
#include <Blend_SurfRstFunction.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HCurve;
|
||||
class Law_Function;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
class gp_Pnt2d;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
class gp_Circ;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
//! Function to approximate by AppSurface for
|
||||
//! Edge/Face and evolutif radius
|
||||
class BRepBlend_SurfRstEvolRad : public Blend_SurfRstFunction
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_SurfRstEvolRad(const Handle(Adaptor3d_HSurface)& Surf, const Handle(Adaptor3d_HSurface)& SurfRst, const Handle(Adaptor2d_HCurve2d)& Rst, const Handle(Adaptor3d_HCurve)& CGuide, const Handle(Law_Function)& Evol);
|
||||
|
||||
//! Returns 3.
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
//! Returns 3.
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
//! computes the values <F> of the Functions for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
//! returns the values <D> of the derivatives for the
|
||||
//! variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
//! returns the values <F> of the functions and the derivatives
|
||||
//! <D> for the variable <X>.
|
||||
//! Returns True if the computation was done successfully,
|
||||
//! False otherwise.
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef, const Handle(Adaptor2d_HCurve2d)& RstRef);
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Real Param);
|
||||
|
||||
//! Sets the bounds of the parametric interval on
|
||||
//! the guide line.
|
||||
//! This determines the derivatives in these values if the
|
||||
//! function is not Cn.
|
||||
Standard_EXPORT void Set (const Standard_Real First, const Standard_Real Last);
|
||||
|
||||
Standard_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const;
|
||||
|
||||
Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol);
|
||||
|
||||
//! Returns the minimal Distance beetween two
|
||||
//! extremitys of calculed sections.
|
||||
Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnS() const;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& PointOnRst() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnS() const;
|
||||
|
||||
//! Returns U,V coordinates of the point on the curve on
|
||||
//! surface.
|
||||
Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst() const;
|
||||
|
||||
//! Returns parameter of the point on the curve.
|
||||
Standard_EXPORT Standard_Real ParameterOnRst() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsTangencyPoint() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnS() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnS() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec& TangentOnRst() const;
|
||||
|
||||
Standard_EXPORT const gp_Vec2d& Tangent2dOnRst() const;
|
||||
|
||||
//! Permet d ' implementer un critere de decrochage
|
||||
//! specifique a la fonction.
|
||||
Standard_EXPORT Standard_Boolean Decroch (const math_Vector& Sol, gp_Vec& NS, gp_Vec& TgS) const;
|
||||
|
||||
Standard_EXPORT void Set (const Standard_Integer Choix);
|
||||
|
||||
//! Sets the type of section generation for the
|
||||
//! approximations.
|
||||
Standard_EXPORT void Set (const BlendFunc_SectionShape TypeSection);
|
||||
|
||||
Standard_EXPORT void Section (const Standard_Real Param, const Standard_Real U, const Standard_Real V, const Standard_Real W, Standard_Real& Pdeb, Standard_Real& Pfin, gp_Circ& C);
|
||||
|
||||
//! Returns if the section is rationnal
|
||||
Standard_EXPORT Standard_Boolean IsRational() const;
|
||||
|
||||
//! Returns the length of the maximum section
|
||||
Standard_EXPORT Standard_Real GetSectionSize() const;
|
||||
|
||||
//! Compute the minimal value of weight for each poles
|
||||
//! of all sections.
|
||||
Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const;
|
||||
|
||||
//! Returns the number of intervals for continuity
|
||||
//! <S>. May be one if Continuity(me) >= <S>
|
||||
Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const;
|
||||
|
||||
//! Stores in <T> the parameters bounding the intervals
|
||||
//! of continuity <S>.
|
||||
//! The array must provide enough room to accomodate
|
||||
//! for the parameters. i.e. T.Length() > NbIntervals()
|
||||
Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const;
|
||||
|
||||
Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d);
|
||||
|
||||
//! Returns the tolerance to reach in approximation
|
||||
//! to respecte
|
||||
//! BoundTol error at the Boundary
|
||||
//! AngleTol tangent error at the Boundary
|
||||
//! SurfTol error inside the surface.
|
||||
Standard_EXPORT void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, math_Vector& Tol3d, math_Vector& Tol1D) const;
|
||||
|
||||
Standard_EXPORT void Knots (TColStd_Array1OfReal& TKnots);
|
||||
|
||||
Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults);
|
||||
|
||||
//! Used for the first and last section
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths);
|
||||
|
||||
//! Used for the first and last section
|
||||
//! The method returns Standard_True if the derivatives
|
||||
//! are computed, otherwise it returns Standard_False.
|
||||
Standard_EXPORT Standard_Boolean Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfVec& D2Poles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColgp_Array1OfVec2d& D2Poles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths, TColStd_Array1OfReal& D2Weigths);
|
||||
|
||||
Standard_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths);
|
||||
|
||||
Standard_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surf;
|
||||
Handle(Adaptor3d_HSurface) surfrst;
|
||||
Handle(Adaptor2d_HCurve2d) rst;
|
||||
Adaptor3d_CurveOnSurface cons;
|
||||
Handle(Adaptor3d_HCurve) guide;
|
||||
Handle(Adaptor3d_HCurve) tguide;
|
||||
gp_Pnt pts;
|
||||
gp_Pnt ptrst;
|
||||
gp_Pnt2d pt2ds;
|
||||
gp_Pnt2d pt2drst;
|
||||
Standard_Real prmrst;
|
||||
Standard_Boolean istangent;
|
||||
gp_Vec tgs;
|
||||
gp_Vec2d tg2ds;
|
||||
gp_Vec tgrst;
|
||||
gp_Vec2d tg2drst;
|
||||
Standard_Real ray;
|
||||
Standard_Real dray;
|
||||
Standard_Integer choix;
|
||||
gp_Pnt ptgui;
|
||||
gp_Vec d1gui;
|
||||
gp_Vec d2gui;
|
||||
gp_Vec nplan;
|
||||
Standard_Real normtg;
|
||||
Standard_Real theD;
|
||||
Handle(Adaptor3d_HSurface) surfref;
|
||||
Handle(Adaptor2d_HCurve2d) rstref;
|
||||
Standard_Real maxang;
|
||||
Standard_Real minang;
|
||||
Standard_Real distmin;
|
||||
BlendFunc_SectionShape mySShape;
|
||||
Convert_ParameterisationType myTConv;
|
||||
Handle(Law_Function) tevol;
|
||||
Handle(Law_Function) fevol;
|
||||
Standard_Real sg1;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_SurfRstEvolRad_HeaderFile
|
@@ -1,249 +0,0 @@
|
||||
-- Created on: 1997-01-23
|
||||
-- Created by: Laurent BOURESCHE
|
||||
-- Copyright (c) 1997-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class SurfRstLineBuilder from BRepBlend
|
||||
|
||||
---Purpose: This class processes data resulting from
|
||||
-- Blend_CSWalking taking in consideration the Surface
|
||||
-- supporting the curve to detect the breakpoint.
|
||||
--
|
||||
-- The criteria of distribution of points on the line are detailed
|
||||
-- because it is to be used in the calculatuon of values approached
|
||||
-- by an approximation of functions continued basing on
|
||||
-- Blend_SurfRstFunction.
|
||||
--
|
||||
-- Thus this pseudo path necessitates 3 criteria of regrouping :
|
||||
--
|
||||
-- 1) exit of the domain of the curve
|
||||
--
|
||||
-- 2) exit of the domain of the surface
|
||||
--
|
||||
-- 3) stall as there is a solution to the problem
|
||||
-- surf/surf within the domain of the surface
|
||||
-- of support of the restriction.
|
||||
--
|
||||
-- Construction of a BRepBlend_Line between a surface and
|
||||
-- a pcurve on surface from an approached
|
||||
-- starting solution. The output entries of this builder
|
||||
-- are of the same nature as of the traditional walking
|
||||
-- but the requirements on the Line are not the same
|
||||
-- If the determination of validity range is always
|
||||
-- guaranteed, the criteria of correct repartition of sections
|
||||
-- before smoothing are not respected. The resulting Line
|
||||
-- is f(t) oriented.
|
||||
|
||||
uses Point from Blend,
|
||||
Status from Blend,
|
||||
SurfRstFunction from Blend,
|
||||
FuncInv from Blend,
|
||||
SurfPointFuncInv from Blend,
|
||||
SurfCurvFuncInv from Blend,
|
||||
Vector from math,
|
||||
Matrix from math,
|
||||
State from TopAbs,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Vec from gp,
|
||||
Vec2d from gp,
|
||||
HArray1OfReal from TColStd,
|
||||
Transition from IntSurf,
|
||||
HVertex from Adaptor3d,
|
||||
HSurface from Adaptor3d,
|
||||
HCurve2d from Adaptor2d,
|
||||
TopolTool from Adaptor3d,
|
||||
Line from BRepBlend,
|
||||
Extremity from BRepBlend
|
||||
|
||||
is
|
||||
|
||||
Create(Surf1 : HSurface from Adaptor3d;
|
||||
Domain1 : TopolTool from Adaptor3d;
|
||||
Surf2 : HSurface from Adaptor3d;
|
||||
Rst : HCurve2d from Adaptor2d;
|
||||
Domain2 : TopolTool from Adaptor3d)
|
||||
returns SurfRstLineBuilder from BRepBlend;
|
||||
|
||||
Perform(me : in out;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
Finv : in out FuncInv from Blend;
|
||||
FinvP : in out SurfPointFuncInv from Blend;
|
||||
FinvC : in out SurfCurvFuncInv from Blend;
|
||||
Pdep : Real from Standard;
|
||||
Pmax : Real from Standard;
|
||||
MaxStep : Real from Standard;
|
||||
TolGuide : Real from Standard;
|
||||
Soldep : Vector from math;
|
||||
Tolesp : Real from Standard;
|
||||
Fleche : Real from Standard;
|
||||
Appro : Boolean from Standard = Standard_False)
|
||||
is static;
|
||||
|
||||
PerformFirstSection(me : in out;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
Finv : in out FuncInv from Blend;
|
||||
FinvP : in out SurfPointFuncInv from Blend;
|
||||
FinvC : in out SurfCurvFuncInv from Blend;
|
||||
Pdep : Real from Standard;
|
||||
Pmax : Real from Standard;
|
||||
Soldep : Vector from math;
|
||||
Tolesp : Real from Standard;
|
||||
TolGuide : Real from Standard;
|
||||
RecRst : Boolean from Standard;
|
||||
RecP : Boolean from Standard;
|
||||
RecS : Boolean from Standard;
|
||||
Psol : out Real from Standard;
|
||||
ParSol : out Vector from math)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
Complete(me : in out;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
Finv : in out FuncInv from Blend;
|
||||
FinvP : in out SurfPointFuncInv from Blend;
|
||||
FinvC : in out SurfCurvFuncInv from Blend;
|
||||
Pmin : Real from Standard)
|
||||
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
InternalPerform (me : in out;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
Finv : in out FuncInv from Blend;
|
||||
FinvP : in out SurfPointFuncInv from Blend;
|
||||
FinvC : in out SurfCurvFuncInv from Blend;
|
||||
Bound : Real from Standard)
|
||||
is static private;
|
||||
|
||||
ArcToRecadre(me : in out;
|
||||
Sol : Vector from math;
|
||||
PrevIndex : Integer;
|
||||
pt2d, lastpt2d : out Pnt2d from gp;
|
||||
ponarc : out Real)
|
||||
returns Integer;
|
||||
|
||||
Recadre(me : in out;
|
||||
FinvC : in out SurfCurvFuncInv from Blend;
|
||||
Solinv : out Vector from math;
|
||||
Arc : out HCurve2d from Adaptor2d;
|
||||
IsVtx : out Boolean from Standard;
|
||||
Vtx : out HVertex from Adaptor3d)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
Recadre(me : in out;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
Finv : in out FuncInv from Blend;
|
||||
Solinv : out Vector from math;
|
||||
IsVtx : out Boolean from Standard;
|
||||
Vtx : out HVertex from Adaptor3d)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
Recadre(me : in out;
|
||||
FinvP : in out SurfPointFuncInv from Blend;
|
||||
Solinv : out Vector from math;
|
||||
IsVtx : out Boolean from Standard;
|
||||
Vtx : out HVertex from Adaptor3d)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
IsDone(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Line(me)
|
||||
returns Line from BRepBlend
|
||||
---C++: inline
|
||||
---C++: return const&
|
||||
is static;
|
||||
|
||||
DecrochStart(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
DecrochEnd(me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Transition(me : in out;
|
||||
OnFirst : Boolean from Standard;
|
||||
Arc : HCurve2d from Adaptor2d;
|
||||
Param : Real from Standard;
|
||||
TLine,TArc : out Transition from IntSurf)
|
||||
is static private;
|
||||
|
||||
MakeExtremity(me : in out;
|
||||
Extrem : in out Extremity from BRepBlend;
|
||||
OnFirst : Boolean from Standard;
|
||||
Arc : HCurve2d from Adaptor2d;
|
||||
Param : Real from Standard;
|
||||
IsVtx : Boolean from Standard;
|
||||
Vtx : HVertex from Adaptor3d)
|
||||
is static private;
|
||||
|
||||
CheckDeflectionOnSurf(me : in out;
|
||||
CurPoint : Point from Blend)
|
||||
returns Status from Blend
|
||||
is static private;
|
||||
|
||||
CheckDeflectionOnRst(me : in out;
|
||||
CurPoint : Point from Blend)
|
||||
returns Status from Blend
|
||||
is static private;
|
||||
|
||||
TestArret(me : in out;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
TestDeflection : Boolean from Standard;
|
||||
State : Status from Blend)
|
||||
returns Status from Blend
|
||||
is static private;
|
||||
|
||||
CheckInside(me : in out;
|
||||
Func : in out SurfRstFunction from Blend;
|
||||
SituOnC : out State from TopAbs;
|
||||
SituOnS : out State from TopAbs;
|
||||
Decroch : out Boolean from Standard)
|
||||
returns Boolean from Standard
|
||||
is static private;
|
||||
|
||||
fields
|
||||
|
||||
done : Boolean from Standard;
|
||||
line : Line from BRepBlend;
|
||||
sol : Vector from math;
|
||||
surf1 : HSurface from Adaptor3d;
|
||||
domain1 : TopolTool from Adaptor3d;
|
||||
surf2 : HSurface from Adaptor3d;
|
||||
rst : HCurve2d from Adaptor2d;
|
||||
domain2 : TopolTool from Adaptor3d;
|
||||
|
||||
tolesp : Real from Standard;
|
||||
tolgui : Real from Standard;
|
||||
pasmax : Real from Standard;
|
||||
fleche : Real from Standard;
|
||||
param : Real from Standard;
|
||||
previousP : Point from Blend;
|
||||
rebrou : Boolean from Standard;
|
||||
iscomplete : Boolean from Standard;
|
||||
comptra : Boolean from Standard;
|
||||
sens : Real from Standard;
|
||||
decrochdeb : Boolean from Standard;
|
||||
decrochfin : Boolean from Standard;
|
||||
|
||||
end SurfRstLineBuilder from BRepBlend;
|
@@ -14,18 +14,30 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <BRepBlend_SurfRstLineBuilder.ixx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HVertex.hxx>
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <Blend_FuncInv.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Blend_SurfCurvFuncInv.hxx>
|
||||
#include <Blend_SurfPointFuncInv.hxx>
|
||||
#include <Blend_SurfRstFunction.hxx>
|
||||
#include <BRepBlend_BlendTool.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
#include <IntSurf.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <BRepBlend_Extremity.hxx>
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <BRepBlend_SurfRstLineBuilder.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <IntSurf.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
|
||||
#include <stdio.h>
|
||||
#ifdef OCCT_DEBUG
|
||||
#include <TColStd_Array1OfInteger.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
163
src/BRepBlend/BRepBlend_SurfRstLineBuilder.hxx
Normal file
163
src/BRepBlend/BRepBlend_SurfRstLineBuilder.hxx
Normal file
@@ -0,0 +1,163 @@
|
||||
// Created on: 1997-01-23
|
||||
// Created by: Laurent BOURESCHE
|
||||
// Copyright (c) 1997-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_SurfRstLineBuilder_HeaderFile
|
||||
#define _BRepBlend_SurfRstLineBuilder_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Blend_Status.hxx>
|
||||
#include <TopAbs_State.hxx>
|
||||
class BRepBlend_Line;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_TopolTool;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Blend_SurfRstFunction;
|
||||
class Blend_FuncInv;
|
||||
class Blend_SurfPointFuncInv;
|
||||
class Blend_SurfCurvFuncInv;
|
||||
class gp_Pnt2d;
|
||||
class Adaptor3d_HVertex;
|
||||
class IntSurf_Transition;
|
||||
class BRepBlend_Extremity;
|
||||
class Blend_Point;
|
||||
|
||||
|
||||
//! This class processes data resulting from
|
||||
//! Blend_CSWalking taking in consideration the Surface
|
||||
//! supporting the curve to detect the breakpoint.
|
||||
//!
|
||||
//! The criteria of distribution of points on the line are detailed
|
||||
//! because it is to be used in the calculatuon of values approached
|
||||
//! by an approximation of functions continued basing on
|
||||
//! Blend_SurfRstFunction.
|
||||
//!
|
||||
//! Thus this pseudo path necessitates 3 criteria of regrouping :
|
||||
//!
|
||||
//! 1) exit of the domain of the curve
|
||||
//!
|
||||
//! 2) exit of the domain of the surface
|
||||
//!
|
||||
//! 3) stall as there is a solution to the problem
|
||||
//! surf/surf within the domain of the surface
|
||||
//! of support of the restriction.
|
||||
//!
|
||||
//! Construction of a BRepBlend_Line between a surface and
|
||||
//! a pcurve on surface from an approached
|
||||
//! starting solution. The output entries of this builder
|
||||
//! are of the same nature as of the traditional walking
|
||||
//! but the requirements on the Line are not the same
|
||||
//! If the determination of validity range is always
|
||||
//! guaranteed, the criteria of correct repartition of sections
|
||||
//! before smoothing are not respected. The resulting Line
|
||||
//! is f(t) oriented.
|
||||
class BRepBlend_SurfRstLineBuilder
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_SurfRstLineBuilder(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst, const Handle(Adaptor3d_TopolTool)& Domain2);
|
||||
|
||||
Standard_EXPORT void Perform (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False);
|
||||
|
||||
Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Pdep, const Standard_Real Pmax, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real TolGuide, const Standard_Boolean RecRst, const Standard_Boolean RecP, const Standard_Boolean RecS, Standard_Real& Psol, math_Vector& ParSol);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Complete (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Pmin);
|
||||
|
||||
Standard_EXPORT Standard_Integer ArcToRecadre (const math_Vector& Sol, const Standard_Integer PrevIndex, gp_Pnt2d& pt2d, gp_Pnt2d& lastpt2d, Standard_Real& ponarc);
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
const Handle(BRepBlend_Line)& Line() const;
|
||||
|
||||
Standard_Boolean DecrochStart() const;
|
||||
|
||||
Standard_Boolean DecrochEnd() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void InternalPerform (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Bound);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre (Blend_SurfCurvFuncInv& FinvC, math_Vector& Solinv, Handle(Adaptor2d_HCurve2d)& Arc, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre (Blend_SurfPointFuncInv& FinvP, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT void Transition (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc);
|
||||
|
||||
Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Blend_Status CheckDeflectionOnSurf (const Blend_Point& CurPoint);
|
||||
|
||||
Standard_EXPORT Blend_Status CheckDeflectionOnRst (const Blend_Point& CurPoint);
|
||||
|
||||
Standard_EXPORT Blend_Status TestArret (Blend_SurfRstFunction& Func, const Standard_Boolean TestDeflection, const Blend_Status State);
|
||||
|
||||
Standard_EXPORT Standard_Boolean CheckInside (Blend_SurfRstFunction& Func, TopAbs_State& SituOnC, TopAbs_State& SituOnS, Standard_Boolean& Decroch);
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Handle(BRepBlend_Line) line;
|
||||
math_Vector sol;
|
||||
Handle(Adaptor3d_HSurface) surf1;
|
||||
Handle(Adaptor3d_TopolTool) domain1;
|
||||
Handle(Adaptor3d_HSurface) surf2;
|
||||
Handle(Adaptor2d_HCurve2d) rst;
|
||||
Handle(Adaptor3d_TopolTool) domain2;
|
||||
Standard_Real tolesp;
|
||||
Standard_Real tolgui;
|
||||
Standard_Real pasmax;
|
||||
Standard_Real fleche;
|
||||
Standard_Real param;
|
||||
Blend_Point previousP;
|
||||
Standard_Boolean rebrou;
|
||||
Standard_Boolean iscomplete;
|
||||
Standard_Boolean comptra;
|
||||
Standard_Real sens;
|
||||
Standard_Boolean decrochdeb;
|
||||
Standard_Boolean decrochfin;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <BRepBlend_SurfRstLineBuilder.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_SurfRstLineBuilder_HeaderFile
|
233
src/BRepBlend/BRepBlend_Walking.hxx
Normal file
233
src/BRepBlend/BRepBlend_Walking.hxx
Normal file
@@ -0,0 +1,233 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepBlend_Walking_HeaderFile
|
||||
#define _BRepBlend_Walking_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Blend_Point.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Blend_SequenceOfPoint.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <BRepBlend_SequenceOfPointOnRst.hxx>
|
||||
#include <TopAbs_State.hxx>
|
||||
#include <Blend_Status.hxx>
|
||||
class BRepBlend_Line;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_TopolTool;
|
||||
class ChFiDS_HElSpine;
|
||||
class StdFail_NotDone;
|
||||
class Adaptor3d_HVertex;
|
||||
class Adaptor2d_HCurve2d;
|
||||
class Adaptor3d_HCurve;
|
||||
class BRepBlend_HCurve2dTool;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class BRepBlend_HCurveTool;
|
||||
class BRepBlend_BlendTool;
|
||||
class BRepBlend_PointOnRst;
|
||||
class BRepBlend_Extremity;
|
||||
class Blend_Point;
|
||||
class Blend_Function;
|
||||
class Blend_FuncInv;
|
||||
class gp_Pnt;
|
||||
class gp_Pnt2d;
|
||||
class IntSurf_Transition;
|
||||
|
||||
|
||||
|
||||
class BRepBlend_Walking
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT BRepBlend_Walking(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_TopolTool)& Domain2, const Handle(ChFiDS_HElSpine)& HGuide);
|
||||
|
||||
Standard_EXPORT void SetDomainsToRecadre (const Handle(Adaptor3d_TopolTool)& RecDomain1, const Handle(Adaptor3d_TopolTool)& RecDomain2);
|
||||
|
||||
Standard_EXPORT void AddSingularPoint (const Blend_Point& P);
|
||||
|
||||
Standard_EXPORT void Perform (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False);
|
||||
|
||||
Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_Function& F, const Standard_Real Pdep, math_Vector& ParDep, const Standard_Real Tolesp, const Standard_Real TolGuide, TopAbs_State& Pos1, TopAbs_State& Pos2);
|
||||
|
||||
Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Pdep, const Standard_Real Pmax, const math_Vector& ParDep, const Standard_Real Tolesp, const Standard_Real TolGuide, const Standard_Boolean RecOnS1, const Standard_Boolean RecOnS2, Standard_Real& Psol, math_Vector& ParSol);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Continu (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real P);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Continu (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real P, const Standard_Boolean OnS1);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Complete (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Pmin);
|
||||
|
||||
Standard_EXPORT void ClassificationOnS1 (const Standard_Boolean C);
|
||||
|
||||
Standard_EXPORT void ClassificationOnS2 (const Standard_Boolean C);
|
||||
|
||||
Standard_EXPORT void Check2d (const Standard_Boolean C);
|
||||
|
||||
Standard_EXPORT void Check (const Standard_Boolean C);
|
||||
|
||||
Standard_Boolean TwistOnS1() const;
|
||||
|
||||
Standard_Boolean TwistOnS2() const;
|
||||
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
const Handle(BRepBlend_Line)& Line() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void InternalPerform (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Bound);
|
||||
|
||||
Standard_EXPORT Standard_Boolean CorrectExtremityOnOneRst (const Standard_Integer IndexOfRst, const Standard_Real theU, const Standard_Real theV, const Standard_Real theParam, const gp_Pnt& thePntOnRst, Standard_Real& NewU, Standard_Real& NewV, gp_Pnt& NewPoint, Standard_Real& NewParam) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer ArcToRecadre (const Standard_Boolean OnFirst, const math_Vector& Sol, const Standard_Integer PrevIndex, gp_Pnt2d& lpt2d, gp_Pnt2d& pt2d, Standard_Real& ponarc);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Recadre (Blend_FuncInv& FInv, const Standard_Boolean OnFirst, const math_Vector& Sol, math_Vector& Solrst, Standard_Integer& Indexsol, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx, const Standard_Real Extrap = 0.0);
|
||||
|
||||
Standard_EXPORT void Transition (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc);
|
||||
|
||||
Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Standard_Integer Index, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT void MakeSingularExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Handle(Adaptor3d_HVertex)& Vtx);
|
||||
|
||||
Standard_EXPORT Blend_Status CheckDeflection (const Standard_Boolean OnFirst, const Blend_Point& CurPoint);
|
||||
|
||||
Standard_EXPORT Blend_Status TestArret (Blend_Function& F, const Blend_Status State, const Standard_Boolean TestDeflection = Standard_True, const Standard_Boolean TestSolution = Standard_True, const Standard_Boolean TestLengthStep = Standard_False);
|
||||
|
||||
|
||||
Blend_Point previousP;
|
||||
Handle(BRepBlend_Line) line;
|
||||
math_Vector sol;
|
||||
Blend_SequenceOfPoint jalons;
|
||||
Handle(Adaptor3d_HSurface) surf1;
|
||||
Handle(Adaptor3d_HSurface) surf2;
|
||||
Handle(Adaptor3d_TopolTool) domain1;
|
||||
Handle(Adaptor3d_TopolTool) domain2;
|
||||
Handle(Adaptor3d_TopolTool) recdomain1;
|
||||
Handle(Adaptor3d_TopolTool) recdomain2;
|
||||
Handle(ChFiDS_HElSpine) hguide;
|
||||
Standard_Boolean ToCorrectOnRst1;
|
||||
Standard_Boolean ToCorrectOnRst2;
|
||||
Standard_Real CorrectedParam;
|
||||
Standard_Real tolesp;
|
||||
Standard_Real tolgui;
|
||||
Standard_Real pasmax;
|
||||
Standard_Real fleche;
|
||||
Standard_Real param;
|
||||
Standard_Real sens;
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean rebrou;
|
||||
Standard_Boolean iscomplete;
|
||||
Standard_Boolean comptra;
|
||||
Standard_Boolean clasonS1;
|
||||
Standard_Boolean clasonS2;
|
||||
Standard_Boolean check2d;
|
||||
Standard_Boolean check;
|
||||
Standard_Boolean twistflag1;
|
||||
Standard_Boolean twistflag2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheVertex Handle(Adaptor3d_HVertex)
|
||||
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
|
||||
#define TheArc Handle(Adaptor2d_HCurve2d)
|
||||
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
|
||||
#define TheSurface Handle(Adaptor3d_HSurface)
|
||||
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheVertexTool Standard_Integer
|
||||
#define TheVertexTool_hxx <Standard_Integer.hxx>
|
||||
#define TheArcTool BRepBlend_HCurve2dTool
|
||||
#define TheArcTool_hxx <BRepBlend_HCurve2dTool.hxx>
|
||||
#define TheSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheCurveTool BRepBlend_HCurveTool
|
||||
#define TheCurveTool_hxx <BRepBlend_HCurveTool.hxx>
|
||||
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
|
||||
#define TheTopolTool Adaptor3d_TopolTool
|
||||
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
|
||||
#define TheBlendTool BRepBlend_BlendTool
|
||||
#define TheBlendTool_hxx <BRepBlend_BlendTool.hxx>
|
||||
#define ThePointOnRst BRepBlend_PointOnRst
|
||||
#define ThePointOnRst_hxx <BRepBlend_PointOnRst.hxx>
|
||||
#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst
|
||||
#define TheSeqPointOnRst_hxx <BRepBlend_SequenceOfPointOnRst.hxx>
|
||||
#define TheExtremity BRepBlend_Extremity
|
||||
#define TheExtremity_hxx <BRepBlend_Extremity.hxx>
|
||||
#define Handle_TheLine Handle(BRepBlend_Line)
|
||||
#define TheLine BRepBlend_Line
|
||||
#define TheLine_hxx <BRepBlend_Line.hxx>
|
||||
#define Blend_Walking BRepBlend_Walking
|
||||
#define Blend_Walking_hxx <BRepBlend_Walking.hxx>
|
||||
|
||||
#include <Blend_Walking.lxx>
|
||||
|
||||
#undef TheVertex
|
||||
#undef TheVertex_hxx
|
||||
#undef TheArc
|
||||
#undef TheArc_hxx
|
||||
#undef TheSurface
|
||||
#undef TheSurface_hxx
|
||||
#undef TheCurve
|
||||
#undef TheCurve_hxx
|
||||
#undef TheVertexTool
|
||||
#undef TheVertexTool_hxx
|
||||
#undef TheArcTool
|
||||
#undef TheArcTool_hxx
|
||||
#undef TheSurfaceTool
|
||||
#undef TheSurfaceTool_hxx
|
||||
#undef TheCurveTool
|
||||
#undef TheCurveTool_hxx
|
||||
#undef Handle_TheTopolTool
|
||||
#undef TheTopolTool
|
||||
#undef TheTopolTool_hxx
|
||||
#undef TheBlendTool
|
||||
#undef TheBlendTool_hxx
|
||||
#undef ThePointOnRst
|
||||
#undef ThePointOnRst_hxx
|
||||
#undef TheSeqPointOnRst
|
||||
#undef TheSeqPointOnRst_hxx
|
||||
#undef TheExtremity
|
||||
#undef TheExtremity_hxx
|
||||
#undef Handle_TheLine
|
||||
#undef TheLine
|
||||
#undef TheLine_hxx
|
||||
#undef Blend_Walking
|
||||
#undef Blend_Walking_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepBlend_Walking_HeaderFile
|
74
src/BRepBlend/BRepBlend_Walking_0.cxx
Normal file
74
src/BRepBlend/BRepBlend_Walking_0.cxx
Normal file
@@ -0,0 +1,74 @@
|
||||
// Created on: 1993-12-06
|
||||
// Created by: Jacques GOUSSARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <BRepBlend_Walking.hxx>
|
||||
|
||||
#include <BRepBlend_Line.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_TopolTool.hxx>
|
||||
#include <ChFiDS_HElSpine.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Adaptor3d_HVertex.hxx>
|
||||
#include <Adaptor2d_HCurve2d.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <BRepBlend_HCurve2dTool.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <BRepBlend_HCurveTool.hxx>
|
||||
#include <BRepBlend_BlendTool.hxx>
|
||||
#include <BRepBlend_PointOnRst.hxx>
|
||||
#include <BRepBlend_Extremity.hxx>
|
||||
#include <Blend_Point.hxx>
|
||||
#include <Blend_Function.hxx>
|
||||
#include <Blend_FuncInv.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <IntSurf_Transition.hxx>
|
||||
|
||||
|
||||
#define TheVertex Handle(Adaptor3d_HVertex)
|
||||
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
|
||||
#define TheArc Handle(Adaptor2d_HCurve2d)
|
||||
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
|
||||
#define TheSurface Handle(Adaptor3d_HSurface)
|
||||
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheVertexTool Standard_Integer
|
||||
#define TheVertexTool_hxx <Standard_Integer.hxx>
|
||||
#define TheArcTool BRepBlend_HCurve2dTool
|
||||
#define TheArcTool_hxx <BRepBlend_HCurve2dTool.hxx>
|
||||
#define TheSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheCurveTool BRepBlend_HCurveTool
|
||||
#define TheCurveTool_hxx <BRepBlend_HCurveTool.hxx>
|
||||
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
|
||||
#define TheTopolTool Adaptor3d_TopolTool
|
||||
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
|
||||
#define TheBlendTool BRepBlend_BlendTool
|
||||
#define TheBlendTool_hxx <BRepBlend_BlendTool.hxx>
|
||||
#define ThePointOnRst BRepBlend_PointOnRst
|
||||
#define ThePointOnRst_hxx <BRepBlend_PointOnRst.hxx>
|
||||
#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst
|
||||
#define TheSeqPointOnRst_hxx <BRepBlend_SequenceOfPointOnRst.hxx>
|
||||
#define TheExtremity BRepBlend_Extremity
|
||||
#define TheExtremity_hxx <BRepBlend_Extremity.hxx>
|
||||
#define Handle_TheLine Handle(BRepBlend_Line)
|
||||
#define TheLine BRepBlend_Line
|
||||
#define TheLine_hxx <BRepBlend_Line.hxx>
|
||||
#define Blend_Walking BRepBlend_Walking
|
||||
#define Blend_Walking_hxx <BRepBlend_Walking.hxx>
|
||||
#include <Blend_Walking.gxx>
|
||||
|
@@ -1,2 +1,73 @@
|
||||
BRepBlend_SequenceOfPointOnRst.hxx
|
||||
BRepBlend_AppFunc.cxx
|
||||
BRepBlend_AppFunc.hxx
|
||||
BRepBlend_AppFuncRoot.cxx
|
||||
BRepBlend_AppFuncRoot.hxx
|
||||
BRepBlend_AppFuncRst.cxx
|
||||
BRepBlend_AppFuncRst.hxx
|
||||
BRepBlend_AppFuncRstRst.cxx
|
||||
BRepBlend_AppFuncRstRst.hxx
|
||||
BRepBlend_AppSurf.hxx
|
||||
BRepBlend_AppSurf_0.cxx
|
||||
BRepBlend_AppSurface.cxx
|
||||
BRepBlend_AppSurface.hxx
|
||||
BRepBlend_AppSurface.lxx
|
||||
BRepBlend_BlendTool.cxx
|
||||
BRepBlend_BlendTool.hxx
|
||||
BRepBlend_BlendTool.lxx
|
||||
BRepBlend_Chamfer.hxx
|
||||
BRepBlend_ChamfInv.hxx
|
||||
BRepBlend_ChAsym.hxx
|
||||
BRepBlend_ChAsymInv.hxx
|
||||
BRepBlend_ConstRad.hxx
|
||||
BRepBlend_ConstRadInv.hxx
|
||||
BRepBlend_CSCircular.hxx
|
||||
BRepBlend_CSConstRad.hxx
|
||||
BRepBlend_CSWalking.hxx
|
||||
BRepBlend_CSWalking_0.cxx
|
||||
BRepBlend_CurvPointRadInv.cxx
|
||||
BRepBlend_CurvPointRadInv.hxx
|
||||
BRepBlend_EvolRad.hxx
|
||||
BRepBlend_EvolRadInv.hxx
|
||||
BRepBlend_Extremity.cxx
|
||||
BRepBlend_Extremity.hxx
|
||||
BRepBlend_Extremity.lxx
|
||||
BRepBlend_HCurve2dTool.cxx
|
||||
BRepBlend_HCurve2dTool.hxx
|
||||
BRepBlend_HCurve2dTool.lxx
|
||||
BRepBlend_HCurveTool.cxx
|
||||
BRepBlend_HCurveTool.hxx
|
||||
BRepBlend_HCurveTool.lxx
|
||||
BRepBlend_Line.cxx
|
||||
BRepBlend_Line.hxx
|
||||
BRepBlend_Line.lxx
|
||||
BRepBlend_PointOnRst.cxx
|
||||
BRepBlend_PointOnRst.hxx
|
||||
BRepBlend_PointOnRst.lxx
|
||||
BRepBlend_RstRstConstRad.cxx
|
||||
BRepBlend_RstRstConstRad.hxx
|
||||
BRepBlend_RstRstEvolRad.cxx
|
||||
BRepBlend_RstRstEvolRad.hxx
|
||||
BRepBlend_RstRstLineBuilder.cxx
|
||||
BRepBlend_RstRstLineBuilder.hxx
|
||||
BRepBlend_RstRstLineBuilder.lxx
|
||||
BRepBlend_Ruled.hxx
|
||||
BRepBlend_RuledInv.hxx
|
||||
BRepBlend_SequenceOfLine.hxx
|
||||
BRepBlend_SequenceOfPointOnRst.hxx
|
||||
BRepBlend_SurfCurvConstRadInv.cxx
|
||||
BRepBlend_SurfCurvConstRadInv.hxx
|
||||
BRepBlend_SurfCurvEvolRadInv.cxx
|
||||
BRepBlend_SurfCurvEvolRadInv.hxx
|
||||
BRepBlend_SurfPointConstRadInv.cxx
|
||||
BRepBlend_SurfPointConstRadInv.hxx
|
||||
BRepBlend_SurfPointEvolRadInv.cxx
|
||||
BRepBlend_SurfPointEvolRadInv.hxx
|
||||
BRepBlend_SurfRstConstRad.cxx
|
||||
BRepBlend_SurfRstConstRad.hxx
|
||||
BRepBlend_SurfRstEvolRad.cxx
|
||||
BRepBlend_SurfRstEvolRad.hxx
|
||||
BRepBlend_SurfRstLineBuilder.cxx
|
||||
BRepBlend_SurfRstLineBuilder.hxx
|
||||
BRepBlend_SurfRstLineBuilder.lxx
|
||||
BRepBlend_Walking.hxx
|
||||
BRepBlend_Walking_0.cxx
|
||||
|
Reference in New Issue
Block a user