C3D Toolkit  Kernel - 117950, Vision - 2.7.5.29

Parameters for transferring copies of two-dimensional curves on another medium. More...

#include <op_curve_parameter.h>

+ Inheritance diagram for MbCurvesWrappingParams:
+ Collaboration diagram for MbCurvesWrappingParams:

Public Member Functions

 MbCurvesWrappingParams (const c3d::PlaneCurvesSPtrVector &curves_, const MbPlacement3D &place_, const MbCartPoint &xy_, const MbSurface &surface_, const MbCartPoint &uv_, double angle_, bool sense_, bool equals_, double accuracy_, bool copyCurves_, bool copySurface_, VERSION ver_)
 Constructor. More...
 
 MbCurvesWrappingParams (const c3d::ConstPlaneCurvesSPtrVector &curves_, const MbPlacement3D &place_, const MbCartPoint &xy_, const MbSurface &surface_, const MbCartPoint &uv_, double angle_, bool sense_, bool equals_, double accuracy_, bool copyCurves_, bool copySurface_, VERSION ver_)
 Constructor. More...
 
 MbCurvesWrappingParams (const c3d::ConstSpaceCurvesSPtrVector &curves_, const MbPlacement3D &place_, const MbCartPoint &xy_, const MbSurface &surface_, const MbCartPoint &uv_, double angle_, bool sense_, bool equals_, double accuracy_, bool copyCurves_, bool copySurface_, VERSION ver_)
 Constructor. More...
 
 MbCurvesWrappingParams (const c3d::ConstPlaneCurveSPtr &curve_, const MbPlacement3D &place_, const MbCartPoint &xy_, const MbSurface &surface_, const MbCartPoint &uv_, double angle_, bool sense_, bool equals_, double accuracy_, bool copyCurves_, bool copySurface_, VERSION ver_)
 Constructor by 1 curve. More...
 
 MbCurvesWrappingParams (const c3d::ConstSpaceCurveSPtr &curve_, const MbPlacement3D &place_, const MbCartPoint &xy_, const MbSurface &surface_, const MbCartPoint &uv_, double angle_, bool sense_, bool equals_, double accuracy_, bool copyCurves_, bool copySurface_, VERSION ver_)
 Constructor by 1 curve. More...
 
 MbCurvesWrappingParams (const MbCurvesWrappingParams &other, bool copyCurves, bool copySurface, MbRegDuplicate *iReg=nullptr)
 Copy constructor. More...
 
const c3d::ConstPlaneCurveSPtrGetCurve (size_t i) const
 Get two-dimensional curve by index.
 
const c3d::ConstPlaneCurvesSPtrVector & GetCurves () const
 Get two-dimensional curves.
 
void GetCurves (c3d::ConstPlaneCurvesSPtrVector &retCurves) const
 Get two-dimensional curves.
 
size_t GetCurvesCount () const
 Get two-dimensional curves count.
 
void SetCurve (size_t i, const MbCurve &c)
 Set two-dimensional curve by index.
 
void SetCurve (size_t i, MbCurve *c)
 Set two-dimensional curve by index.
 
const MbPlacement3DGetPlacement () const
 Get the local coordinate system.
 
void SetPlacement (const MbPlacement3D &p)
 Set the local coordinate system.
 
const MbCartPointGetPlacePoint () const
 Get a point on the "XY" plane of the LCS that will be aligned with the uv point on the parametric plane of the surface.
 
void SetPlacePoint (const MbCartPoint &p)
 Set a point on the "XY" plane of the LCS that will be aligned with the uv point on the parametric plane of the surface.
 
const MbSurfaceGetSurface () const
 Get the surface.
 
const c3d::ConstSurfaceSPtrGetSurfacePtr () const
 Get the surface.
 
void SetSurface (MbSurface &surf)
 Set the surface.
 
void SetSurfacePtr (const c3d::ConstSurfaceSPtr &surf)
 Set the surface.
 
const MbCartPointGetSurfacePoint () const
 Get a point on the parametric plane "UV" of the surface corresponding to the point xy on the plane.
 
