C3D Toolkit  Kernel - 109619, Vision - 2.4.0.75

The parameters of spline surface. More...

#include <op_shell_parameter.h>

Public Member Functions

 NurbsSurfaceValues ()
 Default constructor. More...
 
 NurbsSurfaceValues (const NurbsSurfaceValues &)
 Copy-constructor.
 
 ~NurbsSurfaceValues ()
 Destructor.
 
bool InitMesh (ptrdiff_t uDeg, bool uCls, ptrdiff_t vDeg, bool vCls, const Array2< MbCartPoint3D > &pnts, bool checkSelfInt)
 Initialization by grid of points. More...
 
bool InitMesh (ptrdiff_t uDeg, bool uCls, ptrdiff_t vDeg, bool vCls, const Array2< MbCartPoint3D > &pnts, const Array2< double > *wts, bool checkSelfInt)
 Initialization by grid of points. More...
 
bool InitCloud (ptrdiff_t uvDeg, const Array2< MbCartPoint3D > &pnts, const MbPlacement3D *cloudPlace, bool checkSelfInt)
 Initialization by point cloud. More...
 
void operator= (const NurbsSurfaceValues &)
 Copy-operator.
 
bool IsValid (bool checkPoints) const
 Initial check of parameters correctness.
 
ptrdiff_t GetUDegree () const
 Get splines degree along U.
 
ptrdiff_t GetVDegree () const
 Get splines degree along V.
 
bool GetUClosed () const
 Closedness along U.
 
bool GetVClosed () const
 Closedness along V.
 
size_t GetUCount () const
 A count of points along U.
 
size_t GetVCount () const
 A count of points along V.
 
bool SetUDegree (size_t uDeg)
 Set spline degree along u.
 
bool SetVDegree (size_t vDeg)
 Set spline degree along v.
 
void SetUClosed (bool uCls)
 Set closedness along U.
 
void SetVClosed (bool vCls)
 Set closedness along V.
 
bool GetUVPoint (size_t ui, size_t vi, MbCartPoint3D &) const
 Get point by position.
 
bool GetUVWeight (size_t ui, size_t vi, double &) const
 Get weight by position.
 
bool GetCommonWeight (double &) const
 Get total weight (return true if all the weights are the same).
 
bool SetUVPoint (size_t ui, size_t vi, const MbCartPoint3D &)
 Set points by position.
 
bool SetUVWeight (size_t ui, size_t vi, const double &)
 Set weight by position.
 
bool SetCommonWeight (double)
 Set total weight.
 
void Transform (const MbMatrix3D &, MbRegTransform *ireg)
 Transform data according to the matrix.
 
void Move (const MbVector3D &, MbRegTransform *ireg)
 Move data along a vector.
 
void Rotate (const MbAxis3D &, double angle, MbRegTransform *ireg)
 Rotate data at a given angle around an axis.
 
bool SetSize (size_t ucnt, size_t vcnt, bool keepData=false)
 Set the size of arrays of points and weights without saving or with saving of existing data.
 
void SetThroughPoints (bool tp)
 Set flag of surface passing through the points.
 
bool IsThroughPoints () const
 Whether the surface passes through the points?
 
bool IsPointsCloud () const
 Whether the array is point cloud?
 
bool IsOwnCloudPlane () const
 Whether the own plane of projection is used (in the case of array by point cloud)?
 
bool CheckSelfInt () const
 Whether it is necessary to check self-intersections?
 
void GetCheckLines (CSSArray< size_t > &checkNumbers) const
 Get the array of indices of checked rows.
 
void GetCheckCols (CSSArray< size_t > &checkNumbers) const
 Get the array of indices of checked columns.
 
size_t GetPointsLines () const
 Get the count of rows.
 
size_t GetPointsColumns () const
 Get the count of columns.
 
bool GetPoints (Array2< MbCartPoint3D > &pnts) const
 Get array of points.
 
bool IsWeighted () const
 Is there weights?
 
bool GetWeights (Array2< double > &wts) const
 Get array of weights.
 
const MbPlaneGetCloudPlane () const
 Get the plane of projection.
 
ptrdiff_t GetMinCloudDegree () const
 The smallest possible order of splines in the case of point cloud. More...
 
ptrdiff_t GetMaxCloudDegree () const
 The maximum possible order of splines in the case of point cloud. More...
 
bool SetCloudDegreeRange (const NurbsSurfaceValues &meshParam) const
 Set the maximum possible order by processed (regularized) point cloud.
 

Friends

class MbNurbsSurfacesSolid
 

Detailed Description

The parameters of spline surface.

The parameters determines control points, weights, knots of spline surface.

Constructor & Destructor Documentation

◆ NurbsSurfaceValues()

NurbsSurfaceValues::NurbsSurfaceValues ( )

Default constructor.

Constructor of parameters of non-closed spline surface of second order along the u and v directions.

Member Function Documentation

◆ InitMesh() [1/2]

bool NurbsSurfaceValues::InitMesh ( ptrdiff_t  uDeg,
bool  uCls,
ptrdiff_t  vDeg,
bool  vCls,
const Array2< MbCartPoint3D > &  pnts,
bool  checkSelfInt 
)

Initialization by grid of points.

Initialization of parameters of spline surface by grid of points.

Parameters
[in]uDeg,vDeg- Order along u and v.
[in]uCls,vCls- Attribute of surface closedness along u and v.
[in]pnts- A point set.
[in]checkSelfInt- Attribute of check for self-intersection.
Returns
False if incorrect parameters.

◆ InitMesh() [2/2]

bool NurbsSurfaceValues::InitMesh ( ptrdiff_t  uDeg,
bool  uCls,
ptrdiff_t  vDeg,
bool  vCls,
const Array2< MbCartPoint3D > &  pnts,
const Array2< double > *  wts,
bool  checkSelfInt 
)

Initialization by grid of points.

Initialization of parameters of spline surface by grid of points.

Parameters
[in]uDeg,vDeg- Order along u and v.
[in]uCls,vCls- Attribute of surface closedness along u and v.
[in]pnts- A point set.
[in]wts- Weights of points.
[in]checkSelfInt- Attribute of check for self-intersection.
Returns
False if incorrect parameters.

◆ InitCloud()

bool NurbsSurfaceValues::InitCloud ( ptrdiff_t  uvDeg,
const Array2< MbCartPoint3D > &  pnts,
const MbPlacement3D cloudPlace,
bool  checkSelfInt 
)

Initialization by point cloud.

Initialization by point cloud (used the original plane).
If uvDeg < 0, then set of triangular plates is created
(by triangulation of points projections on the cloudPlace)

Parameters
[in]uvDeg- Order along u and v.
[in]pnts- Set of points.
Set of points is suitable for initialization (is a point cloud) if it is one-dimensional array of points which don't lie on a straight line without coincidence.
[in]cloudPlace- Support plane of point cloud.
[in]checkSelfInt- Attribute of check for self-intersection.
Returns
True if correct parameters.

◆ GetMinCloudDegree()

ptrdiff_t NurbsSurfaceValues::GetMinCloudDegree ( ) const
inline

The smallest possible order of splines in the case of point cloud.

The smallest possible order of splines in the case of point cloud.
Request after the successful creation of the surface otherwise returns a negative value.

◆ GetMaxCloudDegree()

ptrdiff_t NurbsSurfaceValues::GetMaxCloudDegree ( ) const
inline

The maximum possible order of splines in the case of point cloud.

The maximum possible order of splines in the case of point cloud.
Request after the successful creation of the surface otherwise returns a negative value.


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