Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
ShapeExtend_CompositeSurface Class Reference

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>

Inheritance diagram for ShapeExtend_CompositeSurface:
Inheritance graph
[legend]

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)


Constructor & Destructor Documentation


Member Function Documentation

virtual void ShapeExtend_CompositeSurface::Bounds ( Standard_Real U1,
Standard_Real U2,
Standard_Real V1,
Standard_Real V2 
) const [virtual]

Implements Geom_Surface.

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.

Implements Geom_Surface.

Implements Geom_Surface.

Implements Geom_Surface.

Implements Geom_Surface.

Implements Geom_Surface.

Implements Geom_Surface.

Implements Geom_Surface.

const Handle_Geom_Surface& ShapeExtend_CompositeSurface::Patch ( const gp_Pnt2d pnt) const
const Handle_TColGeom_HArray2OfSurface& ShapeExtend_CompositeSurface::Patches ( ) const

Implements Geom_Geometry.

virtual Handle_Geom_Curve ShapeExtend_CompositeSurface::UIso ( const Standard_Real  U) const [virtual]

Implements Geom_Surface.

Handle_TColStd_HArray1OfReal ShapeExtend_CompositeSurface::UJointValues ( ) const

Implements Geom_Surface.

Implements Geom_Surface.

virtual Handle_Geom_Curve ShapeExtend_CompositeSurface::VIso ( const Standard_Real  V) const [virtual]

Implements Geom_Surface.

Handle_TColStd_HArray1OfReal ShapeExtend_CompositeSurface::VJointValues ( ) const

Implements Geom_Surface.

Implements Geom_Surface.


The documentation for this class was generated from the following file: