C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2

Surface parameter by grid of curves. More...

#include <op_shell_parameter.h>

Public Member Functions

 MeshSurfaceValues (const MeshSurfaceValues &, MbRegDuplicate *ireg)
 Copy-constructor.
 
 MeshSurfaceValues ()
 Default constructor.
 
 ~MeshSurfaceValues ()
 Destructor.
 
bool Init (const RPArray< MbCurve3D > &curvesU, bool uClosed, const RPArray< MbCurve3D > &curvesV, bool vClosed, bool checkSelfInt, bool tess=false, const RPArray< MbPolyline3D > *chainsU=nullptr, const RPArray< MbPolyline3D > *chainsV=nullptr, MbeMatingType type0=trt_Position, MbeMatingType type1=trt_Position, MbeMatingType type2=trt_Position, MbeMatingType type3=trt_Position, const c3d::ConstSurfacesVector *surf0=nullptr, const c3d::ConstSurfacesVector *surf1=nullptr, const c3d::ConstSurfacesVector *surf2=nullptr, const c3d::ConstSurfacesVector *surf3=nullptr, const MbPoint3D *pnt=nullptr, bool modify=true, bool direct0=true, bool direct1=true, bool direct2=true, bool direct3=true)
 Copy operator. More...
 
bool Init (const RPArray< MbCurve3D > &curvesU, const RPArray< MbCurve3D > &curvesV, bool uClosed, bool vClosed, MbeMatingType(&types)[4], const c3d::ConstSurfacesVector *(&surfaces)[4], bool(&useDefaultDir)[4], bool checkSelfInt, bool tess, bool smooth, const RPArray< MbPolyline3D > *chainsU, const RPArray< MbPolyline3D > *chainsV, const MbPoint3D *pnt, bool modify)
 Initialization function. More...
 
void Init (const MeshSurfaceValues &pars, bool sameItems)
 Initialization function. More...
 
bool IsCurveOnSurface (const MbCurve3D &curve, const MbSurface &surf) const
 Determine whether the curve lies on the surface. More...
 
bool GetPointsOfCrossing (const MbCurve3D &curve, const RPArray< MbCurve3D > &otherCurves, SArray< MbCartPoint3D > &res) const
 Get crossing-intersection points of curves with the set of curves.
 
bool CheckMultiSegment (const MbSNameMaker &snMaker) const
 Check for contours and broken lines.
 
void InvertCurvesV ()
 Invert order of curves along the second direction to directOrderV is true.
 
const MbCurve3DGetBorderCurve (ptrdiff_t i) const
 Get i-th curve on the boundary.
 
MbeMatingType GetTransitType (ptrdiff_t i) const
 Get i-th mate type on the boundary.
 
void GetSurface (size_t i, c3d::ConstSurfacesVector &surfaces) const
 Get i-th mate surface on the boundary.
 
void SetSurface (size_t i, c3d::SurfacesVector &surfaces)
 Get i-th mate surface on the boundary.
 
bool IsDefaultDirection (size_t i) const
 Get i-th mate direction on the boundary.
 
bool GetUClosed () const
 Closedness along U direction.
 
bool GetVClosed () const
 Closedness along V direction.
 
void SetUClosed (bool cls)
 Closedness along U direction.
 
void SetVClosed (bool cls)
 Closedness along V direction.
 
size_t GetCurvesUCount () const
 The count of curves along U.
 
ptrdiff_t GetCurvesUMaxIndex () const
 The maximum index in the array of curves along U.
 
const MbCurve3DGetCurveU (size_t k) const
 Get the curve by the index.
 
MbCurve3DSetCurveU (size_t k)
 Get the curve by the index.
 
void GetCurvesU (RPArray< MbCurve3D > &curves) const
 Get curves along U.
 
void SetCurvesU (const RPArray< MbCurve3D > &newCurves)
 Set curves along U.
 
void DetachCurvesU (RPArray< MbCurve3D > &curves)
 Detach curves along U.
 
size_t FindCurveU (const MbCurve3D *curve) const
 Find curve.
 
size_t GetCurvesVCount () const
 The count of curves along V.
 
ptrdiff_t GetCurvesVMaxIndex () const
 The maximum index in the array of curves along V.
 
const MbCurve3DGetCurveV (size_t k) const
 Get the curve by the index.
 
MbCurve3DSetCurveV (size_t k) const
 Get the curve by the index.
 
void GetCurvesV (RPArray< MbCurve3D > &curves) const
 Get curves along V.
 
void SetCurvesV (const RPArray< MbCurve3D > &newCurves)
 Set curves along V.
 
void DetachCurvesV (RPArray< MbCurve3D > &curves)
 Detach curves along V.
 
size_t FindCurveV (const MbCurve3D *curve) const
 Find curve.
 
size_t GetChainsUCount () const
 The count of chains along U.
 
ptrdiff_t GetChainsUMaxIndex () const
 The maximum index in the array of chains along U.
 
