DATAKIT SDK  V2026.4
Dtk_Constraint Class Reference

This is the Dtk_Constraint class. More...

+ Inheritance diagram for Dtk_Constraint:

Data Structures

class  _ConstraintValue
 

Public Types

enum  ConstraintOrientationTypeEnum {
  ValueTypeUndefined = 0, ValueTypeSame, ValueTypeOpposite, ValueTypeInternal,
  ValueTypeExternal
}
 
enum  ConstraintTypeEnum {
  TypeUnknown = 0, TypeAlign, TypeAngle, TypeBond,
  TypeCam, TypeCenter, TypeConcentric, TypeCoincidence,
  TypeDistance, TypeFit, TypeFix, TypeGear,
  TypeHinge, TypeLimit, TypeLinear, TypeLinearCoupler,
  TypeLock, TypeOrientAngle, TypeParallel, TypePathMate,
  TypePerpendicular, TypeProfileCenter, TypeRackPinion, TypeScrew,
  TypeSlot, TypeSymmetric, TypeTangent, TypeTouch,
  TypeUniversalJoint, TypeWidth
}
 
enum  ConstraintValueTypeEnum {
  ValueTypeUnknown = 0, ValueTypeAngle, ValueTypeDistance, ValueTypePosition,
  ValueTypeRotation, ValueTypeOrientation
}
 

Public Member Functions

virtual Dtk_ErrorStatus _Store (void *)
 
void AddConstraintReference (const Dtk_ConstraintReferencePtr &in)
 Add a ConstraintReference to this Constraint . More...
 
int DtkDynamicType (const int &inId)
 
virtual void dump (FILE *file=stdout)
 
Dtk_InfoPtr get_info () const
 
type_detk get_type_detk () const
 
const Dtk_tab< Dtk_ConstraintReferencePtr > & GetConstraintReference () const
 Get all ConstraintReferences of the Constraint. More...
 
const Dtk_ConstraintReferencePtr & GetConstraintReference (const Dtk_Size_t &index) const
 Get the Dtk_ConstraintReference at the specified index. More...
 
const ConstraintTypeEnum & GetConstraintType () const
 Get the type of the Constraint . More...
 
const _ConstraintValue & GetConstraintValue (const Dtk_Size_t &index) const
 Get the Dtk_Constraint::_ConstraintValue at the specified index. More...
 
const Dtk_ID & GetID () const
 Get Internal UniqueID. More...
 
Dtk_Size_t GetNumberOfConstraintReferences () const
 Get the number of Dtk_ConstraintReference in the constraint. More...
 
Dtk_Size_t GetNumberOfConstraintValues ()
 Get the number of Dtk_Constraint::_ConstraintValue in the constraint. More...
 
virtual Dtk_Size_t GetSize () const
 
Dtk_ErrorStatus GetValue (const ConstraintValueTypeEnum &inValue, Dtk_Val &outValue) const
 
Dtk_ErrorStatus GetValue (const ConstraintValueTypeEnum &inValue, Dtk_Val &outValue, Dtk_Int32 &outEnableLowerLimit, Dtk_Double64 &outLowerLimit, Dtk_Int32 &outEnableUpperLimit, Dtk_Double64 &outUpperLimit) const
 Get a Value of the Constraint . More...
 
Dtk_tab< ConstraintValueTypeEnum > GetValuesTypes () const
 Get all types of values in the Constraint. More...
 
Dtk_InfoPtr & info ()
 
virtual void PrepareTransfo ()
 
void SetConstraintType (const ConstraintTypeEnum &in)
 Set the type of the Constraint . More...
 
void SetValue (const ConstraintValueTypeEnum &inValueType, Dtk_Val inValue)
 
void SetValue (const ConstraintValueTypeEnum &inValueType, Dtk_Val inValue, const Dtk_Int32 &inEnableLowerLimit, const Dtk_Double64 &inLowerLimit, const Dtk_Int32 &inEnableUpperLimit, const Dtk_Double64 &inUpperLimit)
 Set a Value of the Constraint . More...
 
