Open CASCADE Technology
6.5.4
|
Composite surface is represented by a grid of surfaces
(patches) connected geometrically. Patches may have different
parametrisation ranges, but they should be parametrised in
the same manner so that parameter of each patch (u,v) can be converted
to global parameter on the whole surface (U,V) with help of linear
transformation:
for any i,j-th patch
U = Ui + ( u - uijmin ) * ( Ui+1 - Ui ) / ( uijmax - uijmin )
V = Vj + ( v - vijmin ) * ( Vj+1 - Vj ) / ( vijmax - vijmin )
where
[uijmin, uijmax] * [ vijmin, vijmax] - parametric range of i,j-th patch,
Ui (i=1,..,Nu+1), Vi (j=1,..,Nv+1) - values defining global
parametrisation by U and V (correspond to points between patches and
bounds, (Ui,Uj) corresponds to (uijmin,vijmin) on i,j-th patch) and to
(u(i-1)(j-1)max,v(i-1)(j-1)max) on (i-1),(j-1)-th patch.
Geometrical connectivity is expressed via global parameters:
S[i,j](Ui+1,V) = S[i+1,j](Ui+1,V) for any i, j, V
S[i,j](U,Vj+1) = S[i,j+1](U,Vj+1) for any i, j, U
It is checked with Precision::Confusion() by default.
NOTE 1: This class is inherited from Geom_Surface in order to
make it more easy to store and deal with it. However, it should
not be passed to standard methods dealing with geometry since
this type is not known to them.
NOTE 2: Not all the inherited methods are implemented, and some are
implemented not in the full form.
#include <ShapeExtend_CompositeSurface.hxx>
Public Member Functions | |
ShapeExtend_CompositeSurface () | |
Empty constructor. | |
ShapeExtend_CompositeSurface (const Handle< TColGeom_HArray2OfSurface > &GridSurf, const ShapeExtend_Parametrisation param=ShapeExtend_Natural) | |
Initializes by a grid of surfaces (calls Init()). | |
ShapeExtend_CompositeSurface (const Handle< TColGeom_HArray2OfSurface > &GridSurf, const TColStd_Array1OfReal &UJoints, const TColStd_Array1OfReal &VJoints) | |
Initializes by a grid of surfaces (calls Init()). | |
Standard_Boolean | Init (const Handle< TColGeom_HArray2OfSurface > &GridSurf, const ShapeExtend_Parametrisation param=ShapeExtend_Natural) |
Initializes by a grid of surfaces. All the Surfaces of the grid must have geometrical connectivity as stated above. If geometrical connectivity is not satisfied, method returns False. However, class is initialized even in that case. Last parameter defines how global parametrisation (joint values) will be computed: ShapeExtend_Natural: U1 = u11min, Ui+1 = Ui + (ui1max-ui1min), etc. ShapeExtend_Uniform: Ui = i-1, Vj = j-1 ShapeExtend_Unitary: Ui = (i-1)/Nu, Vi = (j-1)/Nv | |
Standard_Boolean | Init (const Handle< TColGeom_HArray2OfSurface > &GridSurf, const TColStd_Array1OfReal &UJoints, const TColStd_Array1OfReal &VJoints) |
Initializes by a grid of surfaces with given global parametrisation defined by UJoints and VJoints arrays, each having langth equal to number of patches in corresponding direction + 1. Global joint values should be sorted in increasing order. All the Surfaces of the grid must have geometrical connectivity as stated above. If geometrical connectivity is not satisfied, method returns False. However, class is initialized even in that case. | |
Standard_Integer | NbUPatches () const |
Returns number of patches in U direction. | |
Standard_Integer | NbVPatches () const |
Returns number of patches in V direction. | |
const Handle_Geom_Surface & | Patch (const Standard_Integer i, const Standard_Integer j) const |
Returns one surface patch | |
const Handle_TColGeom_HArray2OfSurface & | Patches () const |
Returns grid of surfaces | |
Handle_TColStd_HArray1OfReal | UJointValues () const |
Returns the array of U values corresponding to joint points between patches as well as to start and end points, which define global parametrisation of the surface | |
Handle_TColStd_HArray1OfReal | VJointValues () const |
Returns the array of V values corresponding to joint points between patches as well as to start and end points, which define global parametrisation of the surface | |
Standard_Real | UJointValue (const Standard_Integer i) const |
Returns i-th joint value in U direction (1-st is global Umin, (NbUPatches()+1)-th is global Umax on the composite surface) | |
Standard_Real | VJointValue (const Standard_Integer j) const |
Returns j-th joint value in V direction (1-st is global Vmin, (NbVPatches()+1)-th is global Vmax on the composite surface) | |
Standard_Boolean | SetUJointValues (const TColStd_Array1OfReal &UJoints) |
Sets the array of U values corresponding to joint points, which define global parametrisation of the surface. Number of values in array should be equal to NbUPatches()+1. All the values should be sorted in increasing order. If this is not satisfied, does nothing and returns False. | |
Standard_Boolean | SetVJointValues (const TColStd_Array1OfReal &VJoints) |
Sets the array of V values corresponding to joint points, which define global parametrisation of the surface Number of values in array should be equal to NbVPatches()+1. All the values should be sorted in increasing order. If this is not satisfied, does nothing and returns False. | |
void | SetUFirstValue (const Standard_Real UFirst) |
Changes starting value for global U parametrisation (all other joint values are shifted accordingly) | |
void | SetVFirstValue (const Standard_Real VFirst) |
Changes starting value for global V parametrisation (all other joint values are shifted accordingly) | |
Standard_Integer | LocateUParameter (const Standard_Real U) const |
Returns number of col that contains given (global) parameter | |
Standard_Integer | LocateVParameter (const Standard_Real V) const |
Returns number of row that contains given (global) parameter | |
void | LocateUVPoint (const gp_Pnt2d &pnt, Standard_Integer &i, Standard_Integer &j) const |
Returns number of row and col of surface that contains given point | |
const Handle_Geom_Surface & | Patch (const Standard_Real U, const Standard_Real V) const |
Returns one surface patch that contains given (global) parameters | |
const Handle_Geom_Surface & | Patch (const gp_Pnt2d &pnt) const |
Returns one surface patch that contains given point | |
Standard_Real | ULocalToGlobal (const Standard_Integer i, const Standard_Integer j, const Standard_Real u) const |
Converts local parameter u on patch i,j to global parameter U | |
Standard_Real | VLocalToGlobal (const Standard_Integer i, const Standard_Integer j, const Standard_Real v) const |
Converts local parameter v on patch i,j to global parameter V | |
gp_Pnt2d | LocalToGlobal (const Standard_Integer i, const Standard_Integer j, const gp_Pnt2d &uv) const |
Converts local parameters uv on patch i,j to global parameters UV | |
Standard_Real | UGlobalToLocal (const Standard_Integer i, const Standard_Integer j, const Standard_Real U) const |
Converts global parameter U to local parameter u on patch i,j | |
Standard_Real | VGlobalToLocal (const Standard_Integer i, const Standard_Integer j, const Standard_Real V) const |
Converts global parameter V to local parameter v on patch i,j | |
gp_Pnt2d | GlobalToLocal (const Standard_Integer i, const Standard_Integer j, const gp_Pnt2d &UV) const |
Converts global parameters UV to local parameters uv on patch i,j | |
Standard_Boolean | GlobalToLocalTransformation (const Standard_Integer i, const Standard_Integer j, Standard_Real &uFact, gp_Trsf2d &Trsf) const |
Computes transformation operator and uFactor descrinbing affine transformation required to convert global parameters on composite surface to local parameters on patch (i,j): uv = ( uFactor, 1. ) X Trsf * UV; NOTE: Thus Trsf contains shift and scale by V, scale by U is stored in uFact. Returns True if transformation is not an identity | |
virtual void | Transform (const gp_Trsf &T) |
Applies transformation to all the patches | |
virtual Handle_Geom_Geometry | Copy () const |
Returns a copy of the surface | |
virtual void | UReverse () |
NOT IMPLEMENTED (does nothing) | |
virtual Standard_Real | UReversedParameter (const Standard_Real U) const |
Returns U | |
virtual void | VReverse () |
NOT IMPLEMENTED (does nothing) | |
virtual Standard_Real | VReversedParameter (const Standard_Real V) const |
Returns V | |
virtual void | Bounds (Standard_Real &U1, Standard_Real &U2, Standard_Real &V1, Standard_Real &V2) const |
Returns the parametric bounds of grid | |
virtual Standard_Boolean | IsUClosed () const |
Returns True if grid is closed in U direction (i.e. connected with Precision::Confusion) | |
virtual Standard_Boolean | IsVClosed () const |
Returns True if grid is closed in V direction (i.e. connected with Precision::Confusion) | |
virtual Standard_Boolean | IsUPeriodic () const |
Returns False | |
virtual Standard_Boolean | IsVPeriodic () const |
Returns False | |
virtual Handle_Geom_Curve | UIso (const Standard_Real U) const |
NOT IMPLEMENTED (returns Null curve) | |
virtual Handle_Geom_Curve | VIso (const Standard_Real V) const |
NOT IMPLEMENTED (returns Null curve) | |
virtual GeomAbs_Shape | Continuity () const |
returns C0 | |
virtual Standard_Boolean | IsCNu (const Standard_Integer N) const |
returns True if N <=0 | |
virtual Standard_Boolean | IsCNv (const Standard_Integer N) const |
returns True if N <=0 | |
virtual void | D0 (const Standard_Real U, const Standard_Real V, gp_Pnt &P) const |
Computes the point of parameter U,V on the grid. | |
virtual void | D1 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V) const |
Computes the point P and the first derivatives in the directions U and V at this point. | |
virtual void | D2 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V, gp_Vec &D2U, gp_Vec &D2V, gp_Vec &D2UV) const |
Computes the point P, the first and the second derivatives in the directions U and V at this point. | |
virtual void | D3 (const Standard_Real U, const Standard_Real V, gp_Pnt &P, gp_Vec &D1U, gp_Vec &D1V, gp_Vec &D2U, gp_Vec &D2V, gp_Vec &D2UV, gp_Vec &D3U, gp_Vec &D3V, gp_Vec &D3UUV, gp_Vec &D3UVV) const |
Computes the point P, the first,the second and the third derivatives in the directions U and V at this point. | |
virtual gp_Vec | DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const |
Computes the derivative of order Nu in the direction U and Nv in the direction V at the point P(U, V). | |
gp_Pnt | Value (const gp_Pnt2d &pnt) const |
Computes the point of parameter pnt on the grid. | |
void | ComputeJointValues (const ShapeExtend_Parametrisation param=ShapeExtend_Natural) |
Computes Joint values according to parameter | |
Standard_Boolean | CheckConnectivity (const Standard_Real prec) |
Checks geometrical connectivity of the patches, including closedness (sets fields muUClosed and myVClosed) |
ShapeExtend_CompositeSurface::ShapeExtend_CompositeSurface | ( | const Handle< TColGeom_HArray2OfSurface > & | GridSurf, |
const ShapeExtend_Parametrisation | param = ShapeExtend_Natural |
||
) |
ShapeExtend_CompositeSurface::ShapeExtend_CompositeSurface | ( | const Handle< TColGeom_HArray2OfSurface > & | GridSurf, |
const TColStd_Array1OfReal & | UJoints, | ||
const TColStd_Array1OfReal & | VJoints | ||
) |
virtual void ShapeExtend_CompositeSurface::Bounds | ( | Standard_Real & | U1, |
Standard_Real & | U2, | ||
Standard_Real & | V1, | ||
Standard_Real & | V2 | ||
) | const [virtual] |
Implements Geom_Surface.
void ShapeExtend_CompositeSurface::ComputeJointValues | ( | const ShapeExtend_Parametrisation | param = ShapeExtend_Natural | ) |
virtual GeomAbs_Shape ShapeExtend_CompositeSurface::Continuity | ( | ) | const [virtual] |
Implements Geom_Surface.
virtual Handle_Geom_Geometry ShapeExtend_CompositeSurface::Copy | ( | ) | const [virtual] |
Implements Geom_Geometry.
virtual void ShapeExtend_CompositeSurface::D0 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
gp_Pnt & | P | ||
) | const [virtual] |
Implements Geom_Surface.
virtual void ShapeExtend_CompositeSurface::D1 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
gp_Pnt & | P, | ||
gp_Vec & | D1U, | ||
gp_Vec & | D1V | ||
) | const [virtual] |
Implements Geom_Surface.
virtual void ShapeExtend_CompositeSurface::D2 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
gp_Pnt & | P, | ||
gp_Vec & | D1U, | ||
gp_Vec & | D1V, | ||
gp_Vec & | D2U, | ||
gp_Vec & | D2V, | ||
gp_Vec & | D2UV | ||
) | const [virtual] |
Implements Geom_Surface.
virtual void ShapeExtend_CompositeSurface::D3 | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
gp_Pnt & | P, | ||
gp_Vec & | D1U, | ||
gp_Vec & | D1V, | ||
gp_Vec & | D2U, | ||
gp_Vec & | D2V, | ||
gp_Vec & | D2UV, | ||
gp_Vec & | D3U, | ||
gp_Vec & | D3V, | ||
gp_Vec & | D3UUV, | ||
gp_Vec & | D3UVV | ||
) | const [virtual] |
Implements Geom_Surface.
virtual gp_Vec ShapeExtend_CompositeSurface::DN | ( | const Standard_Real | U, |
const Standard_Real | V, | ||
const Standard_Integer | Nu, | ||
const Standard_Integer | Nv | ||
) | const [virtual] |
Implements Geom_Surface.
gp_Pnt2d ShapeExtend_CompositeSurface::GlobalToLocal | ( | const Standard_Integer | i, |
const Standard_Integer | j, | ||
const gp_Pnt2d & | UV | ||
) | const |
Standard_Boolean ShapeExtend_CompositeSurface::GlobalToLocalTransformation | ( | const Standard_Integer | i, |
const Standard_Integer | j, | ||
Standard_Real & | uFact, | ||
gp_Trsf2d & | Trsf | ||
) | const |
Standard_Boolean ShapeExtend_CompositeSurface::Init | ( | const Handle< TColGeom_HArray2OfSurface > & | GridSurf, |
const ShapeExtend_Parametrisation | param = ShapeExtend_Natural |
||
) |
Standard_Boolean ShapeExtend_CompositeSurface::Init | ( | const Handle< TColGeom_HArray2OfSurface > & | GridSurf, |
const TColStd_Array1OfReal & | UJoints, | ||
const TColStd_Array1OfReal & | VJoints | ||
) |
virtual Standard_Boolean ShapeExtend_CompositeSurface::IsCNu | ( | const Standard_Integer | N | ) | const [virtual] |
Implements Geom_Surface.
virtual Standard_Boolean ShapeExtend_CompositeSurface::IsCNv | ( | const Standard_Integer | N | ) | const [virtual] |
Implements Geom_Surface.
virtual Standard_Boolean ShapeExtend_CompositeSurface::IsUClosed | ( | ) | const [virtual] |
Implements Geom_Surface.
virtual Standard_Boolean ShapeExtend_CompositeSurface::IsUPeriodic | ( | ) | const [virtual] |
Implements Geom_Surface.
virtual Standard_Boolean ShapeExtend_CompositeSurface::IsVClosed | ( | ) | const [virtual] |
Implements Geom_Surface.
virtual Standard_Boolean ShapeExtend_CompositeSurface::IsVPeriodic | ( | ) | const [virtual] |
Implements Geom_Surface.
gp_Pnt2d ShapeExtend_CompositeSurface::LocalToGlobal | ( | const Standard_Integer | i, |
const Standard_Integer | j, | ||
const gp_Pnt2d & | uv | ||
) | const |
void ShapeExtend_CompositeSurface::LocateUVPoint | ( | const gp_Pnt2d & | pnt, |
Standard_Integer & | i, | ||
Standard_Integer & | j | ||
) | const |
const Handle_Geom_Surface& ShapeExtend_CompositeSurface::Patch | ( | const Standard_Integer | i, |
const Standard_Integer | j | ||
) | const |
const Handle_Geom_Surface& ShapeExtend_CompositeSurface::Patch | ( | const Standard_Real | U, |
const Standard_Real | V | ||
) | const |
const Handle_Geom_Surface& ShapeExtend_CompositeSurface::Patch | ( | const gp_Pnt2d & | pnt | ) | const |
const Handle_TColGeom_HArray2OfSurface& ShapeExtend_CompositeSurface::Patches | ( | ) | const |
Standard_Boolean ShapeExtend_CompositeSurface::SetUJointValues | ( | const TColStd_Array1OfReal & | UJoints | ) |
Standard_Boolean ShapeExtend_CompositeSurface::SetVJointValues | ( | const TColStd_Array1OfReal & | VJoints | ) |
virtual void ShapeExtend_CompositeSurface::Transform | ( | const gp_Trsf & | T | ) | [virtual] |
Implements Geom_Geometry.
Standard_Real ShapeExtend_CompositeSurface::UGlobalToLocal | ( | const Standard_Integer | i, |
const Standard_Integer | j, | ||
const Standard_Real | U | ||
) | const |
virtual Handle_Geom_Curve ShapeExtend_CompositeSurface::UIso | ( | const Standard_Real | U | ) | const [virtual] |
Implements Geom_Surface.
Handle_TColStd_HArray1OfReal ShapeExtend_CompositeSurface::UJointValues | ( | ) | const |
Standard_Real ShapeExtend_CompositeSurface::ULocalToGlobal | ( | const Standard_Integer | i, |
const Standard_Integer | j, | ||
const Standard_Real | u | ||
) | const |
virtual void ShapeExtend_CompositeSurface::UReverse | ( | ) | [virtual] |
Implements Geom_Surface.
virtual Standard_Real ShapeExtend_CompositeSurface::UReversedParameter | ( | const Standard_Real | U | ) | const [virtual] |
Implements Geom_Surface.
gp_Pnt ShapeExtend_CompositeSurface::Value | ( | const gp_Pnt2d & | pnt | ) | const |
Standard_Real ShapeExtend_CompositeSurface::VGlobalToLocal | ( | const Standard_Integer | i, |
const Standard_Integer | j, | ||
const Standard_Real | V | ||
) | const |
virtual Handle_Geom_Curve ShapeExtend_CompositeSurface::VIso | ( | const Standard_Real | V | ) | const [virtual] |
Implements Geom_Surface.
Handle_TColStd_HArray1OfReal ShapeExtend_CompositeSurface::VJointValues | ( | ) | const |
Standard_Real ShapeExtend_CompositeSurface::VLocalToGlobal | ( | const Standard_Integer | i, |
const Standard_Integer | j, | ||
const Standard_Real | v | ||
) | const |
virtual void ShapeExtend_CompositeSurface::VReverse | ( | ) | [virtual] |
Implements Geom_Surface.
virtual Standard_Real ShapeExtend_CompositeSurface::VReversedParameter | ( | const Standard_Real | V | ) | const [virtual] |
Implements Geom_Surface.