const MbPolyline3DGetChainU (size_t k) const
 Get the chain by the index.
 
MbPolyline3DSetChainU (size_t k)
 Get the chain by the index.
 
void GetChainsU (RPArray< MbPolyline3D > &chains) const
 Get chains along U.
 
void SetChainsU (const RPArray< MbPolyline3D > &newChains)
 Set chains along U.
 
void DetachChainsU (RPArray< MbPolyline3D > &chains)
 Detach chains along U.
 
size_t FindChainU (const MbPolyline3D *curve) const
 Find chain.
 
size_t GetChainsVCount () const
 The count of chains along V.
 
ptrdiff_t GetChainsVMaxIndex () const
 The maximum index in the array of chains along V.
 
const MbPolyline3DGetChainV (size_t k) const
 Get the chain by the index.
 
MbPolyline3DSetChainV (size_t k)
 Get the chain by the index.
 
void GetChainsV (RPArray< MbPolyline3D > &chains) const
 Get chains along V.
 
void SetChainsV (const RPArray< MbPolyline3D > &newChains)
 Set chains along V.
 
void DetachChainsV (RPArray< MbPolyline3D > &chains)
 Detach chains along V.
 
size_t FindChainV (const MbPolyline3D *curve) const
 Find chain.
 
bool SetSplitingCurve (const MbCurve3D *curve, bool onIndependentParts=false)
 Set the division of the shell along the specified curve.
 
bool GetSplitingProp (const MbCurve3D *curve, bool &onIndependentParts)
 Get the shell division type for the specified curve.
 
bool UnsetSplitingCurve (const MbCurve3D *curve)
 Cancel division of the shell along the specified curve.
 
void SetPoint (const MbPoint3D *pnt)
 Set point.
 
const MbPoint3DGetPoint () const
 Get point.
 
MbPoint3DSetPoint ()
 Get point.
 
bool IsSame (const MeshSurfaceValues &, double accuracy) const
 Determine whether an object is equal?
 
bool CheckSelfInt () const
 Whether it is necessary to check self-intersections?
 
bool IsTesselate () const
 Whether to build additional sections.
 
bool UseProportional () const
 Align the parametrization of curves along the length.
 
void SetProportional (bool val)
 Set the parametrization of curves along the length.
 
bool IsSmooth () const
 Is the smoothness g2 required for the faces of the shell.
 
Auxiliary functions of geometric transformations.
void Transform (const MbMatrix3D &, MbRegTransform *ireg)
 Transform curves according to the matrix.
 
void Move (const MbVector3D &, MbRegTransform *ireg)
 Move curves along a vector.
 
void Rotate (const MbAxis3D &, double angle, MbRegTransform *ireg)
 Rotate curves at a given angle around an axis.
 
bool TransformCurves (VERSION vers)
 Convert curves to the surface form (curves on the surface)
 
bool TransformForCompositeSurfaceMating (const double mPrec, VERSION vers)
 Convert curves to the surface form (curves on the surface)
 
bool SetContinuousDerivativeLength (bool dirU, bool &smooth, const double aEps, VERSION version)
 Ensure continuity of the length of the first derivative for the curves of the dirU family.
 

Static Public Member Functions

static bool AreCurvesMatingToSurface (const RPArray< MbCurve3D > &curves, const MbCurve3D *borderCurve, const c3d::SurfacesVector &matSurfaces, bool &isTangent, bool &isNormal, bool &isSmooth, bool borderCls, bool transCls, VERSION vers=VERSION(MATH_20_TR_VERSION-1))
 Whether the curves are mated with surface in the points of intersection with borderCurve. More...
 
static bool AreCurvesMatingToSurface (const RPArray< MbCurve3D > &curves, const MbCurve3D *borderCurve, bool &isTangent, bool &isNormal, bool &isSmooth, bool uc, bool vc)
 Whether the curves are mated with surface in the points of intersection with the surface curve (borderCurve).
 
static const MbSurfaceGetMatingSurface (const MbCurve3D *borderCurve, double param)
 Get the mating surface to the border curve by the curve parameter.
 
static const MbSurfaceGetMatingSurface (const MbCurve3D *borderCurve, const MbCurve3D *transCurve)
 Get the mating surface to the border curve at the intersection with the transversal curve.
 
static bool GetSurfaceCurve (const MbCurve3D *borderCurve, double param, const MbSurfaceCurve *&sCurve, double &t)
 Get a surface curve at a specified point on the mating border.
 
static bool IsSurfaceCurveType (const MbCurve3D *borderCurve)
 Is the curve surface in type.
 

Friends

class MbMeshShell
 

Detailed Description

Surface parameter by grid of curves.

The parameters contain the necessary data to construct a surface by grid of curves.

Member Function Documentation

◆ Init() [1/3]