Dtk_ErrorStatus Transform (const Dtk_transfo &inTransfo)
 Applies a transformation matrix to the entity. //! More...
 

Static Public Member Functions

static Dtk_string ConstraintOrientationTypeEnumToString (const ConstraintOrientationTypeEnum &inEnum)
 
static Dtk_string ConstraintTypeEnumToString (const ConstraintTypeEnum &inEnum)
 
static Dtk_string ConstraintValueTypeEnumToString (const ConstraintValueTypeEnum &inEnum)
 
static Dtk_SmartPtr< Dtk_Constraint > Create ()
 Calls default constructor to allocate a new object. More...
 
static Dtk_SmartPtr< Dtk_Constraint > Create (const Dtk_Constraint &in)
 \CreateCopy{in} More...
 
static Dtk_Constraint * DtkDynamicCast (Dtk_Object *inObject)
 

Protected Types

enum  { _typeID = DTK_TYPE_OBJECT }
 
enum  { _typeID = DTK_TYPE_ENTITY }
 

Protected Member Functions

virtual Dtk_Object * Clone ()
 
 Dtk_Constraint ()
 
 Dtk_Constraint (const Dtk_Constraint &p)
 
 Dtk_Constraint (Dtk_Constraint &&p) DTK_NOEXCEPT
 
virtual ~Dtk_Constraint ()
 

Protected Attributes

std::unique_ptr< Dtk_Handle > _Private
 
unsigned long count_
 

Detailed Description

This is the Dtk_Constraint class.

A Dtk_Constraint contains the AxisSystem definition which defines by its Name, statut and the Matrix

This class lets you use Dtk_Constraint.

See also
Use Dtk_ConstraintPtr class to handle it.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
_typeID 

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
_typeID 

◆ ConstraintOrientationTypeEnum

Enumerator
ValueTypeUndefined 
ValueTypeSame 
ValueTypeOpposite 
ValueTypeInternal 
ValueTypeExternal 
1165  {
1166  ValueTypeUndefined = 0,
1167  ValueTypeSame,
1171  };

◆ ConstraintTypeEnum

Enumerator
TypeUnknown 
TypeAlign 
TypeAngle 
TypeBond 
TypeCam 
TypeCenter 
TypeConcentric 
TypeCoincidence 
TypeDistance 
TypeFit 
TypeFix 
TypeGear 
TypeHinge 
TypeLimit 
TypeLinear 
TypeLinearCoupler 
TypeLock 
TypeOrientAngle 
TypeParallel 
TypePathMate 
TypePerpendicular 
TypeProfileCenter 
TypeRackPinion 
TypeScrew 
TypeSlot 
TypeSymmetric 
TypeTangent 
TypeTouch 
TypeUniversalJoint 
TypeWidth 
1228  {
1229  TypeUnknown = 0,
1230  //! \image html align.png
1231  TypeAlign,
1232  //! \image html angle.png
1233  TypeAngle,
1234  //! \image html bond.png
1235  TypeBond,
1236  TypeCam,
1237  //! \image html center.png
1238  TypeCenter,
1239  //! \image html concentric.png
1241  //! \image html coincidence.png
1243  //! \image html distance.png
1244  TypeDistance,
1245  //! \image html fit.png
1246  TypeFit,
1247  //! \image html fix.png
1248  TypeFix,
1249  TypeGear,
1250  TypeHinge,
1251  TypeLimit,
1252  TypeLinear,
1254  //! \image html lock.png
1255  TypeLock,
1256  //! \image html orientangle.png
1258  //! \image html parallel.png
1259  TypeParallel,
1260  TypePathMate,
1261  //! \image html perpendicular.png
1265  TypeScrew,
1266  TypeSlot,
1267  //! \image html symmetric.png
1268  TypeSymmetric,
1269  //! \image html tangent.png
1270  TypeTangent,
1271  //! \image html touch.png
1272  TypeTouch,
1274  TypeWidth
1275  };