void SetSurfacePoint (const MbCartPoint &p)
 Set a point on the parametric plane "UV" of the surface corresponding to the point xy on the plane.
 
double GetAngle () const
 Get the angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface.
 
void SetAngle (double a)
 Set the angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface.
 
bool IsSense () const
 Whether the orientations of LCS "X-Y" axes and the surface "U-V" axes are same.
 
void SetSense (bool s)
 Set the coincidence of the directions of the "X" axis of the LSC and the "U" axis of the surface.
 
bool IsEquals () const
 Should the result curve length be equal to the original curve length?
 
void SetEquals (bool e)
 Set the curves length correspondence to the originals on the surface?
 
double GetAccuracy () const
 Get an accuracy.
 
void SetAccuracy (double acc)
 Set an accuracy.
 
VERSION GetVersion () const
 The version.
 
void SetVersion (VERSION ver)
 Set the algorithm version.
 
bool IsValid () const
 The validity check: whether surface is not null and some of the curves are not null.
 
bool IsSame (const MbCurvesWrappingParams &other, double accuracy) const
 The comparison with other parameters.
 
bool IsSimilar (const MbCurvesWrappingParams &other) const
 The comparison with other parameters.
 
bool GetUSeamStitch () const
 Whether to shift curves with one end on Umax seam. More...
 
void SetUSeamStitch (bool s)
 Whether to shift curves with one end on Umax seam. More...
 
MbCurvesWrappingParamsDuplicate (bool copyCurves, bool copySurface)
 Make a copy of current parameters. More...
 
- Public Member Functions inherited from MbPrecision
 MbPrecision ()
 Default constructor.
 
 MbPrecision (double _precision, double _deviation, double _tolerance=METRIC_EPSILON)
 Constructor by the specified precision.
 
 MbPrecision (const MbPrecision &other)
 Copy-constructor.
 
 ~MbPrecision ()
 Destructor.
 
void Init (const MbPrecision &other)
 Initialization function.
 
void Init (double _precision)
 Initialization function.
 
MbPrecisionoperator= (const MbPrecision &other)
 Assignment operator.
 
bool IsSame (const MbPrecision &other, double accuracy) const
 Determine whether an object is equal?
 
double GetPrecision () const
 Get precision.
 
void SetPrecision (double a)
 Set precision.
 

Friends

class MbUnwrapCurveCreator
 

Additional Inherited Members

- Static Public Member Functions inherited from MbPrecision
static double GetMaxMetricTolerance ()
 Get the maximum metric tolerance. More...
 
static double GetMaxAngleTolerance ()
 Get the maximum angular tolerance. More...
 
- Protected Attributes inherited from MbPrecision
double precision
 The metric precision of the construction of objects.
 
double deviation
 The angular precision of the construction of objects.
 
double tolerance
 The tolerance of the constructed objects.
 

Detailed Description

Parameters for transferring copies of two-dimensional curves on another medium.

The point xy of the XY plane of the local coordinate system must coincide with the point uv of the parametric region UV of the surface. With parameters angle = 0 and sense = true the overlay of the plane on the surface matches 'x' and 'y' plane axes to the 'u' and 'v' surface axes. With parameters angle = 0 and sense = false the overlay of the plane on the surface matches 'y' plane axis to the 'v' surface axis, with 'x' and 'u' axes directed oppositely. Then the value of 'angle' shows how much the plane coordinate system XY is turned in respect to its Z axis.

Constructor & Destructor Documentation

◆ MbCurvesWrappingParams() [1/6]

MbCurvesWrappingParams::MbCurvesWrappingParams ( const c3d::PlaneCurvesSPtrVector &  curves_,
const MbPlacement3D place_,
const MbCartPoint xy_,
const MbSurface surface_,
const MbCartPoint uv_,
double  angle_,
bool  sense_,
bool  equals_,
double  accuracy_,
bool  copyCurves_,
bool  copySurface_,
VERSION  ver_ 
)

Constructor.

Constructor.

