Hide menu
Loading...
Searching...
No Matches
cadex::ModelData_OffsetCurve Class Reference

Defines 3D offset curve. More...

#include <cadex/ModelData_OffsetCurve.hxx>

Inheritance diagram for cadex::ModelData_OffsetCurve:
cadex::ModelData_Curve

Public Types

typedef cadex::internal::ModelData_OffsetCurveImpl ImplType
 

Public Member Functions

 ModelData_OffsetCurve ()
 Constructor.
 
 ModelData_OffsetCurve (const ModelData_Curve &theBasisCurve, double theOffset, const ModelData_Direction &theDir)
 Constructor.
 
 ModelData_OffsetCurve (const Handle_C &)
 Constructor.
 
ModelData_Curve BasisCurve () const
 Returns basis curve.
 
const ModelData_DirectionDirection () const
 Returns reference direction.
 
double Offset () const
 Returns offset value.
 
- Public Member Functions inherited from cadex::ModelData_Curve
 ModelData_Curve ()
 Constructor.
 
 ModelData_Curve (const ModelData_Curve &theOther)
 Constructor.
 
 ModelData_Curve (ModelData_Curve &&theOther)
 Constructor.
 
 ~ModelData_Curve ()
 Destructor.
 
ModelData_Curveoperator= (const ModelData_Curve &theOther)
 Assignment operator.
 
ModelData_Curveoperator= (ModelData_Curve &&theOther)
 Move assignment operator.
 
ModelData_CurveType Type () const
 Returns a curve type.
 
bool IsNull () const
 Returns true if the object has not been initialized yet.
 
void Nullify ()
 Resets the object.
 
 operator bool () const
 Returns if the object has been initialized.
 
bool IsPeriodic () const
 Returns true if the curve is periodic.
 
double UMin () const
 Returns a minimum parameter of a definition domain.
 
double UMax () const
 Returns a maximum parameter of a definition domain.
 
void Domain (double &theUMin, double &theUMax) const
 Returns a definition domain.
 
ModelData_Point Value (double theParameter) const
 Evaluates a point on the curve.
 
ModelData_Curve Reversed () const
 Returns a curve with reversed orientation.
 
void Transform (const ModelData_Transformation &theTransformation)
 Applies transformation matrix to this object.
 
ModelData_Curve Transformed (const ModelData_Transformation &theTransformation) const
 Returns a copy this object after applying transformation.
 
ModelData_Continuity Continuity () const
 Returns a continuity type of the curve.
 
void D0 (double theParameter, ModelData_Point &theValue) const
 Returns the point theValue of parameter theParam.
 
void D1 (double theParameter, ModelData_Point &theValue, ModelData_Vector &theD1) const
 Returns the point theValue of parameter theParam and the first derivative theD1.
 
void D2 (double theParameter, ModelData_Point &theValue, ModelData_Vector &theD1, ModelData_Vector &theD2) const
 Returns the point theValue of parameter theParam, the first theD1 and second theD2 derivatives.
 
bool DN (double theParameter, size_t theDerivativeOrder, ModelData_Point &theValue, ModelData_Vector theD[]) const
 
double Curvature (double theParameter) const
 Returns the curvature value of parameter theParam.
 
void Normal (double theParameter, ModelData_Direction &theNormal) const
 Returns the normal direction theNormal of parameter theParam.
 
void Mirror (const ModelData_Point &thePoint)
 Mirrors the curve relative to the point.
 
void Mirror (const ModelData_Axis1Placement &theAxis)
 Mirrors the curve relative to the axis placement.
 
void Mirror (const ModelData_Axis2Placement &theAxis)
 Mirrors the curve relative to the axis placement.
 
ModelData_Curve Mirrored (const ModelData_Point &theRef) const
 Returns a copy this curve mirrored along the object.
 
ModelData_Curve Mirrored (const ModelData_Axis1Placement &theAxis) const
 Returns a copy this curve mirrored along the object.
 
ModelData_Curve Mirrored (const ModelData_Axis2Placement &theAxis) const
 Returns a copy this curve mirrored along the object.
 
void Rotate (const ModelData_Axis1Placement &theAxis, double theAngle)
 Rotates the curve around the axis.
 
ModelData_Curve Rotated (const ModelData_Axis1Placement &theAxis, double theAngle) const
 Returns a copy this curve rotated along the axis.
 
void Translate (const ModelData_Vector &theVector)
 Translates the curve along the vector.
 
ModelData_Curve Translated (const ModelData_Vector &theVector) const
 Returns a copy this curve translated along the vector.
 
void Scale (const ModelData_Point &thePoint, double theScale)
 Scales the curve with respect to the point.
 
ModelData_Curve Scaled (const ModelData_Point &thePoint, double theScale) const
 Returns a copy this curve scaled with respect to the point.
 

Public Attributes

 operator Handle_C const
 
- Public Attributes inherited from cadex::ModelData_Curve
 operator Handle_C const
 

Detailed Description

Defines 3D offset curve.

An offset curve is defined by a basis curve, reference direction and offset value.

The following image depicts an example of a planar offset curve:

Offset Curve

A basis curve must be at least G1-continous, otherwise behavior is undefined (most likely an exception will be thrown).

An offset curve is parametrized as follows: \(\mathbf{C}(t) = \mathbf{B}(t) + \mathrm{offset}\cdot\mathbf{V}(t)\), where

  • \(\mathbf{B}(t)\) is a point on a basis curve at parameter \(t\);
  • \(\mathrm{offset}\) is an offset value;
  • \(\mathbf{V}(t)\) is a unit vector defined as \(\frac{\mathbf{B}'(t) \times \mathbf{D}}{\|\mathbf{B}'(t) \times \mathbf{D}\|}\),
  • \(\mathbf{D}\) is a specified reference direction,
  • \(\mathbf{B}'(t)\) is first derivative vector computed on a basis curve at parameter \(t\).

If the basis curve is planar and reference direction \(\mathbf{D}\) is perpendicular to a plane of the basis curve, then the offset curve also belongs to that plane and is shifted by \(\mathrm{offset}\) value from the basis curve.

IsPeriodic() returns a value returned by the basis curve.

See also
ModelData_OffsetCurve2d.
Examples
exploring/brepgeometry/Program.cs, exploring/brepgeometry/main.cxx, modeling/brep/Program.cs, and modeling/brep/main.cxx.

Constructor & Destructor Documentation

◆ ModelData_OffsetCurve() [1/2]

cadex::ModelData_OffsetCurve::ModelData_OffsetCurve ( )
inline

Constructor.

Empty constructor.

◆ ModelData_OffsetCurve() [2/2]

cadex::ModelData_OffsetCurve::ModelData_OffsetCurve ( const ModelData_Curve theBasisCurve,
double  theOffset,
const ModelData_Direction theDir 
)

Constructor.

If theBasisCurve is an offset curve then its basis curve will be used as a basis curve and offset will be a sum of theOffset and the offset value of the theBasisCurve.

theBasisCurve must be at least G1-continuous, otherwise behavior is undefined.

Member Function Documentation

◆ Direction()

const ModelData_Direction & cadex::ModelData_OffsetCurve::Direction ( ) const

Returns reference direction.

Returns the value specified in constructor.

Examples
exploring/brepgeometry/Program.cs, and exploring/brepgeometry/main.cxx.

◆ Offset()

double cadex::ModelData_OffsetCurve::Offset ( ) const

Returns offset value.

Returns the value specified in constructor.

Examples
exploring/brepgeometry/Program.cs, and exploring/brepgeometry/main.cxx.