◆ ConstraintValueTypeEnum

Enumerator
ValueTypeUnknown 
ValueTypeAngle 
ValueTypeDistance 
ValueTypePosition 
ValueTypeRotation 
ValueTypeOrientation 
1186  {
1187  ValueTypeUnknown = 0,
1193  };

Constructor & Destructor Documentation

◆ Dtk_Constraint() [1/3]

Dtk_Constraint::Dtk_Constraint ( )
protected

◆ Dtk_Constraint() [2/3]

Dtk_Constraint::Dtk_Constraint ( const Dtk_Constraint &  p)
protected

◆ Dtk_Constraint() [3/3]

Dtk_Constraint::Dtk_Constraint ( Dtk_Constraint &&  p)
protected

◆ ~Dtk_Constraint()

virtual Dtk_Constraint::~Dtk_Constraint ( )
protectedvirtual

Member Function Documentation

◆ _Store()

◆ AddConstraintReference()

void Dtk_Constraint::AddConstraintReference ( const Dtk_ConstraintReferencePtr &  in)

Add a ConstraintReference to this Constraint .

◆ Clone()

virtual Dtk_Object* Dtk_Constraint::Clone ( )
protectedvirtual

Implements Dtk_Entity.

1149 { return new Dtk_Constraint( *this ); }

◆ ConstraintOrientationTypeEnumToString()

static Dtk_string Dtk_Constraint::ConstraintOrientationTypeEnumToString ( const ConstraintOrientationTypeEnum &  inEnum)
static
1173  {
1174  switch( inEnum )
1175  {
1176  case ValueTypeSame: return L"TypeSame";
1177  case ValueTypeOpposite: return L"TypeOpposite";
1178  case ValueTypeInternal: return L"TypeInternal";
1179  case ValueTypeExternal: return L"TypeExternal";
1180  default:
1181  case ValueTypeUndefined: return L"TypeUndefined";
1182  }
1183  }

◆ ConstraintTypeEnumToString()

static Dtk_string Dtk_Constraint::ConstraintTypeEnumToString ( const ConstraintTypeEnum &  inEnum)
static
1277  {
1278  switch (inEnum)
1279  {
1280  case TypeAlign: return L"TypeAlign";
1281  case TypeAngle: return L"TypeAngle";
1282  case TypeBond: return L"TypeBond";
1283  case TypeCam: return L"TypeCam";
1284  case TypeCenter: return L"TypeCenter";
1285  case TypeConcentric: return L"TypeConcentric";
1286  case TypeCoincidence: return L"TypeCoincidence";
1287  case TypeDistance: return L"TypeDistance";
1288  case TypeFit: return L"TypeFit";
1289  case TypeFix: return L"TypeFix";
1290  case TypeGear: return L"TypeGear";
1291  case TypeHinge: return L"TypeHinge";
1292  case TypeLimit: return L"TypeLimit";
1293  case TypeLinear: return L"TypeLinear";
1294  case TypeLinearCoupler: return L"TypeLinearCoupler";
1295  case TypeLock: return L"TypeLock";
1296  case TypeOrientAngle: return L"TypeOrientAngle";
1297  case TypeParallel: return L"TypeParallel";
1298  case TypePathMate: return L"TypePathMate";
1299  case TypePerpendicular: return L"TypePerpendicular";
1300  case TypeProfileCenter: return L"TypeProfileCenter";
1301  case TypeRackPinion: return L"TypeRackPinion";
1302  case TypeScrew: return L"TypeScrew";
1303  case TypeSlot: return L"TypeSlot";
1304  case TypeSymmetric: return L"TypeSymmetric";
1305  case TypeTangent: return L"TypeTangent";
1306  case TypeTouch: return L"TypeTouch";
1307  case TypeUniversalJoint: return L"TypeUniversalJoint";
1308  case TypeWidth: return L"TypeWidth";
1309  default:
1310  case TypeUnknown: return L"Unknown";
1311  }
1312  }

