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 MbCurve3D * | GetBorderCurve (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 MbCurve3D * | GetCurveU (size_t k) const |
Get the curve by the index. | |
MbCurve3D * | SetCurveU (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 MbCurve3D * | GetCurveV (size_t k) const |
Get the curve by the index. | |
MbCurve3D * | SetCurveV (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 MbPolyline3D * | GetChainU (size_t k) const |
Get the chain by the index. | |
MbPolyline3D * | SetChainU (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 MbPolyline3D * | GetChainV (size_t k) const |
Get the chain by the index. | |
MbPolyline3D * | SetChainV (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 MbPoint3D * | GetPoint () const |
Get point. | |
MbPoint3D * | SetPoint () |
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 MbSurface * | GetMatingSurface (const MbCurve3D *borderCurve, double param) |
Get the mating surface to the border curve by the curve parameter. | |
static const MbSurface * | GetMatingSurface (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 |
Surface parameter by grid of curves.
The parameters contain the necessary data to construct a surface by grid of curves.
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.
[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. |
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.
[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. |
void MeshSurfaceValues::Init | ( | const MeshSurfaceValues & | pars, |
bool | sameItems | ||
) |
Initialization function.
Initialization function on the originals or copies of curves and surfaces.
[in] | pars | - Initial parameters. |
[in] | sameItems | - Flag of using originals of curves and surfaces. |
Determine whether the curve lies on the surface.
Determine whether the curve entirely lies on the surface.
[in] | curve | - Checking curve. |
[in] | surf | - Checking surface. |
|
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.
[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. |