DATAKIT API  V2025.1
Dtk_Curve Class Referenceabstract

Dtk_Curve is a geometrical entity representing a curve. It is an abstract class that cannot be instancied.
. More...

+ Inheritance diagram for Dtk_Curve:

Public Member Functions

virtual Dtk_ErrorStatus _ComputeAnyDerivative (Dtk_Double64 inUvalue, int inUdiff, Dtk_dir &outdir, int exttype) const
 
virtual Dtk_ErrorStatus _Store (void *)
 
virtual Dtk_ErrorStatus ComputeBoundingBox (Dtk_pnt &outMin, Dtk_pnt &outMax, Dtk_bool inMorePrecise=0)
 Compute Bounding Box. More...
 
virtual Dtk_pnt ComputeEndPoint () const =0
 Return Last point. More...
 
Dtk_Double64 ComputeLength ()
 return curve Length More...
 
Dtk_NurbsCurvePtr ComputeOffset (Dtk_Double64 inOffset, Dtk_dir inOffsetDirection)
 Compute offset curve and convert it to nurbs. More...
 
virtual Dtk_ErrorStatus ComputeOrientedBoundingBox (Dtk_pnt &outMin, Dtk_pnt &outMax, const Dtk_transfo &inLocal)
 Compute Oriented Bounding Box. More...
 
virtual Dtk_ErrorStatus ComputeParameter (const Dtk_pnt &inPoint, Dtk_Double64 &outU) const =0
 Compute U parameter from point. More...
 
virtual Dtk_pnt ComputeStartPoint () const =0
 Return First point. More...
 
virtual Dtk_ErrorStatus ComputeUDir (const Dtk_Double64 &inU, Dtk_dir &outDir) const
 Compute dir on U parameter. More...
 
virtual Dtk_ErrorStatus ComputeUPoint (const Dtk_Double64 &inU, Dtk_pnt &outPoint) const =0
 Compute point on U parameter. More...
 
virtual Dtk_ErrorStatus ComputeUPointDir (const Dtk_Double64 &inU, Dtk_pnt &outPoint, Dtk_dir &outDir) const
 Compute point and dir on U parameter. More...
 
void DeleteCorrespondingNurbs ()
 
int DtkDynamicType (const int &inId)
 downcasting More...
 
virtual void dump (FILE *file=stdout)
 
Dtk_InfoPtr get_info () const
 
virtual enum type_detk get_type_detk () const =0
 
Dtk_Size_t GetDimension () const
 Return 2 or 3. More...
 