◆ ConstraintValueTypeEnumToString()

static Dtk_string Dtk_Constraint::ConstraintValueTypeEnumToString ( const ConstraintValueTypeEnum &  inEnum)
static
1195  {
1196  switch( inEnum )
1197  {
1198  case ValueTypeAngle: return L"Angle";
1199  case ValueTypeDistance: return L"Distance";
1200  case ValueTypePosition: return L"Position";
1201  case ValueTypeRotation: return L"Rotation";
1202  case ValueTypeOrientation: return L"Orientation";
1203  default:
1204  case ValueTypeUnknown: return L"TypeUnknown";
1205  }
1206  }

◆ Create() [1/2]

static Dtk_SmartPtr<Dtk_Constraint> Dtk_Constraint::Create ( )
static

Calls default constructor to allocate a new object.

◆ Create() [2/2]

static Dtk_SmartPtr<Dtk_Constraint> Dtk_Constraint::Create ( const Dtk_Constraint &  in)
static

\CreateCopy{in}

◆ DtkDynamicCast()

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

◆ DtkDynamicType()

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

Reimplemented from Dtk_Entity.

◆ dump()

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

◆ get_info()

Dtk_InfoPtr Dtk_Entity::get_info ( ) const
inherited

◆ get_type_detk()

type_detk Dtk_Constraint::get_type_detk ( ) const
virtual
Returns
The type of the entity type - DTK_TYPE_CONSTRAINT -

Implements Dtk_Entity.

1155 { return DTK_TYPE_CONSTRAINT; }

◆ GetConstraintReference() [1/2]

const Dtk_tab<Dtk_ConstraintReferencePtr>& Dtk_Constraint::GetConstraintReference ( ) const

Get all ConstraintReferences of the Constraint.

Returns
A tab with all the ConstraintReferences of this Constraint.

◆ GetConstraintReference() [2/2]

const Dtk_ConstraintReferencePtr& Dtk_Constraint::GetConstraintReference ( const Dtk_Size_t &  index) const

Get the Dtk_ConstraintReference at the specified index.

Parameters
Theindex to retrieve the Dtk_ConstraintReference from.
Returns
A Dtk_ConstraintReference.

◆ GetConstraintType()

const ConstraintTypeEnum& Dtk_Constraint::GetConstraintType ( ) const

Get the type of the Constraint .

Returns
the type of this Constraint .

◆ GetConstraintValue()

const _ConstraintValue& Dtk_Constraint::GetConstraintValue ( const Dtk_Size_t &  index) const

Get the Dtk_Constraint::_ConstraintValue at the specified index.

Returns
A Dtk_Constraint::_ConstraintValue.

◆ GetID()

const Dtk_ID& Dtk_Entity::GetID ( ) const
inherited

Get Internal UniqueID.

Returns
InternalID

◆ GetNumberOfConstraintReferences()

Dtk_Size_t Dtk_Constraint::GetNumberOfConstraintReferences ( ) const

Get the number of Dtk_ConstraintReference in the constraint.

Returns
The number of Dtk_ConstraintReference in the constraint.

◆ GetNumberOfConstraintValues()

Dtk_Size_t Dtk_Constraint::GetNumberOfConstraintValues ( )

Get the number of Dtk_Constraint::_ConstraintValue in the constraint.

Returns
The number of Dtk_Constraint::_ConstraintValue in the constraint.

◆ GetSize()

◆ GetValue() [1/2]

Dtk_ErrorStatus Dtk_Constraint::GetValue ( const ConstraintValueTypeEnum &  inValue,
Dtk_Val &  outValue 
) const

◆ GetValue() [2/2]

