1
0
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:
abv
2015-07-12 07:42:38 +03:00
parent 543a996496
commit 42cf5bc1ca
15354 changed files with 623957 additions and 509844 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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,

View 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

View File

@@ -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;

View File

@@ -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,

View 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

View File

@@ -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;

View File

@@ -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,

View 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

View File

@@ -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;

View File

@@ -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,

View 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

View 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

View 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>

View File

@@ -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;

View File

@@ -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,

View 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

View File

@@ -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;

View File

@@ -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

View 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

View 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

View 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

View 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

View 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>

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -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;

View File

@@ -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)

View 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

View 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

View 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

View File

@@ -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;

View File

@@ -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)),

View 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

View File

@@ -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;

View File

@@ -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,

View 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

View File

@@ -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;

View File

@@ -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,

View 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

View File

@@ -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;

View File

@@ -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),

View 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

View File

@@ -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;

View File

@@ -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 () {}

View 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

View File

@@ -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;

View File

@@ -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

View 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

View File

@@ -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;

View File

@@ -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

View 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

View File

@@ -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;

View File

@@ -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>

View 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

View 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

View 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

View File

@@ -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;

View File

@@ -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,

View 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

View File

@@ -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;

View File

@@ -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 :

View 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

View File

@@ -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;

View File

@@ -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)

View 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

View File

@@ -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;

View File

@@ -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 :

View 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

View File

@@ -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;

View File

@@ -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

View 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

View File

@@ -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;

View File

@@ -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

View 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

View File

@@ -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;

View File

@@ -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>

View 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

View 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

View 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>

View File

@@ -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