Parameters
[in]curves_- 2d curves, copies of which will be wrapped/unwrapped.
[in]place_- The local coordinate system (LCS) of the plane.
[in]xy_- The anchor point on the plane that will be aligned with the uv point on the parametric plane of the surface.
[in]surface_- The surface to wrap to/unwrap from.
[in]uv_- The anchor uv point on the parametric plane of the surface that will be aligned with the xy point on the plane.
[in]angle_- The angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface.
[in]sense_- Whether the directions of the "X" axis of the LSC and the "U" axis of the surface coincide?
[in]equals_- Should the lengths of the curves on another medium match the originals?
[in]accuracy_- The accuracy.
[in]copyCurves_- Whether to save the curves copies in this parameter class.
[in]copySurface_- Whether to save the surface copy in this parameter class.
[in]ver_- The version.

◆ MbCurvesWrappingParams() [2/6]

MbCurvesWrappingParams::MbCurvesWrappingParams ( const c3d::ConstPlaneCurvesSPtrVector &  curves_,
const MbPlacement3D place_,
const MbCartPoint xy_,
const MbSurface surface_,
const MbCartPoint uv_,
double  angle_,
bool  sense_,
bool  equals_,
double  accuracy_,
bool  copyCurves_,
bool  copySurface_,
VERSION  ver_ 
)

Constructor.

Constructor.

Parameters
[in]curves_- 3d curves, copies of which will be wrapped/unwrapped. It is expected that there are 2d curves on surface inside.
[in]place_- The local coordinate system (LCS) of the plane.
[in]xy_- The anchor point on the plane that will be aligned with the uv point on the parametric plane of the surface.
[in]surface_- The surface to wrap to/unwrap from.
[in]uv_- The anchor uv point on the parametric plane of the surface that will be aligned with the xy point on the plane.
[in]angle_- The angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface.
[in]sense_- Whether the directions of the "X" axis of the LSC and the "U" axis of the surface coincide?
[in]equals_- Should the lengths of the curves on another medium match the originals?
[in]accuracy_- The accuracy.
[in]copyCurves_- Whether to save the curves copies in this parameter class.
[in]copySurface_- Whether to save the surface copy in this parameter class.
[in]ver_- The version.

◆ MbCurvesWrappingParams() [3/6]

MbCurvesWrappingParams::MbCurvesWrappingParams ( const c3d::ConstSpaceCurvesSPtrVector &  curves_,
const MbPlacement3D place_,
const MbCartPoint xy_,
const MbSurface surface_,
const MbCartPoint uv_,
double  angle_,
bool  sense_,
bool  equals_,
double  accuracy_,
bool  copyCurves_,
bool  copySurface_,
VERSION  ver_ 
)

Constructor.

Constructor.

Parameters
[in]curves_- 2d curves, copies of which will be wrapped/unwrapped. It is expected that there are 2d curves on surface inside.
[in]place_- The local coordinate system (LCS) of the plane.
[in]xy_- The anchor point on the plane that will be aligned with the uv point on the parametric plane of the surface.
[in]surface_- The surface to wrap to/unwrap from.
[in]uv_- The anchor uv point on the parametric plane of the surface that will be aligned with the xy point on the plane.
[in]angle_- The angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface.
[in]sense_- Whether the directions of the "X" axis of the LSC and the "U" axis of the surface coincide?
[in]equals_- Should the lengths of the curves on another medium match the originals?
[in]accuracy_- The accuracy.
[in]copyCurves_- Whether to save the curves copies in this parameter class.
[in]copySurface_- Whether to save the surface copy in this parameter class.
[in]ver_- The version.

◆ MbCurvesWrappingParams() [4/6]

MbCurvesWrappingParams::MbCurvesWrappingParams ( const c3d::ConstPlaneCurveSPtr curve_,
const MbPlacement3D place_,
const MbCartPoint xy_,
const MbSurface surface_,
const MbCartPoint uv_,
double  angle_,
bool  sense_,
bool  equals_,
double  accuracy_,
bool  copyCurves_,
bool  copySurface_,
VERSION  ver_ 
)

Constructor by 1 curve.

Constructor by 1 curve.