Dtk_ErrorStatus Dtk_Constraint::GetValue ( const ConstraintValueTypeEnum &  inValue,
Dtk_Val &  outValue,
Dtk_Int32 &  outEnableLowerLimit,
Dtk_Double64 &  outLowerLimit,
Dtk_Int32 &  outEnableUpperLimit,
Dtk_Double64 &  outUpperLimit 
) const

Get a Value of the Constraint .

Returns
a Value of this Constraint .

◆ GetValuesTypes()

Dtk_tab< ConstraintValueTypeEnum > Dtk_Constraint::GetValuesTypes ( ) const

Get all types of values in the Constraint.

Returns
All types of values contained in the Constraint.

◆ info()

Dtk_InfoPtr& Dtk_Entity::info ( )
inherited

◆ PrepareTransfo()

virtual void Dtk_Entity::PrepareTransfo ( )
virtualinherited

Reimplemented in Dtk_OffsetSurface.

◆ SetConstraintType()

void Dtk_Constraint::SetConstraintType ( const ConstraintTypeEnum &  in)

Set the type of the Constraint .

◆ SetValue() [1/2]

void Dtk_Constraint::SetValue ( const ConstraintValueTypeEnum &  inValueType,
Dtk_Val  inValue 
)

◆ SetValue() [2/2]

void Dtk_Constraint::SetValue ( const ConstraintValueTypeEnum &  inValueType,
Dtk_Val  inValue,
const Dtk_Int32 &  inEnableLowerLimit,
const Dtk_Double64 &  inLowerLimit,
const Dtk_Int32 &  inEnableUpperLimit,
const Dtk_Double64 &  inUpperLimit 
)

Set a Value of the Constraint .

◆ Transform()

Dtk_ErrorStatus Dtk_Constraint::Transform ( const Dtk_transfo &  inTransfo)
virtual

Applies a transformation matrix to the entity. //!

Parameters
inTransfoThe transformation matrix to apply.

Implements Dtk_Entity.

Field Documentation

◆ _Private

std::unique_ptr<Dtk_Handle> Dtk_Constraint::_Private
protected

◆ count_