bool MeshSurfaceValues::Init ( const RPArray< MbCurve3D > &  curvesU,
bool  uClosed,
const RPArray< MbCurve3D > &  curvesV,
bool  vClosed,
bool  checkSelfInt,
bool  tess = false,
const RPArray< MbPolyline3D > *  chainsU = nullptr,
const RPArray< MbPolyline3D > *  chainsV = nullptr,
MbeMatingType  type0 = trt_Position,
MbeMatingType  type1 = trt_Position,
MbeMatingType  type2 = trt_Position,
MbeMatingType  type3 = trt_Position,
const c3d::ConstSurfacesVector *  surf0 = nullptr,
const c3d::ConstSurfacesVector *  surf1 = nullptr,
const c3d::ConstSurfacesVector *  surf2 = nullptr,
const c3d::ConstSurfacesVector *  surf3 = nullptr,
const MbPoint3D pnt = nullptr,
bool  modify = true,
bool  direct0 = true,
bool  direct1 = true,
bool  direct2 = true,
bool  direct3 = true 
)

Copy operator.

Initialization function.

Initialization function on the original curves and copies of surfaces.

Parameters
[in]curvesU,curvesV- Sets of curves along the first and second directions.
[in]chainsU,chainsV- Sets of chains along the first and second directions.
[in]uClosed,vClosed- Closedness attribute along the u and v directions.
[in]checkSelfInt- Flag of check for self-intersection.
[in]tesselate- Whether to build additional sections.
[in]type0,type1,type2,type3- Mates types on the boundaries.
[in]surf0,surf1,surf2,surf3- Corresponding mating surfaces.
[in]point- Point on the surface. Used for specializing.
[in]modify- Flag of curves modification by mates.
[in]direct0,direct1,direct2,direct3- The direction of the surface at the border of mating.
Returns
Execution status.

◆ Init() [2/3]

bool MeshSurfaceValues::Init ( const RPArray< MbCurve3D > &  curvesU,
const RPArray< MbCurve3D > &  curvesV,
bool  uClosed,
bool  vClosed,
MbeMatingType(&)  types[4],
const c3d::ConstSurfacesVector *(&)  surfaces[4],
bool(&)  useDefaultDir[4],
bool  checkSelfInt,
bool  tess,
bool  smooth,
const RPArray< MbPolyline3D > *  chainsU,
const RPArray< MbPolyline3D > *  chainsV,
const MbPoint3D pnt,
bool  modify 
)

Initialization function.

Initialization function on the original curves and copies of surfaces.

Parameters
[in]curvesU,curvesV- Sets of curves along the first and second directions.
[in]uClosed,vClosed- Closedness attribute along the u and v directions.
[in]types- Mates types on the boundaries.
[in]surfaces- Corresponding mating surfaces. Zero if not defined.
[in]useDefaultDir- The direction of the surface at the border of mating.
[in]checkSelfInt- Flag of check for self-intersection.
[in]tess- Whether to build additional sections.
[in]smooth- Is the smoothness g2 required for the faces of the shell.
[in]chainsU,chainsV- Sets of chains along the first and second directions. Zero if not defined.
[in]point- Point on the surface. Used for specializing. Zero if not defined.
[in]modify- Flag of curves modification by mates.
Returns
Execution status.

◆ Init() [3/3]

void MeshSurfaceValues::Init ( const MeshSurfaceValues pars,
bool  sameItems 
)

Initialization function.

Initialization function on the originals or copies of curves and surfaces.

Parameters
[in]pars- Initial parameters.
[in]sameItems- Flag of using originals of curves and surfaces.

◆ IsCurveOnSurface()

bool MeshSurfaceValues::IsCurveOnSurface ( const MbCurve3D curve,
const MbSurface surf 
) const

Determine whether the curve lies on the surface.

Determine whether the curve entirely lies on the surface.

Parameters
[in]curve- Checking curve.
[in]surf- Checking surface.
Returns
A sign that the curve is on the surface.

◆ AreCurvesMatingToSurface()

static bool MeshSurfaceValues::AreCurvesMatingToSurface ( const RPArray< MbCurve3D > &  curves,
const MbCurve3D borderCurve,
const c3d::SurfacesVector &  matSurfaces,
bool &  isTangent,
bool &  isNormal,
bool &  isSmooth,
bool  borderCls,
bool  transCls,
VERSION  vers = VERSION(MATH_20_TR_VERSION-1) 
)
static

Whether the curves are mated with surface in the points of intersection with borderCurve.

Whether the curves are mated (tangentially, along the normal, smoothly) with surface in the points of intersection with borderCurve.

Parameters
[in]curves- Set of checking curves.
[in]borderCurve-Curve on the surface.
[in]matSurfaces-Set of mating surfaces.
[out]isTangent- Attribute of the tangent mate.
[out]isNormal- Attribute of normal mate.
[out]isSmooth- Attribute of the smooth mate.
[in]borderCls- Surface closeness by mating boundary.
[in]transCls- Closeness of the surface in the transverse direction.
[in]vers- Math version.
Returns
A sign that the curve is on the surface.

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