virtual Dtk_ErrorStatus GetDomain (Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const =0
 Get Curve Parametrisation. More...
 
const Dtk_IDGetID () const
 Get Internal UniqueID. More...
 
virtual Dtk_Size_t GetSize () const
 
Dtk_pnt GetTrimEndPoint () const
 Return last trim point. More...
 
Dtk_pnt GetTrimStartPoint () const
 Return first trim point. More...
 
Dtk_Double64 GetTrimUMax () const
 Get end Trim parameter. More...
 
Dtk_Double64 GetTrimUMin () const
 Get start Trim parameter. More...
 
Dtk_InfoPtrinfo ()
 
virtual Dtk_ErrorStatus InverseTrim ()
 
virtual Dtk_bool IsClosed (Dtk_Double64 inTol=DTK_TOLERANCE) const
 return True if Curve is closed More...
 
Dtk_bool IsLine ()
 return True if Curve is a line More...
 
virtual Dtk_bool IsPeriodic () const
 return True if Curve is periodic More...
 
Dtk_bool IsTrimmed () const
 Return DTK_TRUE if Curve Is trimmed by point or parameter value. More...
 
virtual void Normalize ()
 Normalize Curve. More...
 
virtual void PrepareTransfo ()
 
virtual void Reverse ()=0
 Reverse Curve. More...
 
void SetDimension (const Dtk_Size_t &inDimension)
 Set curve dimension (2 or 3) More...
 
virtual Dtk_ErrorStatus SetTrimmingParameters (const Dtk_Double64 &inUmin, const Dtk_Double64 &inUmax)
 Set Trim parameter for curve. More...
 
void SetTrimPoints (const Dtk_pnt &inStartPoint, const Dtk_pnt &inEndPoint)
 Set Trim points for curve. More...
 
virtual Dtk_NurbsCurvePtr ToNurbs () const =0
 Convert Curve to nurbs. More...
 
virtual Dtk_PolylinePtr ToPolyline (const int &inMinPoint, const Dtk_Double64 &inTolerance) const =0
 Convert Curve to polyline. More...
 
Dtk_ErrorStatus Transform (const Dtk_transfo &inTransfo)
 Transform Curve. More...
 
virtual ~Dtk_Curve ()
 

Static Public Member Functions

static Dtk_CurveDtkDynamicCast (Dtk_Object *inObject)
 

Protected Types

enum  { _typeID = DTK_TYPE_OBJECT }
 
enum  { _typeID = DTK_TYPE_CURVE }
 

Protected Member Functions

void _Copy (const Dtk_Curve &s)
 
void _copy (const Dtk_Entity &s)
 
void _copy (const Dtk_Object &s)
 
void _init ()
 
void _reset ()
 
virtual Dtk_ObjectClone ()=0
 
 Dtk_Curve ()
 
 Dtk_Curve (const Dtk_Curve &s)
 

Protected Attributes

Dtk_Handle * _Private
 
unsigned long count_
 

Friends

class Dtk_SmartPtr< Dtk_Curve >
 
void PDtk_StoreDataCurve (void *, Dtk_CurvePtr &)
 

Detailed Description

Dtk_Curve is a geometrical entity representing a curve. It is an abstract class that cannot be instancied.
.

Warning
Please use the Dtk_CurvePtr class to handle it... It has several utility methods :

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
_typeID 

◆ anonymous enum

anonymous enum
protected
Enumerator
_typeID 
91 { _typeID = DTK_TYPE_CURVE };

Constructor & Destructor Documentation

◆ Dtk_Curve() [1/2]

Dtk_Curve::Dtk_Curve ( )
protected

◆ Dtk_Curve() [2/2]

Dtk_Curve::Dtk_Curve ( const Dtk_Curve s)
protected

◆ ~Dtk_Curve()

virtual Dtk_Curve::~Dtk_Curve ( )
virtual

Member Function Documentation

◆ _ComputeAnyDerivative()

virtual Dtk_ErrorStatus Dtk_Curve::_ComputeAnyDerivative ( Dtk_Double64  inUvalue,
int  inUdiff,
Dtk_dir outdir,
int  exttype 
) const
virtual

◆ _Copy()

void Dtk_Curve::_Copy ( const Dtk_Curve s)
protected

◆ _copy() [1/2]

void Dtk_Entity::_copy ( const Dtk_Entity s)
protectedinherited

◆ _copy() [2/2]

void Dtk_Object::_copy ( const Dtk_Object s)
protectedinherited

◆ _init()

void Dtk_Entity::_init ( )
protectedinherited

◆ _reset()

void Dtk_Entity::_reset ( )
protectedinherited

◆ _Store()

virtual Dtk_ErrorStatus Dtk_Curve::_Store ( void *  )
virtual

◆ Clone()

virtual Dtk_Object* Dtk_Curve::Clone ( )
protectedpure virtual

◆ ComputeBoundingBox()

virtual Dtk_ErrorStatus Dtk_Curve::ComputeBoundingBox ( Dtk_pnt outMin,
Dtk_pnt outMax,
Dtk_bool  inMorePrecise = 0 
)
virtual

Compute Bounding Box.

Reimplemented in Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ ComputeEndPoint()

virtual Dtk_pnt Dtk_Curve::ComputeEndPoint ( ) const
pure virtual

Return Last point.

Implemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ ComputeLength()

Dtk_Double64 Dtk_Curve::ComputeLength ( )

return curve Length

◆ ComputeOffset()

Dtk_NurbsCurvePtr Dtk_Curve::ComputeOffset ( Dtk_Double64  inOffset,
Dtk_dir  inOffsetDirection 
)

Compute offset curve and convert it to nurbs.

◆ ComputeOrientedBoundingBox()

virtual Dtk_ErrorStatus Dtk_Curve::ComputeOrientedBoundingBox ( Dtk_pnt outMin,
Dtk_pnt outMax,
const Dtk_transfo inLocal 
)
virtual

Compute Oriented Bounding Box.

◆ ComputeParameter()

virtual Dtk_ErrorStatus Dtk_Curve::ComputeParameter ( const Dtk_pnt inPoint,
Dtk_Double64 outU 
) const
pure virtual

Compute U parameter from point.

Implemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ ComputeStartPoint()

virtual Dtk_pnt Dtk_Curve::ComputeStartPoint ( ) const
pure virtual

Return First point.

Implemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ ComputeUDir()

virtual Dtk_ErrorStatus Dtk_Curve::ComputeUDir ( const Dtk_Double64 inU,
Dtk_dir outDir 
) const
virtual

Compute dir on U parameter.

Reimplemented in Dtk_Ellipse, Dtk_Line, and Dtk_NurbsCurve.

◆ ComputeUPoint()

virtual Dtk_ErrorStatus Dtk_Curve::ComputeUPoint ( const Dtk_Double64 inU,
Dtk_pnt outPoint 
) const
pure virtual

Compute point on U parameter.

Implemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ ComputeUPointDir()

virtual Dtk_ErrorStatus Dtk_Curve::ComputeUPointDir ( const Dtk_Double64 inU,
Dtk_pnt outPoint,
Dtk_dir outDir 
) const
virtual

Compute point and dir on U parameter.

Reimplemented in Dtk_NurbsCurve.

◆ DeleteCorrespondingNurbs()

void Dtk_Curve::DeleteCorrespondingNurbs ( )

◆ DtkDynamicCast()

static Dtk_Curve* Dtk_Curve::DtkDynamicCast ( Dtk_Object inObject)
static

◆ DtkDynamicType()

int Dtk_Curve::DtkDynamicType ( const int &  inId)
virtual

downcasting

Reimplemented from Dtk_Entity.

Reimplemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Conic, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ dump()

virtual void Dtk_Object::dump ( FILE *  file = stdout)
virtualinherited

◆ get_info()

Dtk_InfoPtr Dtk_Entity::get_info ( ) const
inherited

◆ get_type_detk()

◆ GetDimension()

Dtk_Size_t Dtk_Curve::GetDimension ( ) const

Return 2 or 3.

◆ GetDomain()

virtual Dtk_ErrorStatus Dtk_Curve::GetDomain ( Dtk_Double64 outUmin,
Dtk_Double64 outUmax 
) const
pure virtual

Get Curve Parametrisation.

Implemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ GetID()

const Dtk_ID& Dtk_Entity::GetID ( ) const
inherited

Get Internal UniqueID.

Returns
InternalID

◆ GetSize()

virtual Dtk_Size_t Dtk_Curve::GetSize ( ) const
virtual

◆ GetTrimEndPoint()

Dtk_pnt Dtk_Curve::GetTrimEndPoint ( ) const

Return last trim point.

◆ GetTrimStartPoint()

Dtk_pnt Dtk_Curve::GetTrimStartPoint ( ) const

Return first trim point.

◆ GetTrimUMax()

Dtk_Double64 Dtk_Curve::GetTrimUMax ( ) const

Get end Trim parameter.

◆ GetTrimUMin()

Dtk_Double64 Dtk_Curve::GetTrimUMin ( ) const

Get start Trim parameter.

◆ info()

Dtk_InfoPtr& Dtk_Entity::info ( )
inherited

◆ InverseTrim()

virtual Dtk_ErrorStatus Dtk_Curve::InverseTrim ( )
virtual

◆ IsClosed()

virtual Dtk_bool Dtk_Curve::IsClosed ( Dtk_Double64  inTol = DTK_TOLERANCE) const
virtual

return True if Curve is closed

Reimplemented in Dtk_NurbsCurve.

◆ IsLine()

Dtk_bool Dtk_Curve::IsLine ( )

return True if Curve is a line

◆ IsPeriodic()

virtual Dtk_bool Dtk_Curve::IsPeriodic ( ) const
virtual

return True if Curve is periodic

Reimplemented in Dtk_NurbsCurve.

◆ IsTrimmed()

Dtk_bool Dtk_Curve::IsTrimmed ( ) const

Return DTK_TRUE if Curve Is trimmed by point or parameter value.

◆ Normalize()

virtual void Dtk_Curve::Normalize ( )
virtual

Normalize Curve.

Reimplemented in Dtk_Line.

◆ PrepareTransfo()

virtual void Dtk_Entity::PrepareTransfo ( )
virtualinherited

Reimplemented in Dtk_OffsetSurface.

◆ Reverse()

virtual void Dtk_Curve::Reverse ( )
pure virtual

Reverse Curve.

Implemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ SetDimension()

void Dtk_Curve::SetDimension ( const Dtk_Size_t inDimension)

Set curve dimension (2 or 3)

◆ SetTrimmingParameters()

virtual Dtk_ErrorStatus Dtk_Curve::SetTrimmingParameters ( const Dtk_Double64 inUmin,
const Dtk_Double64 inUmax 
)
virtual

Set Trim parameter for curve.

◆ SetTrimPoints()

void Dtk_Curve::SetTrimPoints ( const Dtk_pnt inStartPoint,
const Dtk_pnt inEndPoint 
)

Set Trim points for curve.

◆ ToNurbs()

virtual Dtk_NurbsCurvePtr Dtk_Curve::ToNurbs ( ) const
pure virtual

Convert Curve to nurbs.

Implemented in Dtk_Hyperbola, Dtk_Conic, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ ToPolyline()

virtual Dtk_PolylinePtr Dtk_Curve::ToPolyline ( const int &  inMinPoint,
const Dtk_Double64 inTolerance 
) const
pure virtual

Convert Curve to polyline.

Parameters
[in]inMinPoint: Minimal number of result points
[in]inTolerance: max tolerance for 3 points alignement.

Implemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

◆ Transform()

Dtk_ErrorStatus Dtk_Curve::Transform ( const Dtk_transfo inTransfo)
virtual

Transform Curve.

Implements Dtk_Entity.

Reimplemented in Dtk_Hyperbola, Dtk_Parabola, Dtk_Ellipse, Dtk_Conic, Dtk_Line, Dtk_Polyline, and Dtk_NurbsCurve.

Friends And Related Function Documentation

◆ Dtk_SmartPtr< Dtk_Curve >

friend class Dtk_SmartPtr< Dtk_Curve >
friend

◆ PDtk_StoreDataCurve

void PDtk_StoreDataCurve ( void *  ,
Dtk_CurvePtr  
)
friend

Field Documentation

◆ _Private

Dtk_Handle* Dtk_Curve::_Private
protected

◆ count_

unsigned long Dtk_Object::count_
protectedinherited
Dtk_Curve::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:91
Dtk_Curve::SetTrimmingParameters
virtual Dtk_ErrorStatus SetTrimmingParameters(const Dtk_Double64 &inUmin, const Dtk_Double64 &inUmax)
Set Trim parameter for curve.
Dtk_Curve::GetTrimUMax
Dtk_Double64 GetTrimUMax() const
Get end Trim parameter.
DTK_TYPE_OBJECT
@ DTK_TYPE_OBJECT
Definition: define.h:464
Dtk_Double64
double Dtk_Double64
Definition: define.h:699
DTK_TYPE_CURVE
@ DTK_TYPE_CURVE
Definition: define.h:67
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_Object::_typeID
@ _typeID
Definition: dtk_object.hpp:13
Dtk_Curve::GetTrimUMin
Dtk_Double64 GetTrimUMin() const
Get start Trim parameter.
Dtk_Curve::GetDomain
virtual Dtk_ErrorStatus GetDomain(Dtk_Double64 &outUmin, Dtk_Double64 &outUmax) const =0
Get Curve Parametrisation.