unsigned long Dtk_Object::count_
protectedinherited
Dtk_Constraint::TypeFix
@ TypeFix
Definition: util_ent_dtk.hpp:1248
Dtk_Constraint::TypeSlot
@ TypeSlot
Definition: util_ent_dtk.hpp:1266
Dtk_Constraint::TypeLinearCoupler
@ TypeLinearCoupler
Definition: util_ent_dtk.hpp:1253
Dtk_Constraint::TypeWidth
@ TypeWidth
Definition: util_ent_dtk.hpp:1274
Dtk_Constraint::TypeAlign
@ TypeAlign
Definition: util_ent_dtk.hpp:1231
DTK_TYPE_ENTITY
@ DTK_TYPE_ENTITY
Definition: define.h:457
Dtk_Constraint::Dtk_Constraint
Dtk_Constraint()
Dtk_Constraint::ValueTypeSame
@ ValueTypeSame
Definition: util_ent_dtk.hpp:1167
Dtk_Constraint::TypeSymmetric
@ TypeSymmetric
Definition: util_ent_dtk.hpp:1268
Dtk_Constraint::TypeBond
@ TypeBond
Definition: util_ent_dtk.hpp:1235
Dtk_Constraint::ValueTypeInternal
@ ValueTypeInternal
Definition: util_ent_dtk.hpp:1169
Dtk_Constraint::TypeUnknown
@ TypeUnknown
Definition: util_ent_dtk.hpp:1229
DTK_TYPE_OBJECT
@ DTK_TYPE_OBJECT
Definition: define.h:455
Dtk_Constraint::ValueTypeExternal
@ ValueTypeExternal
Definition: util_ent_dtk.hpp:1170
Dtk_Constraint::ValueTypeOrientation
@ ValueTypeOrientation
Definition: util_ent_dtk.hpp:1192
Dtk_Constraint::ValueTypeDistance
@ ValueTypeDistance
Definition: util_ent_dtk.hpp:1189
Dtk_Constraint::ValueTypeAngle
@ ValueTypeAngle
Definition: util_ent_dtk.hpp:1188
Dtk_Constraint::ValueTypeRotation
@ ValueTypeRotation
Definition: util_ent_dtk.hpp:1191
Dtk_Constraint::TypeTouch
@ TypeTouch
Definition: util_ent_dtk.hpp:1272
Dtk_Constraint::TypeAngle
@ TypeAngle
Definition: util_ent_dtk.hpp:1233
Dtk_Constraint::TypePerpendicular
@ TypePerpendicular
Definition: util_ent_dtk.hpp:1262
Dtk_Constraint::TypeHinge
@ TypeHinge
Definition: util_ent_dtk.hpp:1250
Dtk_Constraint::TypeConcentric
@ TypeConcentric
Definition: util_ent_dtk.hpp:1240
Dtk_Constraint::TypeParallel
@ TypeParallel
Definition: util_ent_dtk.hpp:1259
Dtk_Constraint::ValueTypePosition
@ ValueTypePosition
Definition: util_ent_dtk.hpp:1190
Dtk_Constraint::TypeUniversalJoint
@ TypeUniversalJoint
Definition: util_ent_dtk.hpp:1273
Dtk_Constraint::TypeFit
@ TypeFit
Definition: util_ent_dtk.hpp:1246
Dtk_Entity::_typeID
@ _typeID
Definition: util_ent_dtk.hpp:371
Dtk_Constraint::TypeCam
@ TypeCam
Definition: util_ent_dtk.hpp:1236
Dtk_Constraint::TypePathMate
@ TypePathMate
Definition: util_ent_dtk.hpp:1260
Dtk_Constraint::ValueTypeOpposite
@ ValueTypeOpposite
Definition: util_ent_dtk.hpp:1168
Dtk_Constraint::ValueTypeUndefined
@ ValueTypeUndefined
Definition: util_ent_dtk.hpp:1166
Dtk_Constraint::TypeProfileCenter
@ TypeProfileCenter
Definition: util_ent_dtk.hpp:1263
Dtk_Object::_typeID
@ _typeID
Definition: dtk_object.hpp:10
Dtk_Constraint::TypeOrientAngle
@ TypeOrientAngle
Definition: util_ent_dtk.hpp:1257
Dtk_Constraint::TypeDistance
@ TypeDistance
Definition: util_ent_dtk.hpp:1244
DTK_TYPE_CONSTRAINT
@ DTK_TYPE_CONSTRAINT
Definition: define.h:599
Dtk_Constraint::TypeCoincidence
@ TypeCoincidence
Definition: util_ent_dtk.hpp:1242
Dtk_Constraint::TypeLimit
@ TypeLimit
Definition: util_ent_dtk.hpp:1251
Dtk_Constraint::ValueTypeUnknown
@ ValueTypeUnknown
Definition: util_ent_dtk.hpp:1187
Dtk_Constraint::TypeTangent
@ TypeTangent
Definition: util_ent_dtk.hpp:1270
Dtk_Constraint::TypeScrew
@ TypeScrew
Definition: util_ent_dtk.hpp:1265
Dtk_Constraint::TypeGear
@ TypeGear
Definition: util_ent_dtk.hpp:1249
Dtk_Constraint::TypeLinear
@ TypeLinear
Definition: util_ent_dtk.hpp:1252
Dtk_Constraint::TypeLock
@ TypeLock
Definition: util_ent_dtk.hpp:1255
Dtk_Constraint::TypeRackPinion
@ TypeRackPinion
Definition: util_ent_dtk.hpp:1264
Dtk_Constraint::TypeCenter
@ TypeCenter
Definition: util_ent_dtk.hpp:1238