Parameters
[in]curves_- 2d curve, which copy will be wrapped/unwrapped.
[in]place_- The local coordinate system (LCS) of the plane.
[in]xy_- The anchor point on the plane that will be aligned with the uv point on the parametric plane of the surface.
[in]surface_- The surface to wrap to/unwrap from.
[in]uv_- The anchor uv point on the parametric plane of the surface that will be aligned with the xy point on the plane.
[in]angle_- The angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface.
[in]sense_- Whether the directions of the "X" axis of the LSC and the "U" axis of the surface coincide?
[in]equals_- Should the lengths of the curves on another medium match the originals?
[in]accuracy_- The accuracy.
[in]copyCurves_- Whether to save the curves copies in this parameter class.
[in]copySurface_- Whether to save the surface copy in this parameter class.
[in]ver_- The version.

◆ MbCurvesWrappingParams() [5/6]

MbCurvesWrappingParams::MbCurvesWrappingParams ( const c3d::ConstSpaceCurveSPtr curve_,
const MbPlacement3D place_,
const MbCartPoint xy_,
const MbSurface surface_,
const MbCartPoint uv_,
double  angle_,
bool  sense_,
bool  equals_,
double  accuracy_,
bool  copyCurves_,
bool  copySurface_,
VERSION  ver_ 
)

Constructor by 1 curve.

Constructor by 1 curve.

Parameters
[in]curve_- 3d curve, which copy will be wrapped/unwrapped. It is expected that there is 2d curve on surface inside.
[in]place_- The local coordinate system (LCS) of the plane.
[in]xy_- The anchor point on the plane that will be aligned with the uv point on the parametric plane of the surface.
[in]surface_- The surface to wrap to/unwrap from.
[in]uv_- The anchor uv point on the parametric plane of the surface that will be aligned with the xy point on the plane.
[in]angle_- The angle of rotation of the LSC "XY" plane and the parametric "UV" plane of the surface.
[in]sense_- Whether the directions of the "X" axis of the LSC and the "U" axis of the surface coincide?
[in]equals_- Should the lengths of the curves on another medium match the originals?
[in]accuracy_- The accuracy.
[in]copyCurves_- Whether to save the curves copies in this parameter class.
[in]copySurface_- Whether to save the surface copy in this parameter class.
[in]ver_- The version.

◆ MbCurvesWrappingParams() [6/6]

MbCurvesWrappingParams::MbCurvesWrappingParams ( const MbCurvesWrappingParams other,
bool  copyCurves,
bool  copySurface,
MbRegDuplicate iReg = nullptr 
)

Copy constructor.

Copy constructor.

Parameters
[in]copyCurves- Create copies of the curves.
[in]copySurface- Create a copy of the surface.

Member Function Documentation

◆ GetUSeamStitch()

bool MbCurvesWrappingParams::GetUSeamStitch ( ) const
inline

Whether to shift curves with one end on Umax seam.

Whether to shift curves with one end on Umax seam. If one curve end is on the Umax seam and the other is neither on Umax nor Umin, then shift the curve for Umax-Umin. This is a simplified stitching of curves which have connected edges in 3d on the seam, but in 2d are spaced apart on a period. If this flag is enabled, those unwrapped curves are alse connected.

◆ SetUSeamStitch()

void MbCurvesWrappingParams::SetUSeamStitch ( bool  s)
inline

Whether to shift curves with one end on Umax seam.

Whether to shift curves with one end on Umax seam. If one curve end is on the Umax seam and the other is neither on Umax nor Umin, then shift the curve for Umax-Umin. This is a simplified stitching of curves which have connected edges in 3d on the seam, but in 2d are spaced apart on a period. If this flag is enabled, those unwrapped curves are alse connected.

◆ Duplicate()

MbCurvesWrappingParams* MbCurvesWrappingParams::Duplicate ( bool  copyCurves,
bool  copySurface 
)

Make a copy of current parameters.

Make a copy of current parameters.

Parameters
[in]copyCurves- Create copies of the curves.
[in]copySurface- Create a copy of the surface.

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