|
Open CASCADE Technology
6.7.1
|
This class provides an algorithm for constructing such a plate surface that
it conforms to given curve and/or point constraints.
The algorithm accepts or constructs an initial surface
and looks for a deformation of it satisfying the
constraints and minimizing energy input.
A BuildPlateSurface object provides a framework for:
More...
#include <GeomPlate_BuildPlateSurface.hxx>
Public Member Functions | |
| GeomPlate_BuildPlateSurface (const Handle< TColStd_HArray1OfInteger > &NPoints, const Handle< GeomPlate_HArray1OfHCurveOnSurface > &TabCurve, const Handle< TColStd_HArray1OfInteger > &Tang, const Standard_Integer Degree, const Standard_Integer NbIter=3, const Standard_Real Tol2d=0.00001, const Standard_Real Tol3d=0.0001, const Standard_Real TolAng=0.01, const Standard_Real TolCurv=0.1, const Standard_Boolean Anisotropie=Standard_False) | |
Constructor compatible with the old version <br> with this constructor the constraint are given in a Array of Curve on Surface | |
| GeomPlate_BuildPlateSurface (const Handle< Geom_Surface > &Surf, const Standard_Integer Degree=3, const Standard_Integer NbPtsOnCur=10, const Standard_Integer NbIter=3, const Standard_Real Tol2d=0.00001, const Standard_Real Tol3d=0.0001, const Standard_Real TolAng=0.01, const Standard_Real TolCurv=0.1, const Standard_Boolean Anisotropie=Standard_False) | |
| GeomPlate_BuildPlateSurface (const Standard_Integer Degree=3, const Standard_Integer NbPtsOnCur=10, const Standard_Integer NbIter=3, const Standard_Real Tol2d=0.00001, const Standard_Real Tol3d=0.0001, const Standard_Real TolAng=0.01, const Standard_Real TolCurv=0.1, const Standard_Boolean Anisotropie=Standard_False) | |
Initializes the BuildPlateSurface framework for <br> deforming plate surfaces using curve and point | |
| void | Init () |
| Resets all constraints More... | |
| void | LoadInitSurface (const Handle< Geom_Surface > &Surf) |
| Loads the initial Surface More... | |
| void | Add (const Handle< GeomPlate_CurveConstraint > &Cont) |
| Adds the linear constraint cont. More... | |
| void | SetNbBounds (const Standard_Integer NbBounds) |
| void | Add (const Handle< GeomPlate_PointConstraint > &Cont) |
| Adds the point constraint cont. More... | |
| void | Perform () |
| Calls the algorithm and computes the plate surface using the loaded constraints. If no initial surface is given, the algorithm automatically computes one. Exceptions Standard_RangeError if the value of the constraint is null or if plate is not done. More... | |
| Handle_GeomPlate_CurveConstraint | CurveConstraint (const Standard_Integer order) const |
returns the CurveConstraints of order order <br> | |
| Handle_GeomPlate_PointConstraint | PointConstraint (const Standard_Integer order) const |
returns the PointConstraint of order order <br> | |
| void | Disc2dContour (const Standard_Integer nbp, TColgp_SequenceOfXY &Seq2d) |
| void | Disc3dContour (const Standard_Integer nbp, const Standard_Integer iordre, TColgp_SequenceOfXYZ &Seq3d) |
| Standard_Boolean | IsDone () const |
| Tests whether computation of the plate has been completed. More... | |
| Handle_GeomPlate_Surface | Surface () const |
| Returns the result of the computation. This surface can then be used by GeomPlate_MakeApprox for converting the resulting surface into a BSpline. More... | |
| Handle_Geom_Surface | SurfInit () const |
| Returns the initial surface More... | |
| Handle_TColStd_HArray1OfInteger | Sense () const |
| Allows you to ensure that the array of curves returned by Curves2d has the correct orientation. Returns the orientation of the curves in the the array returned by Curves2d. Computation changes the orientation of these curves. Consequently, this method returns the orientation prior to computation. More... | |
| Handle_TColGeom2d_HArray1OfCurve | Curves2d () const |
| Extracts the array of curves on the plate surface which correspond to the curve constraints set in Add. More... | |
| Handle_TColStd_HArray1OfInteger | Order () const |
| Returns the order of the curves in the array returned by Curves2d. Computation changes this order. Consequently, this method returns the order of the curves prior to computation. More... | |
| Standard_Real | G0Error () const |
| Returns the max distance betwen the result and the constraints More... | |
| Standard_Real | G1Error () const |
| Returns the max angle betwen the result and the constraints More... | |
| Standard_Real | G2Error () const |
Returns the max difference of curvature betwen the result and the constraints <br> | |
| Standard_Real | G0Error (const Standard_Integer Index) |
| Returns the max distance between the result and the constraint Index More... | |
| Standard_Real | G1Error (const Standard_Integer Index) |
| Returns the max angle between the result and the constraint Index More... | |
| Standard_Real | G2Error (const Standard_Integer Index) |
Returns the max difference of curvature between the result and the constraint Index <br> | |
This class provides an algorithm for constructing such a plate surface that
it conforms to given curve and/or point constraints.
The algorithm accepts or constructs an initial surface
and looks for a deformation of it satisfying the
constraints and minimizing energy input.
A BuildPlateSurface object provides a framework for:
| GeomPlate_BuildPlateSurface::GeomPlate_BuildPlateSurface | ( | const Handle< TColStd_HArray1OfInteger > & | NPoints, |
| const Handle< GeomPlate_HArray1OfHCurveOnSurface > & | TabCurve, | ||
| const Handle< TColStd_HArray1OfInteger > & | Tang, | ||
| const Standard_Integer | Degree, | ||
| const Standard_Integer | NbIter = 3, |
||
| const Standard_Real | Tol2d = 0.00001, |
||
| const Standard_Real | Tol3d = 0.0001, |
||
| const Standard_Real | TolAng = 0.01, |
||
| const Standard_Real | TolCurv = 0.1, |
||
| const Standard_Boolean | Anisotropie = Standard_False |
||
| ) |
Constructor compatible with the old version <br>
with this constructor the constraint are given in a Array of Curve on Surface
The array NbPoints contains the number of points for each constraint.
The Array Tang contains the order of constraint for each Constraint: The possible values for this
order has to be -1 , 0 , 1 , 2 . Order i means constraint Gi.
NbIter is the maximum number of iteration to optimise the number of points for resolution
Degree is the degree of resolution for Plate
Tol2d is the tolerance used to test if two points of different constraint are identical in the
parametric space of the initial surface
Tol3d is used to test if two identical points in the 2d space are identical in 3d space
TolAng is used to compare the angle between normal of two identical points in the 2d space
Raises ConstructionError;
| GeomPlate_BuildPlateSurface::GeomPlate_BuildPlateSurface | ( | const Handle< Geom_Surface > & | Surf, |
| const Standard_Integer | Degree = 3, |
||
| const Standard_Integer | NbPtsOnCur = 10, |
||
| const Standard_Integer | NbIter = 3, |
||
| const Standard_Real | Tol2d = 0.00001, |
||
| const Standard_Real | Tol3d = 0.0001, |
||
| const Standard_Real | TolAng = 0.01, |
||
| const Standard_Real | TolCurv = 0.1, |
||
| const Standard_Boolean | Anisotropie = Standard_False |
||
| ) |
| GeomPlate_BuildPlateSurface::GeomPlate_BuildPlateSurface | ( | const Standard_Integer | Degree = 3, |
| const Standard_Integer | NbPtsOnCur = 10, |
||
| const Standard_Integer | NbIter = 3, |
||
| const Standard_Real | Tol2d = 0.00001, |
||
| const Standard_Real | Tol3d = 0.0001, |
||
| const Standard_Real | TolAng = 0.01, |
||
| const Standard_Real | TolCurv = 0.1, |
||
| const Standard_Boolean | Anisotropie = Standard_False |
||
| ) |
Initializes the BuildPlateSurface framework for <br>
deforming plate surfaces using curve and point
constraints. You use the first constructor if you have
an initial surface to work with at construction time. If
not, you use the second. You can add one later by
using the method LoadInitSurface. If no initial
surface is loaded, one will automatically be computed.
The curve and point constraints will be defined by
using the method Add.
Before the call to the algorithm, the curve constraints
will be transformed into sequences of discrete points.
Each curve defined as a constraint will be given the
value of NbPtsOnCur as the average number of points on it.
Several arguments serve to improve performance of
the algorithm. NbIter, for example, expresses the
number of iterations allowed and is used to control the
duration of computation. To optimize resolution,
Degree will have the default value of 3.
The surface generated must respect several tolerance values:
| void GeomPlate_BuildPlateSurface::Add | ( | const Handle< GeomPlate_CurveConstraint > & | Cont | ) |
Adds the linear constraint cont.
| void GeomPlate_BuildPlateSurface::Add | ( | const Handle< GeomPlate_PointConstraint > & | Cont | ) |
Adds the point constraint cont.
| Handle_GeomPlate_CurveConstraint GeomPlate_BuildPlateSurface::CurveConstraint | ( | const Standard_Integer | order | ) | const |
returns the CurveConstraints of order order <br>
| Handle_TColGeom2d_HArray1OfCurve GeomPlate_BuildPlateSurface::Curves2d | ( | ) | const |
Extracts the array of curves on the plate surface which
correspond to the curve constraints set in Add.
| void GeomPlate_BuildPlateSurface::Disc2dContour | ( | const Standard_Integer | nbp, |
| TColgp_SequenceOfXY & | Seq2d | ||
| ) |
| void GeomPlate_BuildPlateSurface::Disc3dContour | ( | const Standard_Integer | nbp, |
| const Standard_Integer | iordre, | ||
| TColgp_SequenceOfXYZ & | Seq3d | ||
| ) |
| Standard_Real GeomPlate_BuildPlateSurface::G0Error | ( | ) | const |
Returns the max distance betwen the result and the constraints
| Standard_Real GeomPlate_BuildPlateSurface::G0Error | ( | const Standard_Integer | Index | ) |
Returns the max distance between the result and the constraint Index
| Standard_Real GeomPlate_BuildPlateSurface::G1Error | ( | ) | const |
Returns the max angle betwen the result and the constraints
| Standard_Real GeomPlate_BuildPlateSurface::G1Error | ( | const Standard_Integer | Index | ) |
Returns the max angle between the result and the constraint Index
| Standard_Real GeomPlate_BuildPlateSurface::G2Error | ( | ) | const |
Returns the max difference of curvature betwen the result and the constraints <br>
| Standard_Real GeomPlate_BuildPlateSurface::G2Error | ( | const Standard_Integer | Index | ) |
Returns the max difference of curvature between the result and the constraint Index <br>
| void GeomPlate_BuildPlateSurface::Init | ( | ) |
Resets all constraints
| Standard_Boolean GeomPlate_BuildPlateSurface::IsDone | ( | ) | const |
Tests whether computation of the plate has been completed.
| void GeomPlate_BuildPlateSurface::LoadInitSurface | ( | const Handle< Geom_Surface > & | Surf | ) |
Loads the initial Surface
| Handle_TColStd_HArray1OfInteger GeomPlate_BuildPlateSurface::Order | ( | ) | const |
Returns the order of the curves in the array returned by
Curves2d. Computation changes this order.
Consequently, this method returns the order of the
curves prior to computation.
| void GeomPlate_BuildPlateSurface::Perform | ( | ) |
Calls the algorithm and computes the plate surface using
the loaded constraints. If no initial surface is given, the
algorithm automatically computes one.
Exceptions
Standard_RangeError if the value of the constraint is
null or if plate is not done.
| Handle_GeomPlate_PointConstraint GeomPlate_BuildPlateSurface::PointConstraint | ( | const Standard_Integer | order | ) | const |
returns the PointConstraint of order order <br>
| Handle_TColStd_HArray1OfInteger GeomPlate_BuildPlateSurface::Sense | ( | ) | const |
Allows you to ensure that the array of curves returned by
Curves2d has the correct orientation. Returns the
orientation of the curves in the the array returned by
Curves2d. Computation changes the orientation of
these curves. Consequently, this method returns the
orientation prior to computation.
| void GeomPlate_BuildPlateSurface::SetNbBounds | ( | const Standard_Integer | NbBounds | ) |
| Handle_GeomPlate_Surface GeomPlate_BuildPlateSurface::Surface | ( | ) | const |
Returns the result of the computation. This surface can
then be used by GeomPlate_MakeApprox for
converting the resulting surface into a BSpline.
| Handle_Geom_Surface GeomPlate_BuildPlateSurface::SurfInit | ( | ) | const |
Returns the initial surface
1.8.5