DATAKIT SDK  V2026.2
util_kinematics_dtk.hpp
Go to the documentation of this file.
1 #ifndef _UTIL_KINEMATICS_DTK_HPP_
2 #define _UTIL_KINEMATICS_DTK_HPP_
3 #ifdef WIN32
4 #pragma warning(disable:4786)
5 #pragma warning(disable:4800)
6 #endif
7 
8 #include "def/define.h"
14 #include "util/dtk_maindoc.hpp"
15 #include "util/dtk_maindoc_ptr.hpp"
16 #include "util/error_dtk.hpp"
17 #include "util/util_stl_dtk.hpp"
18 #include "util/util_ent_dtk.hpp"
19 #include <cstdio>
20 
21 void DumpTransfo(FILE * inFile, Dtk_transfo transfo);
22 
23 class Dtk_Kinematic;
24 class Dtk_KinNamedValue;
25 class Dtk_KinConstraint;
26 class Dtk_KinMechanism;
27 class Dtk_KinParameter;
28 class Dtk_KinCommand;
29 class Dtk_KinJoint;
30 class Dtk_KinLaw;
32 class Dtk_KinFixPart;
33 class Dtk_KinCurve;
34 class Dtk_KinProduct;
35 class Dtk_KinFormula;
36 
50 
51 #ifdef KINEMATICS_OLD_CONNECTORS
52 typedef Dtk_ConnectorPart Dtk_KinPart;
53 typedef Dtk_Connector Dtk_KinConnector;
54 typedef Dtk_ConnectorPartPtr Dtk_KinPartPtr;
55 typedef Dtk_ConnectorPtr Dtk_KinConnectorPtr;
58 
59 //! \ingroup KinClasses
60 //! \brief Set the release of a part defined by it name of file
61 void Dtk_SetReleaseByPartFileName(Dtk_string & inFileName, int inRelease);
62 
63 //! \ingroup KinClasses
64 //! \brief Returns connectors associated at a part defined by it name of file
65 Dtk_ConnectorTab Dtk_GetConnectorsByPartFileName(Dtk_string & inFileName);
66 
67 //! \brief Test if a connector belong at the connector table
68 //! \param inConnector the connector to be tested
69 Dtk_bool hasConnector(Dtk_KinConnectorPtr inConnector);
70 
71 //! \brief Test if a connector belong at the connector table
72 //! \param inConnector Connector to be tested
73 Dtk_bool hasConnector(Dtk_KinConnectorPtr inConnector);
74 
75 Dtk_KinPartPtr searchPartByNumChild(int inNumChild);
76 //! \brief Returns the number of the product associated at this object
77 #else //KINEMATICS_OLD_CONNECTORS
84 #endif //KINEMATICS_OLD_CONNECTORS
85 
95 
98 
99 
100 
101 
102 //! \defgroup KinClasses Kinematics Classes & Functions
103 //! \brief .
104 
105 //! \brief Enum for parameter father type
107 {
114 };
115 
116 //! \brief Enum for the joints type
118 {
122  DTK_RIGID = 10,
126  DTK_ROLL = 14,
130  DTK_GEAR = 18,
131  DTK_RACK = 19,
132  DTK_CABLE = 20,
133  DTK_SCREW = 21,
135  DTK_PLANAR = 23
136 };
137 
138 //! \brief Enum for the command type
140 {
148 };
149 
150 //! \ingroup KinClasses
151 //! \brief Return the kinematic object
153 
154 //! \ingroup KinClasses
155 //! \brief Write Dump file
157 
158 //! \ingroup KinClasses
159 //! \brief Delete the kinematic object
161 
162 //! \ingroup KinClasses
163 //! \brief Set the kinematic object
165 
166 
167 //! \ingroup KinClasses
168 //! \class Dtk_KinNamedValue
169 //! \brief Dtk_KinNamedValue represents a named value.
170 //!
171 //! A named value is associated at a parameter.
172 //! \SmartPtr{Dtk_KinNamedValuePtr}
174 {
175 protected:
176  // struct Dtk_Handle; // Not defined here
177  // Dtk_Handle *_Private; // Handle
178  enum {
180  };
181 
182  //! \brief Default constructor
184  //! \brief Copy constructor
185  //! \param att the Dtk_KinNamedValue to be copied
187 
188  //! \brief Destructor
190 
191  friend class Dtk_SmartPtr<Dtk_KinNamedValue>;
192 private:
193  void _Init();
194  void _Copy(const Dtk_KinNamedValue &kin);
195  void _Reset();
196 
197 public:
198 
199  //! \DtkDynamicType
201  {
202  if (inId == _typeID)
203  {
204  return 1;
205  }
206  return Dtk_Object::DtkDynamicType(inId);
207  }
208 
209  //! \DtkDynamicCast
211  {
212  if(s->DtkDynamicType(_typeID))
213  return static_cast<Dtk_KinNamedValue*>(s);
214  return NULL;
215  }
216 
217  //! \return The type of the entity type - DTK_TYPE_KINEMATICS -
219 
220  //! \CreateBase
222 
224 
225 public:
226 
227  //! \brief Delete object
229 
230  //! \brief Write Dump file for named value
231  //! \param inFile the output file
232  //!
233  //! \b Sample
234  //! \code
235  //! Dtk_string fileName = ...;
236  //! File * file = fileName.OpenFile(DTK_W);
237  //!
238  //! Dtk_KinNamedValue attribut;
239  //! attribut.setName(Dtk_string("sample named value"));
240  //! attribut.setValue(5.21);
241  //! attribut.Dump(file);
242  //! \endcode
243  //!
244  //! \b Result
245  //! \code
246  //! <namedValue name="sample named value" value="5.210000"/>
247  //! \endcode
248  Dtk_status Dump(FILE * inFile);
249 
250  //! \brief Returns the name of the value
252  //! \brief Sets the name
253  //! \param inName name
254  void setName(Dtk_string inName);
255  //! \brief Returns the value of the name
256  double getValue();
257  //! \brief Sets the value
258  //! \param inValue Value
259  void setValue(double inValue);
260 private:
261 protected:
263  double _valeur;
264 };
265 
266 //! \ingroup KinClasses
267 //! \class Dtk_KinParameter
268 //! \brief Dtk_KinParameter represents a kinematic parameter
269 //!
270 //! A parameter references a named value.
271 //! \SmartPtr{Dtk_KinParameterPtr}
273 {
274  friend class Dtk_KinLaw;
275  friend class Dtk_KinMechanism;
276  friend class Dtk_KinCommand;
277  friend class Dtk_KinJoint;
278 protected:
279  // struct Dtk_Handle; // Not defined here
280  // Dtk_Handle *_Private; // Handle
281  enum {
283  };
284 
285  //! \brief Default constructor
287  //! \brief Copy constructor
288  //! \param param the Dtk_KinParameter to be copied
290 
291  //! \brief Destructor
293  friend class Dtk_SmartPtr<Dtk_KinParameter>;
294 private:
295  void _Init();
296  void _Copy(const Dtk_KinParameter &kin);
297  void _Reset();
298 public:
299 
300  //! \DtkDynamicType
302  {
303  if (inId == _typeID)
304  {
305  return 1;
306  }
307  return Dtk_Object::DtkDynamicType(inId);
308  }
309 
310  //! \DtkDynamicCast
312  {
313  if(s->DtkDynamicType(_typeID))
314  return static_cast<Dtk_KinParameter*>(s);
315  return NULL;
316  }
317 
318  //! \return The type of the entity type - DTK_TYPE_KIN_PARAMETER -
320 
321  //! \CreateBase
323 
325 
326 public:
327  //! \brief Name for optional attribute
328  //static
330 
331  //! \brief Delete object
333 
334  //! \brief Write Dump file for parameter
335  //! \param inFile the output file
336  //!
337  //! \b Sample
338  //! \code
339  //! Dtk_string fileName = ...;
340  //! File * file = fileName.OpenFile(DTK_W);
341  //!
342  //! Dtk_KinParameter parameter;
343  //! parameter.setName(Dtk_string("sample parameter"));
344  //! part.setId(1);
345  //! parameter.Dump(file);
346  //! \endcode
347  //!
348  //! \b Result simplified = false
349  //! \code
350  //! <parameter name="sample parameter" id="1">
351  //! <range nbValue="4" _1="..." _2="..." _3="..." _4="..." />
352  //! <!-- namedValue.Dump -->
353  //! </parameter>
354  //! \endcode
355  //!
356  //! \b Result simplified = true
357  //! \code
358  //! <parameter name="sample parameter" id="1" parent="%idParentNode_%typeNode">
359  //! </parameter>
360  //! // %typeNode = COMMAND or JOINT or MECHANISM or ...
361  //! \endcode
362  Dtk_status Dump(FILE * inFile, Dtk_bool simplified=DTK_FALSE);
363  //! \brief Test if 2 Dtk_KinParameter is equal
364  //!
365  //! Compare the id attributes.
366  //! \param inParam Dtk_KinParameter to be tested
368 
369  //! \brief Returns the parameter name
371  //! \brief Sets the parameter name
372  //! \param inName parameter name
373  void setName(Dtk_string inName);
374  //! \brief Retrun the parameter id
375  int getId();
376  //! \brief Sets the parameter id
377  //! \param inId parameter id
378  void setId(int inId);
379  //! \brief Returns the named value associated at the parameter
381  //! \brief Sets the named value to be associated at parameter
382  //! \param inAtt named value
384 
385  //! \brief Test if an attribute name belong at the attribute table
386  //! \param inAtributeName Name of attribute
387  //!
388  //! The attribute table contains names of optional attribute used.
389  //! The attribute name is defined with static variable.
390  Dtk_bool hasAttribute(Dtk_string inAttributeName);
391  //! \brief Add inAttribute at the attribute table
392  //! \param inAttribute Attribute name to be added
393  //!
394  //! If the attribute table doesn't contain inAttribute,
395  //! add inAttribute at the attribute table
396  void addAttribute(Dtk_string inAttribute);
397  //! \brief Returns Dtk_string at position inPosition.
398  //! \param inPosition position of element
399  //!
400  //! If position is out bounds, returns Dtk_string()
402  //! \brief Return the attribute tab size
404 
405  //! \brief Returns the node parent type of this parameter (joint, command or mechanism)
407  //! \brief Sets the type of the node parent
408  //! \param inType Type o the node parent
410  //! \brief Returns the parent element
411  //!
412  //! \code
413  //! Dtk_KinParameter * param = ...;
414  //! if (param->getNodeParentType() == DTK_KIN_TYPE_JOINT)
415  //! {
416  //! Dtk_KinJoint * joint = (Dtk_KinJoint *) param->getParentElement();
417  //! ...
418  //! }
419  //! \endcode
421  //! \brief Sets the parent element
422  //! \param inParent parent element
423  void setParentElement(void * inParent);
424 
425  //! \brief Get the range value at position inPosition.
426  //! \param inPosition Position
427  double getRange(int inPosition);
428  //! \brief Sets the range attribute of the parameter
429  //! \param inRange the range table
430  //!
431  //! The RANGE name is added at attribute table.
432  void setRange(double inRange[4]);
433  //! \brief Sets the inValue of range attribute at inPosition
434  //! \param inValue the value for range at position
435  //! \param inPosition position for the value
436  //!
437  //! The RANGE name is added at attribute table.
438  void setRange(double inValue, int inPosition);
439 private:
440  int _compteur;
441 protected:
443  int _ID;
445 
447 
449  void * _parentNode;
450 
451  //! Optional attribute for KinTime parameter
452  double _range[4];
453 };
454 
455 //! \ingroup KinClasses
456 //! \class Dtk_KinProduct
457 //! \brief Dtk_KinProduct represents a kinematic product
458 //! \SmartPtr{Dtk_KinProductPtr}
460 {
461 
462 protected:
463  // struct Dtk_Handle; // Not defined here
464  // Dtk_Handle *_Private; // Handle
465  enum {
467  };
468 
469  //! \brief Default constructor
471  //! \brief Copy constructor
472  //! \param part the Dtk_KinPart to be copied
474 
475  //! \brief Destructor
477  friend class Dtk_SmartPtr<Dtk_KinProduct>;
478 
479  private:
480  void _Init();
481  void _Copy(const Dtk_KinProduct &kin);
482  void _Reset();
483 
484  public:
485 
486  //! \DtkDynamicType
488  {
489  if (inId == _typeID)
490  {
491  return 1;
492  }
493  return Dtk_Object::DtkDynamicType(inId);
494  }
495 
496  //! \DtkDynamicCast
498  {
499  if(s->DtkDynamicType(_typeID))
500  return static_cast<Dtk_KinProduct*>(s);
501  return NULL;
502  }
503 
504  //! \return The type of the entity type - DTK_TYPE_KIN_PRODUCT -
506 
507  //! \CreateBase
509 
511 
512 public:
513 
514  //! \brief Write Dump file for product
515  //! \param inFile the output file
516  //!
517  //! \b Sample
518  //! \code
519  //! Dtk_string fileName = ...;
520  //! File * file = fileName.OpenFile(DTK_W);
521  //!
522  //! Dtk_KinProduct product;
523  //! product.setName(Dtk_string("sample product"));
524  //! product.setId(1);
525  //! product.Dump(file);
526  //! \endcode
527  //!
528  //! \code
529  //! <product name="sample product" id="1" instanceName="...">
530  //! <components>
531  //! <!-- Products associated at this product -->
532  //! <!-- product.Dump(inFile) -->
533  //! <!-- Parts associated at this product -->
534  //! <!-- part.Dump(inFile, false) -->
535  //! </components>
536  //! </product>
537  //! \endcode
538  Dtk_status Dump(FILE * inFile, int & inNum);
539 
540  // //! \brief Test if 2 Dtk_KinProduct is equal
541  // //!
542  // //! Compare the id attributes.
543  // //! \param inProduct Dtk_KinProduct to be tested
544  // Dtk_bool operator==(Dtk_KinProduct & inProduct);
545  // //! \brief Test if 2 Dtk_KinProduct is equal
546  // //!
547  // //! Compare the id attributes.
548  // //! \param inProduct Dtk_KinProduct to be tested
549  // Dtk_bool isEqual(Dtk_KinProduct * inProduct);
550 
551  //! \brief Accessor for the name attribute
553  //! \brief Accessor for the id attribute
554  int& id();
555  //! \brief Accessor for the numChild attribute
556  int& numChild();
557  //! \brief Accessor for the instance name attribute
559  //! \ brief Accessor for the file name attribute
561 
562  //! \brief Returns the number of part associated
564  //! \brief Adds the part
565  void addPart(Dtk_KinPartPtr inPart);
566  //! \brief Returns the part at position inPos
568  //! \brief Returns the part by it numChild attribute
570  //! \brief Adds the product
571  void addProduct(Dtk_KinProductPtr inProduct);
572  //! \brief Returns the product at position inPos
574  //! \brief Returns the product by it numChild attribute
576 protected:
578  int _ID;
580 
583 
586 private:
587 };
588 
589 
590 
591 //! \ingroup KinClasses
592 //! \class Dtk_KinConstraint
593 //! \brief Dtk_KinConstraint represents a constraint to define a joint
594 //!
595 //! Constraints types:
596 //! - Coincidence
597 //! - Offset
598 //! - Fix (only for fix part of mechanism)
599 //! - FixTogether (only with Rigid joint)
600 //!
601 //! A constraint is linked at a kinematic object and a joint object.
602 //! \SmartPtr{Dtk_KinConstraintPtr}
604 {
605  friend class Dtk_KinJoint;
606  friend class Dtk_Kinematic;
607  friend class Dtk_KinFixPart;
608 
609  protected:
610  // struct Dtk_Handle; // Not defined here
611  // Dtk_Handle *_Private; // Handle
612  enum {
614  };
615 
616  //! \brief Default constructor
618  //! \brief Copy constructor
619  //! \param constraint the Dtk_KinConstraint to be copied
621 
622  //! \brief Destructor
624 
625  friend class Dtk_SmartPtr<Dtk_KinConstraint>;
626 
627  private:
628  void _Init();
629  void _Copy(const Dtk_KinConstraint &kin);
630  void _Reset();
631 
632  public:
633 
634  //! \DtkDynamicType
636  {
637  if (inId == _typeID)
638  {
639  return 1;
640  }
641  return Dtk_Object::DtkDynamicType(inId);
642  }
643 
644  //! \DtkDynamicCast
646  {
647  if(s->DtkDynamicType(_typeID))
648  return static_cast<Dtk_KinConstraint*>(s);
649  return NULL;
650  }
651 
652  //! \return The type of the entity type - DTK_TYPE_KINEMATICS -
654 
655  //! \CreateBase
657 
659 
660 public:
661  //! \brief Name for optional attribute
662  //static
664  //! \brief Name for optional attribute
665  //static
667  //! \brief Name for optional attribute
668  //static
670  //! \brief Name for optional attribute
671  //static
673  //! \brief Name for optional attribute
674  //static
676 
677  //! \brief Delete object
679 
680  //! \brief Write Dump file for constraint
681  //! \param inFile the output file
682  //! \param simplified determine if you write a simplified file
683  //!
684  //! \b Sample
685  //! \code
686  //! Dtk_string fileName = ...;
687  //! File * file = fileName.OpenFile(DTK_W);
688  //!
689  //! Dtk_KinConstraint constraint;
690  //! constraint.setName(Dtk_string("sample constraint"));
691  //! constraint.setId(1);
692  //! constraint.Dump(file, true);
693  //! \endcode
694  //!
695  //! \b Result (simplified = true)
696  //! \code
697  //! <constraint name="sample constraint" id="1">
698  //! </constraint>
699  //! \endcode
700  //!
701  //! \b Result (simplified = false)<br>
702  //! All attributes are represented. Some attributes could not appear into out file.
703  //! \code
704  //! <constraint name="sample constraint" id="1">
705  //! <attributConstraint modeInteger="" value="" orientation="" fixInSpace="">
706  //! <matricePosition nbValue="12" _1="" _2="" _3="" _4="" _5="" _6="" _7="" _8="" _9="" _10="" _11="" _12="" />
707  //! </attributConstraint>
708  //! <parts>
709  //! <!-- Parts associated at constraint -->
710  //! <!-- part.Dump(inFile, true) -->
711  //! </parts>
712  //! </constraint>
713  //! \endcode
714  Dtk_status Dump(FILE * inFile, Dtk_bool simplified);
715 
716  //! \brief Test if 2 Dtk_KinConstraint is equal
717  //!
718  //! Compare the id attribute.
719  //! \param inPart Dtk_KinConstraint to be tested
721  //! \brief Test if 2 Dtk_KinConstraint is equal
722  //!
723  //! Compare the id attribute.
724  //! \param inPart Dtk_KinConstraint to be tested
726 
727  //! \brief Returns the constraint name
729  //! \brief Sets the constraint name
730  //! \param inName constraint name
731  void setName(Dtk_string inName);
732  //! \brief Retrun the constraint id
733  int getId();
734  //! \brief Sets the constraint id
735  //! \param inId constraint id
736  void setId(int inId);
737 
738 
739  //! \brief Add a connector at the connector table
740  //! \param inConnector the connector to be added
741  //!
742  //! The connector is added if connector table doesn't contain this connector
744  //! \brief Returns the connector at inPosition
745  //! \param inPosition position of the connector
746  //!
747  //! If position is out bounds, returns NULL.
749  //! \brief Return the attribute tab size
751  //! \brief Replace the connector at position inPosition by the connector inConnector
752  void replaceConnector(Dtk_Size_t inPosition, Dtk_KinConnectorPtr inConnector);
753 
754  //! \brief Test if an attribute name belong at the attribute table
755  //! \param inAtributeName Name of attribute
756  //!
757  //! The attribute table contains names of optional attribute used.
758  //! The attribute name is defined with static variable.
759  Dtk_bool hasAttribute(Dtk_string inAttributeName);
760  //! \brief Add inAttribute at the attribute table
761  //! \param inAttribute Attribute name to be added
762  //!
763  //! If the attribute table doesn't contain inAttribute,
764  //! add inAttribute at the attribut table
765  void addAttribute(Dtk_string inAttribute);
766  //! \brief Returns Dtk_string at position inPosition.
767  //! \param inPosition position of element
768  //!
769  //! If position is out bounds, Returns Dtk_string()
771  //! \brief Return the attribute tab size
773 
774  //! \brief Returns the Dtk_KinParameter represents the constraint value
776  //! \brief Sets the parameter for value
777  //! \param inParam value
778  //!
779  //! The VALUE name is added at attribute table.
781  //! \brief Returns the Dtk_KinParameter represents the orientation
783  //! \brief Sets the parameter for orientation
784  //! \param inParam orientation
785  //!
786  //! The ORIENTATION name is added at attribute table.
788  //! \brief Returns the Dtk_KinParameter represents the mode integer
790  //! \brief Sets the parameter for mode integer
791  //! \param inMode mode integer
792  //!
793  //! The MODE_INTEGER name is added at attribute table.
794  void setModeInteger(int inMode);
795  //! \brief Returns the Dtk_KinParameter represents the reference
797  //! \brief Sets the parameter for reference attribute
798  //! \param inParam reference attribute
799  //!
800  //! The REFERENCE name is added at attribute table
802  //! \brief Returns the part position
804  //! \brief Sets the part position
805  //! \param transfo Postion of the part
806  //!
807  //! The POSITION name is added at attribute table
808  void setPosition(Dtk_transfo transfo);
809 private:
810  int _compteur;
811 protected:
813  int _ID;
815 
816  //! \brief Contains the names of the defining optional attributes forced.
818 
819  //! \brief Optional attribute (offset constraint)
821  //! \brief Optional attribute (offset constraint)
822  //!
823  //! - 1: same orientation
824  //! - 2: opposite orientation
825  //! - 3: undefined orientation
827  //! \brief Optional attribute (offset constraint)
828  //!
829  //! - 1: case reference not checked
830  //! - 2: case reference checked
832  //! \brief Optional attribute (fix constraint)
833  //!
834  //! - 1: case fix in space checked
835  //! - 2: case fix in space not checked
837  //! \brief Optional attribute (fix constraint)
839 };
840 
841 
842 //! \ingroup KinClasses
843 //! \class Dtk_KinJoint
844 //! \brief Dtk_KinJoint represents a joint to define a mechanism.
845 //!
846 //! Joints types:
847 //! - prismatic
848 //! - revolute
849 //! - rigid
850 //! - spherical
851 //! - point curve
852 //! - slide curve
853 //! - roll
854 //! - cylindrical
855 //! - universal joint
856 //! - CV joint
857 //! - gear
858 //! - rack
859 //! - cable
860 //! - screw
861 //! - point surface
862 //! - planar
863 //!
864 //! A joint is linked at a kinematic object, a mechanism object and a command object.
865 //! \SmartPtr{Dtk_KinJointPtr}
866 class Dtk_KinJoint : public Dtk_Object
867 {
868  friend class Dtk_KinCommand;
869  friend class Dtk_Kinematic;
870  friend class Dtk_KinMechanism;
871 
872  protected:
873  // struct Dtk_Handle; // Not defined here
874  // Dtk_Handle *_Private; // Handle
875  enum {
877  };
878 
879  //! \brief Default constructor
881  //! \brief Copy constructor
882  //! \param joint the Dtk_KinJoint to be copied
883  Dtk_KinJoint(const Dtk_KinJoint& joint);
884 
885  //! \brief Destructor
887  friend class Dtk_SmartPtr<Dtk_KinJoint>;
888 
889 
890  private:
891  void _Init();
892  void _Copy(const Dtk_KinJoint &kin);
893  void _Reset();
894 
895  public:
896 
897  //! \DtkDynamicType
899  {
900  if (inId == _typeID)
901  {
902  return 1;
903  }
904  return Dtk_Object::DtkDynamicType(inId);
905  }
906 
907  //! \DtkDynamicCast
909  {
910  if(s->DtkDynamicType(_typeID))
911  return static_cast<Dtk_KinJoint*>(s);
912  return NULL;
913  }
914 
915  //! \return The type of the entity type - DTK_TYPE_KIN_JOINT -
917  //! \CreateBase
919 
921 
922 public:
923  //! \brief Name for optional attribute
924  //static
926  //! \brief Name for optional attribute
927  //static
929  //! \brief Name for optional attribute
930  //static
932  //! \brief Name for optional attribute
933  //static
935  //! \brief Name for optional attribute
936  //static
938  //! \brief Name for optional attribute
939  //static
941  //! \brief Name for optional attribute
942  //static
944  //! \brief Name for optional attribute
945  //static
947  //! \brief Name for optional attribute
948  //static
950  //! \brief Name for optional attribute
951  //static
953  //! \brief Name for optional attribute
954  //static
956  //! \brief Name for optional attribute
957  //static
959  //! \brief Name for optional attribute
960  //static
962  //! \brief Name for optional attribute
963  //static
965  //! \brief Name for optional attribute
966  //static
968  //! \brief Name for optional attribute
969  //static
971  //! \brief Name for optional attribute
972  //static
974  //! \brief Name for optional attribute
975  //static
977 
978 
979  //! \brief Delete object
981 
982  //! \brief Write Dump file for joint
983  //! \param inFile the output file
984  //! \param simplified determine if you write a simplified file
985  //!
986  //! \b Sample
987  //! \code
988  //! Dtk_string fileName = ...;
989  //! File * file = fileName.OpenFile(DTK_W);
990  //!
991  //! Dtk_KinJoint joint;
992  //! joint.setName(Dtk_string("sample joint"));
993  //! joint.setId(1);
994  //! joint.Dump(file, true);
995  //! \endcode
996  //!
997  //! \b Result (simplified = true)
998  //! \code
999  //! <joint name="sample joint" id="1">
1000  //! </joint>
1001  //! \endcode
1002  //!
1003  //! \b Result (simplified = false)<br>
1004  //! All attributes are represented. Some attributes could not appear into out file.
1005  //! \code
1006  //! <joint name="sample joint" id="1">
1007  //! <attributJoint type="" compoundType="" parameter1="" parameter2="" ratio="">
1008  //! <limit upperLimit1="" lowerLimit1="" upperLimit2="" lowerLimit2=""/>
1009  //! <localFrame1 nbValue="12" _1="" _2="" _3="" _4="" _5="" _6="" _7="" _8="" _9="" _10="" _11="" _12="" />
1010  //! <localFrame2 nbValue="12" _1="" _2="" _3="" _4="" _5="" _6="" _7="" _8="" _9="" _10="" _11="" _12="" />
1011  //! <localFrame3 nbValue="12" _1="" _2="" _3="" _4="" _5="" _6="" _7="" _8="" _9="" _10="" _11="" _12="" />
1012  //! <localFrame4 nbValue="12" _1="" _2="" _3="" _4="" _5="" _6="" _7="" _8="" _9="" _10="" _11="" _12="" />
1013  //! <absolutePos1 nbValue="12" _1="" _2="" _3="" _4="" _5="" _6="" _7="" _8="" _9="" _10="" _11="" _12="" />
1014  //! <absolutePos2 nbValue="12" _1="" _2="" _3="" _4="" _5="" _6="" _7="" _8="" _9="" _10="" _11="" _12="" />
1015  //! </attributJoint>
1016  //! <parts>
1017  //! <!-- Parts associated at constraint -->
1018  //! <!-- part.Dump(inFile, true) -->
1019  //! </parts>
1020  //! <constraints>
1021  //! <!-- Constraints associated at joint -->
1022  //! <!-- constraint.Dump(inFile, true) -->
1023  //! </constraints>
1024  //! <connector>
1025  //! <!-- Connectors associated at joint -->
1026  //! <!-- connector.Dump(inFile, true) -->
1027  //! </connectors>
1028  //! <!-- parameter.Dump(inFile) -->
1029  //! <joints>
1030  //! <!-- Joints associated at joint -->
1031  //! <!-- joint.Dump(inFile, true) -->
1032  //! </joints>
1033  //! </joint>
1034  //! \endcode
1035  Dtk_status Dump(FILE * inFile, Dtk_bool simplified);
1036 
1037  //! \brief Test if 2 Dtk_KinJoint is equal
1038  //!
1039  //! Compare the id attributes.
1040  //! \param inPart Dtk_KinJoint to be tested
1042  //! \brief Test if 2 Dtk_KinJoint is equal
1043  //!
1044  //! Compare the id attributes.
1045  //! \param inPart Dtk_KinJoint to be tested
1047 
1048  //! \brief Returns the joint name
1050  //! \brief Sets the joint name
1051  //! \param inName joint name
1052  void setName(Dtk_string inName);
1053  //! \brief Retrun the joint id
1054  int getId();
1055  //! \brief Sets the joint id
1056  //! \param inId joint id
1057  void setId(int inId);
1058  //! \brief Returns the joint type
1060  //! \brief Sets the type of the joint
1061  //! \param inType type of the joint
1062  void setType(int inType);
1063  //! \brief Returns the first part associated at the joint
1065  //! \brief Sets the first part associated at the joint
1066  //! \param inPart Part to be associated at the joint
1067  void setPart1(Dtk_KinPartPtr inPart);
1068  //! \brief Returns the second part associated at the joint
1070  //! \brief Sets the second part associated at the joint
1071  //! \param inPart Part to be associated at the joint
1072  void setPart2(Dtk_KinPartPtr inPart);
1073  //! \brief Returns the local frame 1 value
1075  //! \brief Sets the local frame 1
1076  //! \param inTransfo Local frame to be set
1078  //! \brief Returns the local frame 2 value
1080  //! \brief Sets the local frame 2
1081  //! \param inTransfo Local frame to be set
1083  //! \brief Returns the compound type attribute
1085  //! \brief Sets the compound type
1086  //! \param inCompoundType compound type
1087  void setCompoundType(int inCompoundtype);
1088 
1089  //! \brief Test if an attribute name belong at the attribute table
1090  //! \param inAtributeName Name of attribute
1091  //!
1092  //! The attribute table contains names of optional attribute used.
1093  //! The attribute name is defined with static variable.
1095  //! \brief Add inAttribute at the attribute table
1096  //! \param inAttribute Attribute name to be added
1097  //!
1098  //! If the attribute table doesn't contain inAttribute,
1099  //! add inAttribute at the attribute table
1100  void addAttribute(Dtk_string inAttribute);
1101  //! \brief Returns Dtk_string at position inPosition.
1102  //! \param inPosition position of element
1103  //!
1104  //! If position is out bounds, returns Dtk_string()
1106  //! \brief Return the attribute tab size
1108 
1109  //! \brief Test if a constraint belong at the constraint table
1110  //! \param inConstraint Constraint to be tested
1112  //! \brief Returns Constraint at position inPosition
1113  //! \param inPosition position of element
1114  //!
1115  //! If the position is out bounds of constraint table, returns NULL
1117  //! \brief Add constraint at the constraint table
1118  //! \param inConstraint constraint to be added
1119  //!
1120  //! If the constraint table doesn't contain inConstraint,
1121  //! the constraint added
1122  //!
1123  //! The CONSTRAINT name is added at attribute table.
1125  //! \brief Return the attribute tab size
1127  //! \brief Returns Connector at position inPosition
1128  //! \param inPosition position of element
1129  //!
1130  //! If the position is out bounds of connector table, returns NULL
1132  //! \brief Add connector at the connector table
1133  //! \param inConnector connector to be added
1134  //!
1135  //! If the connector table doesn't contain inConnector,
1136  //! the connector added
1137  //!
1138  //! The CONNECTOR name is added at attribute table.
1140  //! \brief Return the attribute tab size
1142  //! \brief Return the connector tab
1144  //! \brief Returns the first parameter
1145  double getParameter1();
1146  //! \brief Sets the first parameter of the joint
1147  //! \param inParam parameter 1 of the joint
1148  //!
1149  //! The PARAMETER1 name is added at attribute table.
1150  void setParameter1(double inParam);
1151  //! \brief Returns the second parameter
1152  double getParameter2();
1153  //! \brief Sets the second parameter of the joint
1154  //! \param inParam parameter 2 of the joint
1155  //!
1156  //! The PARAMETER2 name is added at attribute table.
1157  void setParameter2(double inParam);
1158  //! \brief Returns the fix together constraint
1160  //! \brief Sets the fix together constraint of the joint
1161  //! \param inFix FixTogether constraint to be added
1162  //!
1163  //! The FIX_TOGETHER name is added at attribute table
1165  //! \brief Returns the part 1 absolute position
1167  //! \brief Sets the absolute position for part 1
1168  //! \param inTransfo Absolute position to be set
1169  //!
1170  //! The ABSOLUT_POS1 name is added at attribute table.
1172  //! \brief Returns the part 2 absolute position
1174  //! \brief Sets the absolute position for part 2
1175  //! \param inTransfo Absolute position to be set
1176  //!
1177  //! The ABSOLUT_POS2 name is added at attribute table
1179  //! \brief Returns the upper limit 1
1180  double getUpperLimit1();
1181  //! \brief Sets the upper limit for the first parameter of joint
1182  //! \param inVal Value for the upper limit 1
1183  //!
1184  //! The UPPER_LIMIT1 name is added at attribute table.
1185  void setUpperLimit1(double inVal);
1186  //! \brief Returns the lower limit 1
1187  double getLowerLimit1();
1188  //! \brief Sets the lower limit for the first parameter of joint
1189  //! \param inVal Value for the lower limit 1
1190  //!
1191  //! The LOWER_LIMIT1 name is added at attribute table.
1192  void setLowerLimit1(double inVal);
1193  //! \brief Returns the upper limit 2
1194  double getUpperLimit2();
1195  //! \brief Sets the upper limit for the second parameter of joint
1196  //! \param inVal Value for the upper limit 2
1197  //!
1198  //! The UPPER_LIMIT2 name is added at attribute table.
1199  void setUpperLimit2(double inVal);
1200  //! \brief Returns the lower limit 2
1201  double getLowerLimit2();
1202  //! \brief Sets the lower limit for the second parameter of joint
1203  //! \param inVal Value for the lower limit 2
1204  //!
1205  //! The LOWER_LIMIT2 name is added at attribute table.
1206  void setLowerLimit2(double inVal);
1207  //! \brief Returns the third part associated at the joint
1209  //! \brief Sets the third part associated at the joint
1210  //! \param inPart Part to be associated at the joint
1211  //!
1212  //! The PART3 name is added at attribute table.
1213  void setPart3(Dtk_KinPartPtr inPart);
1214  //! \brief Returns the local frame 3 value
1216  //! \brief Sets the local frame 3
1217  //! \param inTransfo Local frame to be set
1219  //! \brief Returns the local frame 4 value
1221  //! \brief Sets the local frame 4
1222  //! \param inTransfo Local frame to be set
1224  //! \brief Returns the first joint associated at the joint
1226  //! \brief Sets the first joint associated at the joint
1227  //! \param inJoint Joint to be associated at the joint
1228  //!
1229  //! The JOINT1 name is added at attribute table.
1231  //! \brief Returns the second joint associated at the joint
1233  //! \brief Sets the second joint associated at the joint
1234  //! \param inJoint Joint to be associated at the joint
1235  //!
1236  //! The JOINT2 name is added at attribute table
1238  //! \brief Returns the joint ratio value
1239  double getRatio();
1240  //! \brief Sets the ratio value of the joint
1241  //! \param inVal Value of the joint ratio
1242  //!
1243  //! The RATIO name is added at attribute table
1244  void setRatio(double inVal);
1245  //! \brief Returns the Dtk_KinParameter ratio of the joint
1247  //! \brief Sets the joint Dtk_KinParameter ratio
1248  //! \param inParam Ratio parameter
1249  //!
1250  //! The RATIO_PARAMETER name is added at attribute table
1252 private:
1253  int _compteur;
1254 protected:
1256  int _ID;
1257  //! Joint type:
1258  //! - 1: prismatic
1259  //! - 2: revolute
1260  //! - 10: rigid
1261  //! - 11: spherical
1262  //! - 12: point curve
1263  //! - 13: slide curve
1264  //! - 14: roll
1265  //! - 15: cylindrical
1266  //! - 16: universal joint
1267  //! - 17: CV joint
1268  //! - 18: gear
1269  //! - 19: rack
1270  //! - 20: cable
1271  //! - 21: screw
1272  //! - 22: point surface
1273  //! - 23: planar
1275  //! \brief This part is defined at the kinematic part table.
1277  //! \brief This part is defined at the kinematic part table.
1281  //! Compound joint
1282  //! - 0: not compound
1283  //! - 1: compound
1285 
1286  //! \brief Contains the names of the defining optional attributes forced.
1288 
1289  //! \brief Optional attribute.
1290  //! All constraints are defined at the kinematic constraint table.
1292  //! \brief Optional attribute.
1293  //! All connectors are defined at the specific part.
1295  //! Optional attribute
1296  double _parameter1;
1297  //! Optional attribute
1298  double _parameter2;
1299  //! \brief Optional attribute only with rigid joint.
1300  //! This constaint is defined at the kinematic constraint table.
1302  //! Optional attribute
1304  //! Optional attribute
1306  //! Optional attribute
1308  //! Optional attribute
1310  //! Optional attribute
1312  //! Optional attribute
1314  //! \brief Optional attribute only with compound joint.
1315  //! This part is defined at the kinematic part table.
1317  //! Optional attribute only with compound joint
1319  //! Optional attribute only with compound joint
1321  //! \brief Optional attribute only with compound joint.
1322  //! This joint est defined at the kinematic joint table.
1324  //! \brief Optional attribute only with compound joint
1325  //! This joint est defined at the kinematic joint table.
1327  //! Optional attribute
1328  double _ratio;
1329  //! Optional attribute
1331 };
1332 
1333 //! \ingroup KinClasses
1334 //! \class Dtk_KinCommand
1335 //! \brief Dtk_KinCommand represents a command to simulate a mechanism.
1336 //!
1337 //! A command is linked at a kinematic object and a mechanism object.
1338 //! \SmartPtr{Dtk_KinCommandPtr}
1340 {
1341  friend class Dtk_Kinematic;
1342  friend class Dtk_KinMechanism;
1343 
1344  protected:
1345  // struct Dtk_Handle; // Not defined here
1346  // Dtk_Handle *_Private; // Handle
1347  enum {
1349  };
1350 
1351  //! \brief Default constructor
1353  //! \brief Copy constructor
1354  //! \param cmd the Dtk_KinCommand to be copied
1356 
1357  //! \brief Destructor
1359 
1360  friend class Dtk_SmartPtr<Dtk_KinCommand>;
1361 
1362  private:
1363  void _Init();
1364  void _Copy(const Dtk_KinCommand &kin);
1365  void _Reset();
1366 
1367  public:
1368 
1369  //! \DtkDynamicType
1371  {
1372  if (inId == _typeID)
1373  {
1374  return 1;
1375  }
1376  return Dtk_Object::DtkDynamicType(inId);
1377  }
1378 
1379  //! \DtkDynamicCast
1381  {
1382  if(s->DtkDynamicType(_typeID))
1383  return static_cast<Dtk_KinCommand*>(s);
1384  return NULL;
1385  }
1386 
1387  //! \return The type of the entity type - DTK_TYPE_KIN_COMMAND -
1389  //! \CreateBase
1391 
1393 
1394 
1395 public:
1396 
1397  //! \brief Delete object
1399 
1400  //! \brief Write Dump file for command
1401  //! \param inFile the output file
1402  //! \param simplified determine if you write a simplified file
1403  //!
1404  //! \b Sample
1405  //! \code
1406  //! Dtk_string fileName = ...;
1407  //! File * file = fileName.OpenFile(DTK_W);
1408  //!
1409  //! Dtk_KinCommand command;
1410  //! command.setName(Dtk_string("sample command"));
1411  //! command.setId(1);
1412  //! command.Dump(file, true);
1413  //! \endcode
1414  //!
1415  //! \b Result (simplified = true)
1416  //! \code
1417  //! <command name="sample command" id="1">
1418  //! </command>
1419  //! \endcode
1420  //!
1421  //! \b Result (simplified = false)
1422  //! \code
1423  //! <command name="sample command" id="1">
1424  //! <attributCommand type="" value="" />
1425  //! <!-- Joint associated at command / _joint.Dump(inFile,true) -->
1426  //! <!-- Parameter associated at command / _parameter.Dump(inFile) -->
1427  //! </command>
1428  //! \endcode
1429  Dtk_status Dump(FILE * inFile, Dtk_bool simplified);
1430 
1431  //! \brief Test if 2 Dtk_KinCommand are equal.
1432  //!
1433  //! Compare the id attribute.
1434  //! \param inCommand Dtk_KinCommand to be tested
1436  //! \brief Test if 2 Dtk_KinCommand are equal.
1437  //!
1438  //! Compare the id attribute.
1439  //! \param inCommand Dtk_KinCommand to be tested
1441 
1442  //! \brief Returns the command name
1444  //! \brief Sets the command name
1445  //! \param inName command name
1446  void setName(Dtk_string inName);
1447  //! \brief Returns the command id
1448  int getId();
1449  //! \brief Sets the command id
1450  //! \param inId command id
1451  void setId(int inId);
1452  //! \brief Returns the command type
1454  //! \brief Sets the type of the command
1455  //! \param inType type of the command
1456  void setType(int inType);
1457  //! \brief Returns the value of the command for simulation
1458  double getValue();
1459  //! \brief Sets the command value
1460  //! \param inValue Command value
1461  void setValue(double inValue);
1462  //! \brief Returns the joint associated at command.
1464  //! \brief Sets the joint associated at command
1465  //! \param inJoint Joint command
1466  void setJoint(Dtk_KinJointPtr inJoint);
1467  //! \brief Returns the parameter associated at command
1469  //! \brief Sets the parameter command
1470  //! \param inParam Parameter command
1472 private:
1473  int _compteur;
1474 protected:
1476  int _ID;
1477  // 3 => gear:joint1
1478  // 4 => rack:joint1/cable:joint1
1479  // 5 => rack:joint2/gear:joint2
1480  // 6 => cable:joint2
1481  //! type command:
1482  //! - 1: Angle (not compound joint type)
1483  //! - 2: Length (not compound joint type)
1484  //! - 3: Angle (compound joint : angle command type associated at the first joint of compound joint)
1485  //! - 4: Length (compound joint : length command type associated at the first joint of compound joint)
1486  //! - 5: Angle (compound joint : angle command type associated at the second joint of compound joint)
1487  //! - 6; Length (compound joint : length command type associated at the second joint of compound joint)
1489  double _value;
1490  //! \brief This joint belongs at the kinematic joint table.
1493 };
1494 
1495 
1496 //! \ingroup KinClasses
1497 //! \class Dtk_KinFixPart
1498 //! \brief Dtk_KinFixPart represents the fixed part to simulate the mechanism.
1499 //!
1500 //! A fixed part is linked at a mechanism object.
1501 //! \SmartPtr{Dtk_KinFixPartPtr}
1503 {
1504 
1505  protected:
1506  // struct Dtk_Handle; // Not defined here
1507  // Dtk_Handle *_Private; // Handle
1508  enum {
1510  };
1511 
1512  //! \brief Default constructor
1514  //! \brief Copy constructor
1515  //! \param fixPart the Dtk_KinFixPart to be copied
1516  Dtk_KinFixPart(const Dtk_KinFixPart & fixPart);
1517 
1518  //! \brief Destructor
1520  friend class Dtk_SmartPtr<Dtk_KinFixPart>;
1521  private:
1522  void _Init();
1523  void _Copy(const Dtk_KinFixPart &kin);
1524  void _Reset();
1525 
1526  public:
1527 
1528  //! \DtkDynamicType
1530  {
1531  if (inId == _typeID)
1532  {
1533  return 1;
1534  }
1535  return Dtk_Object::DtkDynamicType(inId);
1536  }
1537 
1538  //! \DtkDynamicCast
1540  {
1541  if(s->DtkDynamicType(_typeID))
1542  return static_cast<Dtk_KinFixPart*>(s);
1543  return NULL;
1544  }
1545 
1546  //! \return The type of the entity type - DTK_TYPE_KIN_FIXPART -
1548  //! \CreateBase
1550 
1552 
1553 public:
1554 
1555  //! \brief Delete object
1557 
1558  //! \brief Write Dump file for fix part
1559  //! \param inFile the output file
1560  //!
1561  //! \b Sample
1562  //! \code
1563  //! Dtk_string fileName = ...;
1564  //! File * file = fileName.OpenFile(DTK_W);
1565  //!
1566  //! Dtk_KinFixPart fixPart;
1567  //! fixPart.setName(Dtk_string("sample fixPart"));
1568  //! fixPart.setId(1);
1569  //! fixPart.Dump(file, true);
1570  //! \endcode
1571  //!
1572  //! \b Result
1573  //! \code
1574  //! <part name="sample fixPart" id="1">
1575  //! <!-- Constraint associated at the fix part / constraint.Dump(inFile, true) -->
1576  //! <!-- Part associated at the fix part / part.Dump(inFile, true) -->
1577  //! </part>
1578  //! \endcode
1579  Dtk_status Dump(FILE * inFile);
1580 
1581  //! \brief Returns the fix part name
1583  //! \brief Sets the fix part name
1584  //! \param inName fix part name
1585  void setName(Dtk_string inName);
1586  //! \brief Retrun the fix part id
1587  int getId();
1588  //! \brief Sets the fix part id
1589  //! \param inId fix part id
1590  void setId(int inId);
1591  //! \brief Returns the constraint associated to the fixed part
1593  //! \brief Sets the constraint associated to the fixed part
1594  //! \param inConstraint fix part constraint
1596  //! \brief Returns the part fixed
1598  //! \brief Sets the part fixed
1599  //! \param inPart Part to be fixed
1600  void setPart(Dtk_KinPartPtr inPart);
1601 private:
1602 protected:
1604  int _ID;
1605  //! \brief This constraint is defined into the kinematic constraint table.
1607  //! \brief This part is defined into the kinematic part table.
1609 };
1610 
1611 //! \ingroup KinClasses
1612 //! \class Dtk_KinMechanism
1613 //! \brief Dtk_KinMechanism represents a kinematic mechanism
1614 //!
1615 //! A mechanism is linked at a kinematic object.
1616 //! \SmartPtr{Dtk_KinMechanismPtr}
1618 {
1619  friend class Dtk_Kinematic;
1620 
1621  protected:
1622  // struct Dtk_Handle; // Not defined here
1623  // Dtk_Handle *_Private; // Handle
1624  enum {
1626  };
1627 
1628  //! \brief Default constructor
1630  //! \brief Copy constructor
1631  //! \param mecha the Dtk_KinMechanism to be copied
1633 
1634  //! \brief Destructor
1636  friend class Dtk_SmartPtr<Dtk_KinMechanism>;
1637 
1638  private:
1639  void _Init();
1640  void _Copy(const Dtk_KinMechanism &kin);
1641  void _Reset();
1642 
1643  public:
1644 
1645  //! \DtkDynamicType
1647  {
1648  if (inId == _typeID)
1649  {
1650  return 1;
1651  }
1652  return Dtk_Object::DtkDynamicType(inId);
1653  }
1654 
1655  //! \DtkDynamicCast
1657  {
1658  if(s->DtkDynamicType(_typeID))
1659  return static_cast<Dtk_KinMechanism*>(s);
1660  return NULL;
1661  }
1662 
1663  //! \return The type of the entity type - DTK_TYPE_KIN_MECHANISM -
1665 
1666  //! \CreateBase
1668 
1670 
1671 
1672 public:
1673 
1674  //! \brief Delete object
1676 
1677  //! \brief Write Dump file for mechanism
1678  //! \param inFile the output file
1679  //!
1680  //! \b Sample
1681  //! \code
1682  //! Dtk_string fileName = ...;
1683  //! File * file = fileName.OpenFile(DTK_W);
1684  //!
1685  //! Dtk_KinMechanism mechanism;
1686  //! mechanism.setName(Dtk_string("sample mechanism"));
1687  //! mechanism.setId(1);
1688  //! mechanism.Dump(file);
1689  //! \endcode
1690  //!
1691  //! \b Result
1692  //! \code
1693  //! <mechanism name="sample mechanism" id="1" version="">
1694  //! <parts>
1695  //! <!-- Parts associated at mechanism -->
1696  //! <!-- part.Dump(inFile, true) -->
1697  //! </parts>
1698  //! <commands>
1699  //! <!-- Commands associated at mechanism -->
1700  //! <!-- commands.Dump(inFile, true) -->
1701  //! </commands>
1702  //! <!-- specfix.Dump(inFile) -->
1703  //! <paramTime>
1704  //! <!-- paramTime.Dump(inFile) -->
1705  //! </paramTime>
1706  //! <laws>
1707  //! <!-- law.Dump(inFile) -->
1708  //! </laws>
1709  //! </mechanism>
1710  //! \endcode
1711  Dtk_status Dump(FILE * inFile);
1712 
1713  //! \brief Test if 2 Dtk_KinMechanism is equal
1714  //!
1715  //! Compare the id attributes.
1716  //! \param inMechanism Dtk_KinMechanism to be tested
1718  //! \brief Test if 2 Dtk_KinMechanism is equal
1719  //!
1720  //! Compare the id attributes.
1721  //! \param inMechanism Dtk_KinMechanism to be tested
1723 
1724  //! \brief Returns the mechanism name
1726  //! \brief Sets the mechanism name
1727  //! \param inName mechanism name
1728  void setName(Dtk_string inName);
1729  //! \brief Returns the mechanism id
1730  int getId();
1731  //! \brief Sets the mechanism id
1732  //! \param inId mechanism id
1733  void setId(int inId);
1734  //! \brief Returns the mechanism version
1736  //! \brief Sets the mechanism version
1737  //! \param inVersion mechanism version
1738  void setVersion(Dtk_string inVersion);
1739  //! \brief Test if the joint belong at joint table
1740  //! \param inJoint joint to be tested
1742  //! \brief Add a joint at the joint table
1743  //! \param inJoint joint to be added
1744  void addJoint(Dtk_KinJointPtr inJoint);
1745  //! \brief Returns Dtk_KinJoint at position inPos.
1746  //! \param inPos position of element
1747  //!
1748  //! If position is out bounds, returns NULL
1750  //! \brief Return the attribute tab size
1752  //! \brief Test if the command belong at command table
1753  //! \param inCmd command to be tested
1755  //! \brief Add a command at the command table
1756  //! \param inCmd command to be added
1758  //! \brief Returns Dtk_KinCommand at position inPos.
1759  //! \param inPos position of element
1760  //!
1761  //! If position is out bounds, returns \code NULL \endcode
1763  //! \brief Return the attribute tab size
1765  //! \brief Returns the fix part object
1767  //! \brief Sets the fix part
1768  //! \param inSpecfix fix part
1770  //! \brief Returns the time parameter
1772  //! \brief Sets the time parameter
1773  //! \param inParam time parameter
1775  //! \brief Test if the law belong at law table
1776  //! \param inLaw law to be tested
1778  //! \brief Add inLaw at the law table
1779  //! \param inLaw law to be added
1780  //!
1781  //! If the law table doesn't contain inLaw, inLaw is added
1782  void addLaw(Dtk_KinLawPtr inLaw);
1783  //! \brief Returns Dtk_KinLaw at position inPos
1784  //! \param inPos position of element
1785  //!
1786  //! If position is out bounds Returns NULL
1788  //! \brief Return the attribute tab size
1791 
1792  //! \brief Test if the speed/acceleration belong at speed/acceleration table
1793  //! \param inSpeed speed/acceleration to be tested
1795  //! \brief Add inSpeed at the speed/acceleration at the speed/acceleration table
1796  //! \param inSpeed speed/acceleration to be added
1798  //! \brief Returns Dtk_KinSpeedAcceleration at position inPos
1799  //! \param inPos position of element
1800  //!
1801  //! If position is out bounds returns NULL
1803  //! \brief Return the attribute tab size
1805 private:
1806  int _compteur;
1807 protected:
1809  int _ID;
1811  //! \brief All joints are defined into the kinematic joint table.
1813  //! \brief All commands are defined into the kinematic command table.
1819 };
1820 
1821 
1822 
1823 //! \ingroup KinClasses
1824 //! \class Dtk_Kinematic
1825 //! \brief Dtk_Kinematic represents a kinematic
1826 //! \SmartPtr{Dtk_KinematicPtr}
1828 {
1829 
1830 protected:
1831  // struct Dtk_Handle; // Not defined here
1832  // Dtk_Handle *_Private; // Handle
1833  enum {
1835  };
1836 
1837  //! \brief Default constructor of a generic Kinematics
1838  //! \param [in/out]
1839  //! \param [out]
1840  //! \return Allocated generic Kinematics
1841  //! \remark
1843 
1844 
1845  //! \brief Copy constructor
1846  //! \param mecha the Dtk_Kinematic to be copied
1847  Dtk_Kinematic(const Dtk_Kinematic& kinematics);
1848 
1849  //! \brief Default destructor of a generic Kinematics
1850  //! \param [in/out]
1851  //! \param [out]
1852  //! \return Free generic Kinematics
1854  inline virtual Dtk_Object* Clone() { return new Dtk_Kinematic(*this); }
1855  friend class Dtk_SmartPtr<Dtk_Kinematic>;
1856 
1857 private:
1858  void _Init();
1859  void _Copy(const Dtk_Kinematic &kin);
1860  void _Reset();
1861 
1862 public:
1863 
1864  //! \DtkDynamicType
1866  {
1867  if (inId == _typeID)
1868  {
1869  return 1;
1870  }
1871  return Dtk_Entity::DtkDynamicType(inId);
1872  }
1873 
1874  //! \DtkDynamicCast
1876  {
1877  if(s->DtkDynamicType(_typeID))
1878  return static_cast<Dtk_Kinematic*>(s);
1879  return NULL;
1880  }
1881 
1882  //! \return The type of the entity type - DTK_TYPE_KINEMATIC -
1884 
1885  //! \CreateBase
1887 
1889 
1890 
1891  //! \brief Delete object
1893 
1894  //! \brief Write Dump file for kinematic
1895  //! \param inFile the output file
1896  //!
1897  //! \b Sample
1898  //! \code
1899  //! Dtk_string fileName = ...;
1900  //! File * file = fileName.OpenFile(DTK_W);
1901  //!
1902  //! Dtk_Kinematic kinematic;
1903  //! ...
1904  //! kinematic.Dump(file);
1905  //! \endcode
1906  //!
1907  //! \b Result
1908  //! \code
1909  //! <kinematics name="sample kinematic" id="5_1">
1910  //! <parts>
1911  //! <!-- Parts associated at kinematic -->
1912  //! <!-- part.Dump(inFile, false) -->
1913  //! </parts>
1914  //! <constraints>
1915  //! <!-- Constraints associated at kinematic -->
1916  //! <!-- constraint.Dump(inFile, false) -->
1917  //! </constraints>
1918  //! <joints>
1919  //! <!-- Joints associated at kinematic -->
1920  //! <!-- joint.Dump(inFile, false) -->
1921  //! </joints>
1922  //! <commands>
1923  //! <!-- Commands associated at kinematic -->
1924  //! <!-- command.Dump(inFile, false) -->
1925  //! </commands>
1926  //! <mechanisms>
1927  //! <!-- Mechanisms associated at kinematic -->
1928  //! <!-- mechanism.Dump(inFile) -->
1929  //! </Mechanisms>
1930  //! </kinematics>
1931  //! \endcode
1932  Dtk_status Dump(FILE * inFile, Dtk_bool initXml = 1);
1933 
1934  //! \brief Test if a part belong at the part table
1935  //! \param inPart Part to be tested
1937  //! \brief Returns the position of the part
1938  //! \param inPart Part required
1939  //!
1940  //! Returns -1 if the part doesn't found
1942  //! \brief Returns the position of the part that have the same numChild attribut
1943  //! \param inPart Part required
1944  //!
1945  //! Returns -1 if the part doesn't found
1947  //! \brief Returns the part by it numChild attribute
1949  //! \brief Returns Dtk_KinPart at position inPos
1950  //! \param inPos position of element
1951  //!
1952  //! If position is out bounds returns NULL
1954  //! \brief Adds inPart at the part table
1955  //! \param inPart part to be added
1956  //!
1957  //! If the part table doesn't contain inPart, inPart is added
1958  void addPart(Dtk_KinPartPtr inPart);
1959  //! \brief Returns the part tab size
1961  //! \brief Returns the part by it instanceName attribute
1963 
1964  //! \brief Test if a constraint belong at the constraint table
1965  //! \param inConstraint Constraint to be tested
1967  //! \brief Returns the position of the constraint
1968  //! \param inConstraint Constraint required
1969  //!
1970  //! Returns -1 if the constraint doesn't found
1972  //! \brief Returns Dtk_KinConstraint at position inPos
1973  //! \param inPos position of element
1974  //!
1975  //! If position is out bounds returns \code NULL \endcode
1977  //! \brief Add inConstraint at the constraint table
1978  //! \param inConstraint constraint to be added
1979  //!
1980  //! If the constraint table doesn't contain inConstraint, inConstraint is added
1982  //! \brief Return the attribute tab size
1984 
1985  //! \brief Test if a joint belong at the joint table
1986  //! \param inJoint Joint to be tested
1988  //! \brief Returns the position of the joint
1989  //! \param inJoint Joint required
1990  //!
1991  //! Returns -1 if the joint doesn't found
1993  //! \brief Returns Dtk_KinJoint at position inPos
1994  //! \param inPos position of element
1995  //!
1996  //! If position is out bounds returns \code NULL \endcode
1998  //! \brief Add inJoint at the joint table
1999  //! \param inJoint joint to be added
2000  //!
2001  //! If the joint table doesn't contain inJoint, inJoint is added
2002  void addJoint(Dtk_KinJointPtr inJoint);
2003  //! \brief Return the attribute tab size
2005 
2006  //! \brief Test if a command belong at the command table
2007  //! \param inCommand command to be tested
2009  //! \brief Returns the position of the command
2010  //! \param inCommand command required
2011  //!
2012  //! Returns -1 if the command doesn't found
2014  //! \brief Returns Dtk_KinCommand at position inPos
2015  //! \param inPos position of element
2016  //!
2017  //! If position is out bounds returns NULL
2019  //! \brief Add inCommand at the command table
2020  //! \param inCommand command to be added
2021  //!
2022  //! If the command table doesn't contain inCommand, inCommand is added
2024  //! \brief Return the attribute tab size
2026 
2027  //! \brief Test if a mechanism belong at the mechanism table
2028  //! \param inMechanism mechanism to be tested
2030  //! \brief Returns the position of the mechanism
2031  //! \param inMecha Mechanism required
2032  //!
2033  //! Returns -1 if the mechanism doesn't found
2035  //! \brief Returns Dtk_KinMechanism at position inPos
2036  //! \param inPos position of element
2037  //!
2038  //! If position is out bounds returns \code NULL \endcode
2040  //! \brief Add inMechanism at the mechanism table
2041  //! \param inMechanism mechanism to be added
2042  //!
2043  //! If the mechanism table doesn't contain inMechanism, inMechanism is added
2045  //! \brief Return the mechanism tab size
2047  //! \brief Returns the mechanism associated at command inCommand
2049  //! \brief Returns the mechanism associated at joint inJoint
2051  //! \brief Returns the mechanism associated at speed/acceleration inSpeed
2053 
2054  //! \brief Test if a parameter belong at the parameter table
2055  //! \param inParameter parameter to be tested
2057  //! \brief Returns the position of the parameter
2058  //! \param inPara Parameter required
2059  //!
2060  //! Returns -1 if the parameter doesn't found
2062  //! \brief Returns Dtk_KinParameter at position inPos
2063  //! \param inPos position of element
2064  //!
2065  //! If position is out bounds returns \code NULL \endcode
2067  //! \brief Add inParameter at the parameter table
2068  //! \param inParameter parameter to be added
2069  //!
2070  //! If the parameter table doesn't contain inParameter, inParameter is added
2072  //! \brief Return the parameter tab size
2074 
2075  //! \brief Sets the product object represented all element compound the CATProduct file
2077 
2078  //! \brief Sets the product object represented all element compound the CATProduct file
2080 
2081 protected:
2082  //! \brief All parts referenced into another object, are defined at this table.
2084  //! \brief All constraints referenced into another object, are defined at this table.
2086  //! \brief All joints referenced into another object, are defined at this table.
2088  //! \brief All commands referenced into another object, are defined at this table.
2090  //! \brief All mechanisms defined a kinematic
2092  //! \brief Parameter can be used for law
2094 
2095  //! \brief Tree representation for the component (additional of part table)
2097 
2098 };
2099 
2100 
2101 //! \ingroup KinClasses
2102 //! \class Dtk_KinFormula
2103 //! \brief Dtk_KinFormula represents the formula defined the law.
2104 //!
2105 //! A formula is linked at a law object.
2106 //! \SmartPtr{Dtk_KinFormulaPtr}
2108 {
2109 
2110  protected:
2111  // struct Dtk_Handle; // Not defined here
2112  // Dtk_Handle *_Private; // Handle
2113  enum {
2115  };
2116 
2117  //! \brief Default constructor
2119  //! \brief Copy constructor
2120  //! \param inFormula the Dtk_KinFormula to be copied
2121  Dtk_KinFormula(const Dtk_KinFormula & inFormula);
2122 
2123  //! \brief Destructor
2125 
2126  friend class Dtk_SmartPtr<Dtk_KinFormula>;
2127 
2128  private:
2129  void _Init();
2130  void _Copy(const Dtk_KinFormula &kin);
2131  void _Reset();
2132 
2133  public:
2134 
2135  //! \DtkDynamicType
2137  {
2138  if (inId == _typeID)
2139  {
2140  return 1;
2141  }
2142  return Dtk_Object::DtkDynamicType(inId);
2143  }
2144 
2145  //! \DtkDynamicCast
2147  {
2148  if(s->DtkDynamicType(_typeID))
2149  return static_cast<Dtk_KinFormula*>(s);
2150  return NULL;
2151  }
2152 
2153  //! \return The type of the entity type - DTK_TYPE_KIN_FORMULA -
2155 
2156  //! \CreateBase
2158 
2160 
2161 public:
2162 
2163  //! \brief Delete object
2165 
2166  //! \brief Write Dump file for formula
2167  //! \param inFile the output file
2168  //!
2169  //! \b Sample
2170  //! \code
2171  //! Dtk_string fileName = ...;
2172  //! File * file = fileName.OpenFile(DTK_W);
2173  //!
2174  //! Dtk_KinFormula formula;
2175  //! formula.setName(Dtk_string("sample formula"));
2176  //! formula.setId(1);
2177  //! formula.Dump(file);
2178  //! \endcode
2179  //!
2180  //! \b Result
2181  //! \code
2182  //! <formula name="sample formula" id="1">
2183  //! <attributFormula comment="" formula="" parameter=""/>
2184  //! </formula>
2185  //! \endcode
2186  Dtk_status Dump(FILE * inFile);
2187 
2188  //! \brief Returns the formula name
2190  //! \brief Sets the formula name
2191  //! \param inName formula name
2192  void setName(Dtk_string inName);
2193  //! \brief Returns the formula id
2194  int getId();
2195  //! \brief Sets the formula id
2196  //! \param inId formula id
2197  void setId(int inId);
2198  //! \brief Returns the formula comment
2200  //! \brief Sets the formula comment
2201  //! \param inComment formula comment
2202  void setComment(Dtk_string inComment);
2203  //! \brief Returns the formula
2205  //! \brief Sets the formula
2206  //! \param inFormula formula
2207  void setFormula(Dtk_string inFormula);
2208  //! \brief Returns the formula parameter
2210  //! \brief Sets the formula parameter
2211  //! \param inParam formula parameter
2212  void setParam(Dtk_string inParam);
2213 protected:
2215  int _ID;
2216 
2220 private:
2221 };
2222 
2223 //! \ingroup KinClasses
2224 //! \class Dtk_KinCurve
2225 //! \brief Dtk_KinCurve represents a curve associated at a law.
2226 class Dtk_KinCurve : public Dtk_Object
2227 {
2228  protected:
2229  // struct Dtk_Handle; // Not defined here
2230  // Dtk_Handle *_Private; // Handle
2231  enum {
2233  };
2234 
2235  //! \brief Default constructor
2237  //! \brief Copy constructor
2238  //! \param part the Dtk_KinSpeedAcceleration to be copied
2239  Dtk_KinCurve(const Dtk_KinCurve & inSketch);
2240 
2241  //! \brief Destructor
2243 
2244  friend class Dtk_SmartPtr<Dtk_KinCurve>;
2245 
2246  private:
2247  void _Init();
2248  void _Copy(const Dtk_KinCurve &kin);
2249  void _Reset();
2250 
2251  public:
2252 
2253  //! \DtkDynamicType
2255  {
2256  if (inId == _typeID)
2257  {
2258  return 1;
2259  }
2260  return Dtk_Object::DtkDynamicType(inId);
2261  }
2262 
2263  //! \DtkDynamicCast
2265  {
2266  if(s->DtkDynamicType(_typeID))
2267  return static_cast<Dtk_KinCurve*>(s);
2268  return NULL;
2269  }
2270 
2271  //! \return The type of the entity type - DTK_TYPE_KIN_CURVE -
2273 
2274  //! \CreateBase
2276 
2278 
2279 public:
2280 
2281  //! \brief Delete object
2283 
2284  //! \brief Write Dump file for mechanism speed/acceleration
2285  //! \param inFile the output file
2286  //!
2287  //! \b Sample
2288  //! \code
2289  //! Dtk_string fileName = ...;
2290  //! File * file = fileName.OpenFile(DTK_W);
2291  //!
2292  //! Dtk_KinSpeedAcceleration speedAcc;
2293  //! speedAcc.setName(Dtk_string("sample speed/acceleration"));
2294  //! speedAcc.setId(1);
2295  //! speedAcc.setIdFile(5);
2296  //! speedAcc.Dump(file, true);
2297  //! \endcode
2298  //!
2299  //! \b Result
2300  //! \code
2301  //! \endcode
2302  Dtk_status Dump(FILE * inFile);
2303 
2304  //! \brief Returns the file name associated at the curve
2306  //! \brief Sets the file name associated at the curve
2307  void setFileName(const Dtk_string & inFileName);
2308  //! \brief Returns the block id
2309  int getIdBlock();
2310  //! \brief Sets the block id
2311  void setIdBlock(int inId);
2312  //! \brief Returns the entity and this type at position inPos
2313  //! \param inPos position of element
2314  //! \param outEntity An out parameter
2315  //! \param outType An out parameter
2316  //!
2317  //! If position is out bounds returns NULL
2318  void getEntity(Dtk_Size_t inPos, void ** outEntity, enum type_detk * outType);
2319  //! \brief Add an entity and this type at the entity table
2320  //! \param inEntity Entity to be added
2321  //! \param inType Entity type
2322  void addEntity(void * inEntity, enum type_detk inType);
2323  //! \brief Return the size of the entity tab
2325 protected:
2330 private:
2331 };
2332 
2333 
2334 
2335 //! \ingroup KinClasses
2336 //! \class Dtk_KinLaw
2337 //! \brief Dtk_KinLaw represents a law associated at a command.
2338 //!
2339 //! A law is linked at a mechanism object.
2340 //! \SmartPtr{Dtk_KinLawPtr}
2341 class Dtk_KinLaw : public Dtk_Object
2342 {
2343  protected:
2344  // struct Dtk_Handle; // Not defined here
2345  // Dtk_Handle *_Private; // Handle
2346  enum {
2348  };
2349 
2350  //! \brief Default constructor
2352  //! \brief Copy constructor
2353  //! \param inLaw the Dtk_KinLaw to be copied
2354  Dtk_KinLaw(const Dtk_KinLaw& inLaw);
2355 
2356  //! \brief Destructor
2358 
2359  friend class Dtk_SmartPtr<Dtk_KinLaw>;
2360 
2361  private:
2362  void _Init();
2363  void _Copy(const Dtk_KinLaw &kin);
2364  void _Reset();
2365 
2366  public:
2367 
2368  //! \DtkDynamicType
2370  {
2371  if (inId == _typeID)
2372  {
2373  return 1;
2374  }
2375  return Dtk_Object::DtkDynamicType(inId);
2376  }
2377 
2378  //! \DtkDynamicCast
2380  {
2381  if(s->DtkDynamicType(_typeID))
2382  return static_cast<Dtk_KinLaw*>(s);
2383  return NULL;
2384  }
2385 
2386  //! \return The type of the entity type - DTK_TYPE_KIN_LAW -
2388 
2389  //! \CreateBase
2391 
2393 
2394 public:
2395 
2396  //! \brief Delete object
2398 
2399  //! \brief Write Dump file for law
2400  //! \param inFile the output file
2401  //!
2402  //! \b Sample
2403  //! \code
2404  //! Dtk_string fileName = ...;
2405  //! File * file = fileName.OpenFile(DTK_W);
2406  //!
2407  //! Dtk_KinLaw law;
2408  //! law.setName(Dtk_string("sample law"));
2409  //! law.setId(1);
2410  //! law.Dump(file, true);
2411  //! \endcode
2412  //!
2413  //! \b Result
2414  //! \code
2415  //! <law name="sample law" id="1">
2416  //! <attributLaw comment="" synchrone="" active="" algo=""/>
2417  //! <!-- formula.Dump(inFile) -->
2418  //! <parameters>
2419  //! <!-- parameter.Dump(inFile) -->
2420  //! </parameters>
2421  //! </law>
2422  //! \endcode
2423  Dtk_status Dump(FILE * inFile);
2424 
2425  //! \brief Test if 2 Dtk_KinLaw is equal
2426  //!
2427  //! Compare the id attributes.
2428  //! \param inPart Dtk_KinLaw to be tested
2430 
2431  //! \brief Returns the law name
2433  //! \brief Sets the law name
2434  //! \param inName law name
2435  void setName(Dtk_string inName);
2436  //! \brief Returns the law id
2437  int getId();
2438  //! \brief Sets the law id
2439  //! \param inId law id
2440  void setId(int inId);
2441  //! \brief Returns the law comment
2443  //! \brief Sets the law comment
2444  //! \param inComment law comment
2445  void setComment(Dtk_string inComment);
2446  //! \brief Returns the synchrone attribute
2448  //! \brief Sets the synchrone attribute
2449  //! \param inSynchrone synchrone attribute
2450  void setSynchrone(int inSynchrone);
2451  //! \brief Returns the law expression (formula)
2453  //! \brief Sets the formula
2454  //! \param inExpression formula
2455  void setExpression(Dtk_KinFormulaPtr inExpression);
2456 
2457  //! \brief Add a curve at the parameter in
2458  //! \param inCurve Curve to be added
2459  void addCurve(Dtk_KinCurvePtr inCurve);
2460  //! \brief Returns the curve at the position inPos
2461  //! \param inPos position of element
2462  //!
2463  //! If position is out bounds returns NULL
2465  //! \brief Return the size of the curve tab
2467 
2468  //! \brief Add a paramater at the parameter table
2469  //! \param param Parameter to be added
2471  //! \brief Returns the parameter table
2472  //! The last is the out parameter
2474  //! \brief Sets the parameter table
2475  //! \param inParamOut parameter table
2477  //! \brief Returns the active attribute
2478  int getActive();
2479  //! \brief Sets the active attribute
2480  //! \param inActive active attribute
2481  void setActive(int inActive);
2482 
2483  void setAlgo(int inAlgo);
2484  int getAlgo();
2485 protected:
2487  int _ID;
2488 
2492 
2493  // paramIn (courbe)
2495 
2497  //! value:
2498  //! - 1: deactivate
2499  //! - 2: activate
2500  int _active;
2501 
2502  int _algo;
2503 private:
2504 };
2505 
2506 //! \ingroup KinClasses
2507 //! \class Dtk_KinSpeedAcceleration
2508 //! \brief Dtk_KinSpeedAcceleration represents a mechanism speed/acceleration
2509 //! \SmartPtr{Dtk_KinSpeedAccelerationPtr}
2511 {
2512  protected:
2513  // struct Dtk_Handle; // Not defined here
2514  // Dtk_Handle *_Private; // Handle
2515  enum {
2517  };
2518 
2519  //! \brief Default constructor
2521  //! \brief Copy constructor
2522  //! \param inSpeedAcceleration the Dtk_KinSpeedAcceleration to be copied
2524 
2525  //! \brief Destructor
2527 
2528  friend class Dtk_SmartPtr<Dtk_KinSpeedAcceleration>;
2529  private:
2530  void _Init();
2531  void _Copy(const Dtk_KinSpeedAcceleration &kin);
2532  void _Reset();
2533 
2534  public:
2535 
2536  //! \DtkDynamicType
2538  {
2539  if (inId == _typeID)
2540  {
2541  return 1;
2542  }
2543  return Dtk_Object::DtkDynamicType(inId);
2544  }
2545 
2546  //! \DtkDynamicCast
2548  {
2549  if(s->DtkDynamicType(_typeID))
2550  return static_cast<Dtk_KinSpeedAcceleration*>(s);
2551  return NULL;
2552  }
2553 
2554  //! \return The type of the entity type - DTK_TYPE_KIN_SPEEDACCELERATION -
2556 
2557  //! \CreateBase
2559 
2561 
2562 public:
2563 
2564  //! \brief Delete object
2566 
2567  //! \brief Write Dump file for mechanism speed/acceleration
2568  //! \param inFile the output file
2569  //!
2570  //! \b Sample
2571  //! \code
2572  //! Dtk_string fileName = ...;
2573  //! File * file = fileName.OpenFile(DTK_W);
2574  //!
2575  //! Dtk_KinSpeedAcceleration speedAcc;
2576  //! speedAcc.setName(Dtk_string("sample speed/acceleration"));
2577  //! speedAcc.setId(1);
2578  //! speedAcc.Dump(file, true);
2579  //! \endcode
2580  Dtk_status Dump(FILE * inFile);
2581 
2582  //! \brief Test if 2 Dtk_KinSpeedAcceleration is equal
2583  //! \param inPart Dtk_KinSpeedAcceleration to be tested
2585  //! \brief Test if 2 Dtk_KinSpeedAcceleration is equal
2586  //! \param inPart Dtk_KinSpeedAcceleration to be tested
2588 
2589  //! \brief Returns the name of speed/acceleration
2591  //! \brief Sets the name of speed/acceleration
2592  //! \param inName name of speed/acceleration
2593  void setName(Dtk_string inName);
2594  //! \brief Returns the id of speed/acceleration
2595  int getId();
2596  //! \brief Sets the id of speed/acceleration
2597  //! \param inId id of speed/acceleration
2598  void setId(int inId);
2599 
2600  //! \brief Returns the reference production part
2602  //! \brief Sets the reference production part
2603  //! \param inPart reference production
2607 
2608  //! \brief Returns the point X
2610  //! \brief Sets the point X
2611  //! \param inParam point X
2613  //! \brief Returns the point Y
2615  //! \brief Sets the point Y
2616  //! \param inParam point Y
2618  //! \brief Returns the point Z
2620  //! \brief Sets the point Z
2621  //! \param inParam point Z
2623 
2624  //! \brief Returns the linear speed for X axis
2626  //! \brief Sets the linear speed for X axis
2627  //! \param inParam linear speed
2629  //! \brief Returns the linear speed for Y axis
2631  //! \brief Sets the linear speed for Y axis
2632  //! \param inParam linear speed
2634  //! \brief Returns the linear speed for Z axis
2636  //! \brief Sets the linear speed for Z axis
2637  //! \param inParam linear speed
2639  //! \brief Returns the linear speed
2641  //! \brief Sets the linear speed
2642  //! \param inParam linear speed
2644 
2645  //! \brief Returns the linear acceleration for X axis
2647  //! \brief Sets the linear acceleration for X axis
2648  //! \param inParam the linear acceleration
2650  //! \brief Returns the linear acceleration for Y axis
2652  //! \brief Sets the linear acceleration for Y axis
2653  //! \param inParam the linear acceleration
2655  //! \brief Returns the linear acceleration for Z axis
2657  //! \brief Sets the linear acceleration for Z axis
2658  //! \param inParam the linear acceleration
2660  //! \brief Returns the linear acceleration
2662  //! \brief Sets the linear acceleration
2663  //! \param inParam the linear acceleration
2665 
2666  //! \brief Returns the angular speed for X angle
2668  //! \brief Sets the angular speed for X angle
2669  //! \param inParam angular speed
2671  //! \brief Returns the angular speed for Y angle
2673  //! \brief Sets the angular speed for Y angle
2674  //! \param inParam angular speed
2676  //! \brief Returns the angular speed for Z angle
2678  //! \brief Sets the angular speed for Z angle
2679  //! \param inParam angular speed
2681  //! \brief Returns the angular speed
2683  //! \brief Sets the angular speed
2684  //! \param inParam angular speed
2686 
2687  //! \brief Returns the angular acceleration for X angle
2689  //! \brief Sets the angular acceleration for X angle
2690  //! \param inParam the angular acceleration
2692  //! \brief Returns the angular acceleration for Y angle
2694  //! \brief Sets the angular acceleration for Y angle
2695  //! \param inParam the angular acceleration
2697  //! \brief Returns the angular acceleration for Z angle
2699  //! \brief Sets the angular acceleration for Z angle
2700  //! \param inParam the angular acceleration
2702  //! \brief Returns the angular acceleration
2704  //! \brief Sets the angular acceleration
2705  //! \param inParam the angular acceleration
2707 
2708  //! \brief Returns the Cir X
2710  //! \brief Sets the Cir X
2711  //! \param inParam Cir X
2713  //! \brief Returns the Cir Y
2715  //! \brief Sets the Cir Y
2716  //! \param inParam Cir Y
2718  //! \brief Returns the Cir Z
2720  //! \brief Sets the Cir Z
2721  //! \param inParam Cir Z
2723 private:
2724 protected:
2726  int _ID;
2729  Dtk_KinConnectorPtr _point; // -> connector
2730  // attribut axis ref vers un catpart
2731 
2732  //! \brief Point
2733  //!
2734  //! Position
2735  //! - 0: x
2736  //! - 1: y
2737  //! - 2: z
2739  //! \brief Linear speed
2740  //!
2741  //! Position
2742  //! - 0: x
2743  //! - 1: y
2744  //! - 2: z
2745  //! - 3: general
2747  //! \brief linear acceleration
2748  //!
2749  //! Position
2750  //! - 0: x
2751  //! - 1: y
2752  //! - 2: z
2753  //! - 3: general
2755  //! \brief Angular speed
2756  //!
2757  //! Position
2758  //! - 0: x
2759  //! - 1: y
2760  //! - 2: z
2761  //! - 3: general
2763  //! \brief Angular acceleration
2764  //!
2765  //! Position
2766  //! - 0: x
2767  //! - 1: y
2768  //! - 2: z
2769  //! - 3: general
2771  //! \brief Cir
2772  //!
2773  //! Position
2774  //! - 0: x
2775  //! - 1: y
2776  //! - 2: z
2778 };
2779 
2780 #endif
KIN_CMD_ANGLE_JOINT1
@ KIN_CMD_ANGLE_JOINT1
Definition: util_kinematics_dtk.hpp:144
Dtk_KinCommand::isEqual
Dtk_bool isEqual(Dtk_KinCommandPtr inCommand)
Test if 2 Dtk_KinCommand are equal.
Dtk_KinLaw
Dtk_KinLaw represents a law associated at a command.
Definition: util_kinematics_dtk.hpp:2342
Dtk_KinFixPart::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinCommand::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:1370
Dtk_KinJoint::getName
Dtk_string getName()
Returns the joint name.
Dtk_KinJoint::getConstraint
Dtk_KinConstraintPtr getConstraint(Dtk_Size_t inPosition)
Returns Constraint at position inPosition.
Dtk_KinCurve::getEntity
void getEntity(Dtk_Size_t inPos, void **outEntity, enum type_detk *outType)
Returns the entity and this type at position inPos.
DTK_TYPE_KIN_JOINT
@ DTK_TYPE_KIN_JOINT
Definition: define.h:541
Dtk_Kinematic::getMechanismBySpeedAcceleration
Dtk_KinMechanismPtr getMechanismBySpeedAcceleration(Dtk_KinSpeedAccelerationPtr inSpeed)
Returns the mechanism associated at speed/acceleration inSpeed.
Dtk_KinCurve::setFileName
void setFileName(const Dtk_string &inFileName)
Sets the file name associated at the curve.
Dtk_KinFormula::getComment
Dtk_string getComment()
Returns the formula comment.
Dtk_SetKinematics
void Dtk_SetKinematics(Dtk_KinematicPtr inKinematic)
Set the kinematic object.
Dtk_KinConstraint::hasAttribute
Dtk_bool hasAttribute(Dtk_string inAttributeName)
Test if an attribute name belong at the attribute table.
Dtk_KinJoint::~Dtk_KinJoint
~Dtk_KinJoint()
Destructor.
Dtk_KinJoint::setJoint1
void setJoint1(Dtk_KinJointPtr inJoint)
Sets the first joint associated at the joint.
Dtk_KinJoint::_FIX_TOGETHER
Dtk_string _FIX_TOGETHER
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:934
Dtk_KinMechanism::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:1646
Dtk_KinParameter::getParentType
DTK_KINEMATIC_TYPE getParentType()
Returns the node parent type of this parameter (joint, command or mechanism)
Dtk_KinProductTab
Dtk_tab< Dtk_KinProductPtr > Dtk_KinProductTab
Definition: util_kinematics_dtk.hpp:94
Dtk_KinMechanism::_fixPart
Dtk_KinFixPartPtr _fixPart
Definition: util_kinematics_dtk.hpp:1815
Dtk_KinParameter::_ID
int _ID
Definition: util_kinematics_dtk.hpp:443
Dtk_KinParameter::getAttribute
Dtk_string getAttribute(Dtk_Size_t inPosition)
Returns Dtk_string at position inPosition.
DTK_TYPE_KIN_MECHANISM
@ DTK_TYPE_KIN_MECHANISM
Definition: define.h:538
Dtk_KinProduct::getNbProduct
Dtk_Size_t getNbProduct()
Returns the part by it numChild attribute.
Dtk_KinFormula::setComment
void setComment(Dtk_string inComment)
Sets the formula comment.
Dtk_Kinematic::Dump
Dtk_status Dump(FILE *inFile, Dtk_bool initXml=1)
Write Dump file for kinematic.
Dtk_KinConstraint::addConnector
void addConnector(Dtk_KinConnectorPtr inConnector)
Add a connector at the connector table.
DTK_SLIDE_CURVE
@ DTK_SLIDE_CURVE
Definition: util_kinematics_dtk.hpp:125
Dtk_KinMechanismTab
Dtk_tab< Dtk_KinMechanismPtr > Dtk_KinMechanismTab
Definition: util_kinematics_dtk.hpp:87
Dtk_KinLaw::_synchrone
int _synchrone
Definition: util_kinematics_dtk.hpp:2490
Dtk_KinJoint::_parameter1
double _parameter1
Optional attribute.
Definition: util_kinematics_dtk.hpp:1296
Dtk_KinProduct::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:505
Dtk_KinSpeedAcceleration::setLinearAccelerationX
void setLinearAccelerationX(Dtk_KinParameterPtr inParam)
Sets the linear acceleration for X axis.
Dtk_KinMechanism::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:1664
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
Dtk_KinCurve::setIdBlock
void setIdBlock(int inId)
Sets the block id.
Dtk_KinSpeedAcceleration::getLinearSpeed
Dtk_KinParameterPtr getLinearSpeed()
Returns the linear speed.
Dtk_KinJoint::setType
void setType(int inType)
Sets the type of the joint.
Dtk_NodeConnector
This is the Dtk_NodeConnector Class. .
Definition: dtk_maindoc.hpp:1083
Dtk_KinJoint::_RATIO_PARAMETER
Dtk_string _RATIO_PARAMETER
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:973
Dtk_KinMechanism::getLawSize
Dtk_Size_t getLawSize()
Return the attribute tab size.
Dtk_KinSpeedAcceleration::setAngularAccelerationZ
void setAngularAccelerationZ(Dtk_KinParameterPtr inParam)
Sets the angular acceleration for Z angle.
Dtk_KinFormula::Dump
Dtk_status Dump(FILE *inFile)
Write Dump file for formula.
Dtk_KinFixPart::_fixcst
Dtk_KinConstraintPtr _fixcst
This constraint is defined into the kinematic constraint table.
Definition: util_kinematics_dtk.hpp:1606
Dtk_KinParameterPtr
Dtk_SmartPtr< Dtk_KinParameter > Dtk_KinParameterPtr
Definition: util_kinematics_dtk.hpp:41
Dtk_KinFormulaPtr
Dtk_SmartPtr< Dtk_KinFormula > Dtk_KinFormulaPtr
Definition: util_kinematics_dtk.hpp:49
Dtk_Kinematic::getParameterPosition
int getParameterPosition(Dtk_KinParameterPtr inPara)
Returns the position of the parameter.
Dtk_KinCurve::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinSpeedAcceleration::~Dtk_KinSpeedAcceleration
~Dtk_KinSpeedAcceleration()
Destructor.
Dtk_KinConstraint::_attributeTable
Dtk_StringTab _attributeTable
Contains the names of the defining optional attributes forced.
Definition: util_kinematics_dtk.hpp:817
Dtk_Kinematic::_parts
Dtk_KinPartTab _parts
All parts referenced into another object, are defined at this table.
Definition: util_kinematics_dtk.hpp:2083
Dtk_KinNamedValue::Create
static Dtk_KinNamedValuePtr Create()
Calls default constructor to allocate a new object.
Dtk_KinMechanism::_ID
int _ID
Definition: util_kinematics_dtk.hpp:1809
Dtk_KinCommand::Dtk_KinCommand
Dtk_KinCommand(const Dtk_KinCommand &cmd)
Copy constructor.
dtk_status.hpp
Dtk_KinLaw::setComment
void setComment(Dtk_string inComment)
Sets the law comment.
Dtk_KinFixPart::Dtk_KinFixPart
Dtk_KinFixPart()
Default constructor.
Dtk_KinJoint
Dtk_KinJoint represents a joint to define a mechanism.
Definition: util_kinematics_dtk.hpp:867
Dtk_KinJoint::getJoint1
Dtk_KinJointPtr getJoint1()
Returns the first joint associated at the joint.
Dtk_KinMechanism::getJointSize
Dtk_Size_t getJointSize()
Return the attribute tab size.
Dtk_KinConstraintTab
Dtk_tab< Dtk_KinConstraintPtr > Dtk_KinConstraintTab
Definition: util_kinematics_dtk.hpp:86
Dtk_KinSpeedAcceleration::_pt
Dtk_KinParameterPtr _pt[3]
Point.
Definition: util_kinematics_dtk.hpp:2738
Dtk_KinCurve::Dtk_KinCurve
Dtk_KinCurve()
Default constructor.
Dtk_KinFormula::Dtk_KinFormula
Dtk_KinFormula()
Default constructor.
Dtk_KinJointPtr
Dtk_SmartPtr< Dtk_KinJoint > Dtk_KinJointPtr
Definition: util_kinematics_dtk.hpp:43
Dtk_KinCurve::~Dtk_KinCurve
~Dtk_KinCurve()
Destructor.
Dtk_KinSpeedAcceleration::setPtZ
void setPtZ(Dtk_KinParameterPtr inParam)
Sets the point Z.
Dtk_KinSpeedAcceleration::setId
void setId(int inId)
Sets the id of speed/acceleration.
Dtk_KinJoint::_LOWER_LIMIT2
Dtk_string _LOWER_LIMIT2
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:952
Dtk_KinConstraint::isEqual
Dtk_bool isEqual(Dtk_KinConstraintPtr inConstraint)
Test if 2 Dtk_KinConstraint is equal.
Dtk_KinParameter::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:319
Dtk_KinProduct::instanceName
Dtk_string & instanceName()
Accessor for the instance name attribute.
Dtk_DeleteKinematics
Dtk_status Dtk_DeleteKinematics()
Delete the kinematic object.
Dtk_Kinematic::getJointSize
Dtk_Size_t getJointSize()
Return the attribute tab size.
Dtk_KinFixPart::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:1509
Dtk_KinMechanism::getJoint
Dtk_KinJointPtr getJoint(Dtk_Size_t inPos)
Returns Dtk_KinJoint at position inPos.
Dtk_KinLaw::getSynchrone
int getSynchrone()
Returns the synchrone attribute.
Dtk_KinConstraint::getAttribute
Dtk_string getAttribute(Dtk_Size_t inPosition)
Returns Dtk_string at position inPosition.
Dtk_KinNamedValue::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:218
Dtk_KinCommand::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinSpeedAcceleration::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinMechanism::_cmdList
Dtk_KinCommandTab _cmdList
All commands are defined into the kinematic command table.
Definition: util_kinematics_dtk.hpp:1814
Dtk_KinLaw::Dtk_KinLaw
Dtk_KinLaw()
Default constructor.
Dtk_KinConstraint::DtkDynamicCast
static Dtk_KinConstraint * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:645
Dtk_KinJoint::setId
void setId(int inId)
Sets the joint id.
Dtk_Kinematic::getParameter
Dtk_KinParameterPtr getParameter(Dtk_Size_t pos)
Returns Dtk_KinParameter at position inPos.
Dtk_KinLaw::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_Kinematic::Dtk_Kinematic
Dtk_Kinematic(const Dtk_Kinematic &kinematics)
Copy constructor.
Dtk_KinParameter::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:442
Dtk_Kinematic::getProduct
Dtk_KinProductPtr getProduct()
Sets the product object represented all element compound the CATProduct file.
Dtk_KinJoint::setAbsolutPos1
void setAbsolutPos1(Dtk_transfo inTransfo)
Sets the absolute position for part 1.
Dtk_KinSpeedAcceleration::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:2537
Dtk_KinJoint::_connectors
Dtk_KinConnectorTab _connectors
Optional attribute. All connectors are defined at the specific part.
Definition: util_kinematics_dtk.hpp:1294
Dtk_KinJoint::getParameter1
double getParameter1()
Returns the first parameter.
Dtk_Kinematic::addCommand
void addCommand(Dtk_KinCommandPtr inCommand)
Add inCommand at the command table.
Dtk_KinSpeedAcceleration::Dtk_KinSpeedAcceleration
Dtk_KinSpeedAcceleration(const Dtk_KinSpeedAcceleration &inSpeedAcceleration)
Copy constructor.
Dtk_Kinematic::~Dtk_Kinematic
~Dtk_Kinematic()
Default destructor of a generic Kinematics.
Dtk_KinFixPart::Dtk_KinFixPart
Dtk_KinFixPart(const Dtk_KinFixPart &fixPart)
Copy constructor.
Dtk_KinJoint::_LOCAL_FRAME3
Dtk_string _LOCAL_FRAME3
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:958
Dtk_KinMechanism::addLaw
void addLaw(Dtk_KinLawPtr inLaw)
Add inLaw at the law table.
Dtk_Kinematic::addMechanism
void addMechanism(Dtk_KinMechanismPtr inMechanism)
Add inMechanism at the mechanism table.
Dtk_KinParameter::getAttributeSize
Dtk_Size_t getAttributeSize()
Return the attribute tab size.
Dtk_KinMechanism::~Dtk_KinMechanism
~Dtk_KinMechanism()
Destructor.
Dtk_KinProduct::Dtk_KinProduct
Dtk_KinProduct(const Dtk_KinProduct &inProd)
Copy constructor.
Dtk_KinMechanism::_mechParamTime
Dtk_KinParameterPtr _mechParamTime
Definition: util_kinematics_dtk.hpp:1816
Dtk_KinJoint::_CONSTRAINT
Dtk_string _CONSTRAINT
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:925
Dtk_KinFixPart::getName
Dtk_string getName()
Returns the fix part name.
Dtk_KinJoint::_PARAMETER1
Dtk_string _PARAMETER1
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:928
Dtk_KinCommand::Create
static Dtk_KinCommandPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinProduct::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:466
Dtk_KinCommand
Dtk_KinCommand represents a command to simulate a mechanism.
Definition: util_kinematics_dtk.hpp:1340
Dtk_KinCommand::~Dtk_KinCommand
~Dtk_KinCommand()
Destructor.
Dtk_KinProduct::getProduct
Dtk_KinProductPtr getProduct(Dtk_Size_t inPos)
Returns the product at position inPos.
Dtk_KinJoint::_part2
Dtk_KinPartPtr _part2
This part is defined at the kinematic part table.
Definition: util_kinematics_dtk.hpp:1278
Dtk_KinProduct::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:577
Dtk_KinParameter::getRange
double getRange(int inPosition)
Get the range value at position inPosition.
Dtk_KinFixPart::getConstraint
Dtk_KinConstraintPtr getConstraint()
Returns the constraint associated to the fixed part.
Dtk_KinCommand::getType
COMMAND_TYPE getType()
Returns the command type.
Dtk_KinCommandPtr
Dtk_SmartPtr< Dtk_KinCommand > Dtk_KinCommandPtr
Definition: util_kinematics_dtk.hpp:42
Dtk_KinParameter::release
static Dtk_KinParameterPtr release(Dtk_KinParameterPtr inParameter)
Delete object.
Dtk_KinSpeedAcceleration::setAngularSpeedX
void setAngularSpeedX(Dtk_KinParameterPtr inParam)
Sets the angular speed for X angle.
Dtk_KinParameter::getId
int getId()
Retrun the parameter id.
Dtk_KinConstraint::_POSITION
Dtk_string _POSITION
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:675
Dtk_KinMechanism::hasSpeedAcceleration
Dtk_bool hasSpeedAcceleration(Dtk_KinSpeedAccelerationPtr inSpeed)
Test if the speed/acceleration belong at speed/acceleration table.
catiav5w::inTransfo
const Dtk_string const Dtk_transfo & inTransfo
Definition: catiav5w.hpp:622
Dtk_KinPartTab
Dtk_tab< Dtk_ComponentPtr > Dtk_KinPartTab
Definition: util_kinematics_dtk.hpp:83
Dtk_KinLawTab
Dtk_tab< Dtk_KinLawPtr > Dtk_KinLawTab
Definition: util_kinematics_dtk.hpp:91
Dtk_KinSpeedAcceleration::setAngularAccelerationX
void setAngularAccelerationX(Dtk_KinParameterPtr inParam)
Sets the angular acceleration for X angle.
Dtk_KinMechanism::setVersion
void setVersion(Dtk_string inVersion)
Sets the mechanism version.
Dtk_KinConstraint::getConnector
Dtk_KinConnectorPtr getConnector(Dtk_Size_t inPosition)
Returns the connector at inPosition.
Dtk_KinCurve::getEntitySize
Dtk_Size_t getEntitySize()
Return the size of the entity tab.
Dtk_KinJoint::setPart2
void setPart2(Dtk_KinPartPtr inPart)
Sets the second part associated at the joint.
Dtk_KinJoint::_UPPER_LIMIT1
Dtk_string _UPPER_LIMIT1
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:943
Dtk_KinParameter::setNamedValue
void setNamedValue(Dtk_KinNamedValuePtr inAtt)
Sets the named value to be associated at parameter.
DTK_POINT_CURVE
@ DTK_POINT_CURVE
Definition: util_kinematics_dtk.hpp:124
Dtk_KinJoint::addConstraint
void addConstraint(Dtk_KinConstraintPtr inConstraint)
Add constraint at the constraint table.
Dtk_KinMechanism::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:1808
Dtk_KinMechanism::hasLaw
Dtk_bool hasLaw(Dtk_KinLawPtr inLaw)
Test if the law belong at law table.
Dtk_KinFixPart::getId
int getId()
Retrun the fix part id.
Dtk_KinLaw::Dtk_KinLaw
Dtk_KinLaw(const Dtk_KinLaw &inLaw)
Copy constructor.
Dtk_KinProduct::Dump
Dtk_status Dump(FILE *inFile, int &inNum)
Write Dump file for product.
Dtk_KinJoint::setJoint2
void setJoint2(Dtk_KinJointPtr inJoint)
Sets the second joint associated at the joint.
Dtk_KinSpeedAcceleration::_linearSpeed
Dtk_KinParameterPtr _linearSpeed[5]
Linear speed.
Definition: util_kinematics_dtk.hpp:2746
Dtk_Kinematic::getJointPosition
int getJointPosition(Dtk_KinJointPtr inJoint)
Returns the position of the joint.
Dtk_KinCurve::Dtk_KinCurve
Dtk_KinCurve(const Dtk_KinCurve &inSketch)
Copy constructor.
Dtk_KinMechanism::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:1625
DTK_TYPE_KINEMATIC
@ DTK_TYPE_KINEMATIC
Definition: define.h:535
Dtk_KinSpeedAcceleration::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:2555
Dtk_KinJoint::_RATIO
Dtk_string _RATIO
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:970
Dtk_KinSpeedAcceleration::getCirY
Dtk_KinParameterPtr getCirY()
Returns the Cir Y.
Dtk_string
This is a high level string class.
Definition: dtk_string.hpp:53
Dtk_KinLaw::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:2387
Dtk_Kinematic::getMechanismSize
Dtk_Size_t getMechanismSize()
Return the mechanism tab size.
Dtk_KinMechanismPtr
Dtk_SmartPtr< Dtk_KinMechanism > Dtk_KinMechanismPtr
Definition: util_kinematics_dtk.hpp:40
Dtk_KinParameter::_RANGE
Dtk_string _RANGE
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:329
Dtk_KinConnector
Dtk_NodeConnector Dtk_KinConnector
Definition: util_kinematics_dtk.hpp:79
Dtk_KinematicPtr
Dtk_SmartPtr< Dtk_Kinematic > Dtk_KinematicPtr
Definition: util_kinematics_dtk.hpp:35
Dtk_KinNamedValuePtr
Dtk_SmartPtr< Dtk_KinNamedValue > Dtk_KinNamedValuePtr
Definition: util_kinematics_dtk.hpp:38
Dtk_KinJoint::_CONNECTOR
Dtk_string _CONNECTOR
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:976
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:704
Dtk_KinMechanism::getId
int getId()
Returns the mechanism id.
Dtk_Kinematic::getMechanismByCommand
Dtk_KinMechanismPtr getMechanismByCommand(Dtk_KinCommandPtr inCOmmand)
Returns the mechanism associated at command inCommand.
Dtk_KinConstraint::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinNamedValue::release
static Dtk_KinNamedValuePtr release(Dtk_KinNamedValuePtr inNamedValue)
Delete object.
Dtk_KinConstraint::_VALUE
Dtk_string _VALUE
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:666
Dtk_KinNamedValue
Dtk_KinNamedValue represents a named value.
Definition: util_kinematics_dtk.hpp:174
Dtk_KinMechanism::setFixPart
void setFixPart(Dtk_KinFixPartPtr inFixPart)
Sets the fix part.
Dtk_Kinematic::getPartByNumChild
Dtk_KinPartPtr getPartByNumChild(int inNumChild)
Returns the part by it numChild attribute.
Dtk_KinConstraint::Dtk_KinConstraint
Dtk_KinConstraint()
Default constructor.
Dtk_KinLaw::getComment
Dtk_string getComment()
Returns the law comment.
Dtk_KinProduct::_parts
Dtk_KinPartTab _parts
Definition: util_kinematics_dtk.hpp:584
Dtk_Kinematic::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:1883
Dtk_KinSpeedAcceleration::release
static Dtk_KinSpeedAccelerationPtr release(Dtk_KinSpeedAccelerationPtr inSpeedAcceleration)
Delete object.
Dtk_KinCurve::getFileName
Dtk_string getFileName()
Returns the file name associated at the curve.
Dtk_KinCommand::Dtk_KinCommand
Dtk_KinCommand()
Default constructor.
Dtk_KinCurveTab
Dtk_tab< Dtk_KinCurvePtr > Dtk_KinCurveTab
Definition: util_kinematics_dtk.hpp:93
Dtk_KinNamedValue::Dtk_KinNamedValue
Dtk_KinNamedValue(const Dtk_KinNamedValue &att)
Copy constructor.
Dtk_KinSpeedAcceleration::getAngularAcceleration
Dtk_KinParameterPtr getAngularAcceleration()
Returns the angular acceleration.
Dtk_KinJoint::getConnectorSize
Dtk_Size_t getConnectorSize()
Return the attribute tab size.
Dtk_KinSpeedAcceleration::_angularAcc
Dtk_KinParameterPtr _angularAcc[5]
Angular acceleration.
Definition: util_kinematics_dtk.hpp:2770
Dtk_KinConstraint::_position
Dtk_transfo _position
Optional attribute (fix constraint)
Definition: util_kinematics_dtk.hpp:838
Dtk_KinMechanism::Dtk_KinMechanism
Dtk_KinMechanism(const Dtk_KinMechanism &mecha)
Copy constructor.
Dtk_KinJoint::_JOINT2
Dtk_string _JOINT2
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:967
Dtk_KinJoint::setPart1
void setPart1(Dtk_KinPartPtr inPart)
Sets the first part associated at the joint.
Dtk_KinProduct::_instanceName
Dtk_string _instanceName
Definition: util_kinematics_dtk.hpp:581
Dtk_KinNamedValue::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:179
Dtk_KinConstraint::setPosition
void setPosition(Dtk_transfo transfo)
Sets the part position.
Dtk_KinCurve::_entity
Dtk_tab< void * > _entity
Definition: util_kinematics_dtk.hpp:2329
Dtk_Kinematic::hasConstraint
Dtk_bool hasConstraint(Dtk_KinConstraintPtr inConstraint)
Test if a constraint belong at the constraint table.
Dtk_KinConstraint::Dtk_KinConstraint
Dtk_KinConstraint(const Dtk_KinConstraint &constraint)
Copy constructor.
Dtk_KinConnectorPtr
Dtk_NodeConnectorPtr Dtk_KinConnectorPtr
Definition: util_kinematics_dtk.hpp:81
Dtk_Kinematic::Dtk_Kinematic
Dtk_Kinematic()
Default constructor of a generic Kinematics
Dtk_KinNamedValue::Dump
Dtk_status Dump(FILE *inFile)
Write Dump file for named value.
DTK_REVOLUTE
@ DTK_REVOLUTE
Definition: util_kinematics_dtk.hpp:121
Dtk_Kinematic::DtkDynamicCast
static Dtk_Kinematic * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:1875
Dtk_KinConstraint::_connectors
Dtk_KinConnectorTab _connectors
Definition: util_kinematics_dtk.hpp:814
Dtk_KinProduct::_products
Dtk_KinProductTab _products
Definition: util_kinematics_dtk.hpp:585
Dtk_Kinematic::getPartByInstanceName
Dtk_KinPartPtr getPartByInstanceName(Dtk_string &inName)
Returns the part by it instanceName attribute.
Dtk_KinMechanism::getFixPart
Dtk_KinFixPartPtr getFixPart()
Returns the fix part object.
Dtk_status
Definition: dtk_status.hpp:16
Dtk_KinMechanism::_speedAcc
Dtk_KinSpeedAccelerationTab _speedAcc
Definition: util_kinematics_dtk.hpp:1818
Dtk_KinJoint::getRatioParameter
Dtk_KinParameterPtr getRatioParameter()
Returns the Dtk_KinParameter ratio of the joint.
Dtk_KinConstraint
Dtk_KinConstraint represents a constraint to define a joint.
Definition: util_kinematics_dtk.hpp:604
DTK_TYPE_KIN_COMMAND
@ DTK_TYPE_KIN_COMMAND
Definition: define.h:540
Dtk_KinJoint::getUpperLimit1
double getUpperLimit1()
Returns the upper limit 1.
Dtk_KinConstraint::~Dtk_KinConstraint
~Dtk_KinConstraint()
Destructor.
Dtk_KinCommand::_value
double _value
Definition: util_kinematics_dtk.hpp:1489
Dtk_Kinematic::hasCommand
Dtk_bool hasCommand(Dtk_KinCommandPtr inCommand)
Test if a command belong at the command table.
Dtk_KinMechanism::getParamTime
Dtk_KinParameterPtr getParamTime()
Returns the time parameter
DTK_TYPE_KIN_SPEEDACCELERATION
@ DTK_TYPE_KIN_SPEEDACCELERATION
Definition: define.h:543
Dtk_Kinematic::getConstraintPosition
int getConstraintPosition(Dtk_KinConstraintPtr inConstraint)
Returns the position of the constraint.
Dtk_KinConstraint::setReference
void setReference(Dtk_KinParameterPtr inParam)
Sets the parameter for reference attribute.
Dtk_KinJoint::getId
int getId()
Retrun the joint id.
Dtk_KinLaw::getId
int getId()
Returns the law id.
Dtk_KinJoint::getAbsolutPos1
Dtk_transfo getAbsolutPos1()
Returns the part 1 absolute position.
Dtk_KinCommand::setParameter
void setParameter(Dtk_KinParameterPtr inParam)
Sets the parameter command.
Dtk_KinMechanism::getVersion
Dtk_string getVersion()
Returns the mechanism version.
Dtk_KinConstraint::_ORIENTATION
Dtk_string _ORIENTATION
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:669
DTK_FALSE
#define DTK_FALSE
Definition: define.h:720
Dtk_KinSpeedAcceleration::setLinearSpeedX
void setLinearSpeedX(Dtk_KinParameterPtr inParam)
Sets the linear speed for X axis.
Dtk_KinLaw::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:2369
Dtk_bool
char Dtk_bool
Definition: define.h:717
Dtk_KinParameter::setRange
void setRange(double inValue, int inPosition)
Sets the inValue of range attribute at inPosition.
Dtk_Kinematic::hasPart
Dtk_bool hasPart(Dtk_KinPartPtr inPart)
Test if a part belong at the part table.
DTK_KINEMATIC_TYPE
DTK_KINEMATIC_TYPE
Enum for parameter father type.
Definition: util_kinematics_dtk.hpp:107
Dtk_KinSpeedAcceleration::getAngularAccelerationZ
Dtk_KinParameterPtr getAngularAccelerationZ()
Returns the angular acceleration for Z angle.
Dtk_KinProduct::id
int & id()
Accessor for the id attribute.
Dtk_KinLaw::getCurve
Dtk_KinCurvePtr getCurve(Dtk_Size_t inPos)
Returns the curve at the position inPos.
Dtk_KinMechanism::addJoint
void addJoint(Dtk_KinJointPtr inJoint)
Add a joint at the joint table.
Dtk_KinMechanism::operator==
Dtk_bool operator==(Dtk_KinMechanism &inMechanism)
Test if 2 Dtk_KinMechanism is equal.
Dtk_KinCommand::getJoint
Dtk_KinJointPtr getJoint()
Returns the joint associated at command.
Dtk_KinFormula::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinJoint::_part3
Dtk_KinPartPtr _part3
Optional attribute only with compound joint. This part is defined at the kinematic part table.
Definition: util_kinematics_dtk.hpp:1316
Dtk_KinSpeedAcceleration::Create
static Dtk_KinSpeedAccelerationPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinParameter::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinParameter::Dtk_KinParameter
Dtk_KinParameter()
Default constructor.
Dtk_KinFixPart::~Dtk_KinFixPart
~Dtk_KinFixPart()
Destructor.
Dtk_KinCommand::DtkDynamicCast
static Dtk_KinCommand * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:1380
Dtk_KinJoint::setAbsolutPos2
void setAbsolutPos2(Dtk_transfo inTransfo)
Sets the absolute position for part 2.
Dtk_KinSpeedAcceleration::setPoint
void setPoint(Dtk_KinConnectorPtr inPart)
Dtk_KinProduct::addPart
void addPart(Dtk_KinPartPtr inPart)
Adds the part.
Dtk_KinJoint::Create
static Dtk_KinJointPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinSpeedAcceleration::setAngularAcceleration
void setAngularAcceleration(Dtk_KinParameterPtr inParam)
Sets the angular acceleration.
Dtk_Kinematic::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinJoint::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:916
Dtk_KinFixPart::_ID
int _ID
Definition: util_kinematics_dtk.hpp:1604
Dtk_KinFormula::getName
Dtk_string getName()
Returns the formula name.
Dtk_KinParameter::setRange
void setRange(double inRange[4])
Sets the range attribute of the parameter.
Dtk_KinConstraintPtr
Dtk_SmartPtr< Dtk_KinConstraint > Dtk_KinConstraintPtr
Definition: util_kinematics_dtk.hpp:39
Dtk_KinSpeedAcceleration::getLinearAccelerationY
Dtk_KinParameterPtr getLinearAccelerationY()
Returns the linear acceleration for Y axis.
Dtk_KinNamedValue::DtkDynamicCast
static Dtk_KinNamedValue * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:210
Dtk_KinMechanism::setId
void setId(int inId)
Sets the mechanism id.
Dtk_KinFixPart::DtkDynamicCast
static Dtk_KinFixPart * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:1539
Dtk_PointTab
Dtk_tab< Dtk_pnt > Dtk_PointTab
Definition: util_kinematics_dtk.hpp:97
Dtk_KinFormula::_comment
Dtk_string _comment
Definition: util_kinematics_dtk.hpp:2217
Dtk_KinMechanism::_version
Dtk_string _version
Definition: util_kinematics_dtk.hpp:1810
Dtk_KinSpeedAcceleration::getLinearSpeedY
Dtk_KinParameterPtr getLinearSpeedY()
Returns the linear speed for Y axis.
Dtk_KinProduct::searchProductByNumChild
Dtk_KinProductPtr searchProductByNumChild(int inNumChild)
Returns the product by it numChild attribute.
Dtk_KinJoint::setParameter1
void setParameter1(double inParam)
Sets the first parameter of the joint.
Dtk_KinJoint::getAttributeSize
Dtk_Size_t getAttributeSize()
Return the attribute tab size.
DTK_KIN_TYPE_LAW
@ DTK_KIN_TYPE_LAW
Definition: util_kinematics_dtk.hpp:112
DTK_TYPE_KIN_LAW
@ DTK_TYPE_KIN_LAW
Definition: define.h:542
Dtk_KinJoint::_localframe1
Dtk_transfo _localframe1
Definition: util_kinematics_dtk.hpp:1279
Dtk_KinLaw::release
static Dtk_KinLawPtr release(Dtk_KinLawPtr inLaw)
Delete object.
Dtk_Kinematic::getPartSize
Dtk_Size_t getPartSize()
Returns the part tab size.
Dtk_KinSpeedAcceleration::_ID
int _ID
Definition: util_kinematics_dtk.hpp:2726
Dtk_KinConstraint::getValue
Dtk_KinParameterPtr getValue()
Returns the Dtk_KinParameter represents the constraint value.
Dtk_Kinematic
Dtk_Kinematic represents a kinematic.
Definition: util_kinematics_dtk.hpp:1828
Dtk_KinLaw::getName
Dtk_string getName()
Returns the law name.
Dtk_KinSpeedAcceleration::getCirX
Dtk_KinParameterPtr getCirX()
Returns the Cir X.
Dtk_KinNamedValue::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:262
Dtk_KinJoint::_ABSOLUT_POS1
Dtk_string _ABSOLUT_POS1
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:937
Dtk_Kinematic::getPart
Dtk_KinPartPtr getPart(Dtk_Size_t pos)
Returns Dtk_KinPart at position inPos.
Dtk_KinJoint::setFixTogether
void setFixTogether(Dtk_KinConstraintPtr inFix)
Sets the fix together constraint of the joint.
Dtk_KinJoint::DtkDynamicCast
static Dtk_KinJoint * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:908
Dtk_KinSpeedAcceleration::Dtk_KinSpeedAcceleration
Dtk_KinSpeedAcceleration()
Default constructor.
Dtk_KinJoint::getParameter2
double getParameter2()
Returns the second parameter.
Dtk_KinParameter::getNamedValue
Dtk_KinNamedValuePtr getNamedValue()
Returns the named value associated at the parameter.
Dtk_KinCommand::setValue
void setValue(double inValue)
Sets the command value.
Dtk_KinJoint::getLocalFrame3
Dtk_transfo getLocalFrame3()
Returns the local frame 3 value.
Dtk_KinConstraint::setOrientation
void setOrientation(Dtk_KinParameterPtr inParam)
Sets the parameter for orientation.
Dtk_KinSpeedAcceleration::setAngularSpeedZ
void setAngularSpeedZ(Dtk_KinParameterPtr inParam)
Sets the angular speed for Z angle.
Dtk_KinFormula
Dtk_KinFormula represents the formula defined the law.
Definition: util_kinematics_dtk.hpp:2108
Dtk_KinSpeedAcceleration::_point
Dtk_KinConnectorPtr _point
Definition: util_kinematics_dtk.hpp:2729
Dtk_KinJointTab
Dtk_tab< Dtk_KinJointPtr > Dtk_KinJointTab
Definition: util_kinematics_dtk.hpp:90
Dtk_KinProduct::~Dtk_KinProduct
~Dtk_KinProduct()
Destructor.
DTK_NOTHING
@ DTK_NOTHING
Definition: util_kinematics_dtk.hpp:119
Dtk_Entity::DtkDynamicType
int DtkDynamicType(const int &inId)
Dtk_KinConstraint::getConnectorSize
Dtk_Size_t getConnectorSize()
Return the attribute tab size.
Dtk_KinFormula::release
static Dtk_KinFormulaPtr release(Dtk_KinFormulaPtr inFormula)
Delete object.
Dtk_KinLaw::isEqual
Dtk_bool isEqual(Dtk_KinLawPtr inLaw)
Test if 2 Dtk_KinLaw is equal.
Dtk_KinJoint::hasConstraint
Dtk_bool hasConstraint(Dtk_KinConstraintPtr inConstraint)
Test if a constraint belong at the constraint table.
dtk_pnt.hpp
Dtk_KinLaw::getCurveSize
Dtk_Size_t getCurveSize()
Return the size of the curve tab.
DTK_TYPE_KIN_CONSTRAINT
@ DTK_TYPE_KIN_CONSTRAINT
Definition: define.h:537
Dtk_KinConstraint::Create
static Dtk_KinConstraintPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinSpeedAcceleration::_angularSpeed
Dtk_KinParameterPtr _angularSpeed[5]
Angular speed.
Definition: util_kinematics_dtk.hpp:2762
Dtk_KinProduct::getPart
Dtk_KinPartPtr getPart(Dtk_Size_t inPos)
Returns the part at position inPos.
Dtk_KinCommand::getId
int getId()
Returns the command id.
Dtk_KinConstraint::getName
Dtk_string getName()
Returns the constraint name.
Dtk_KinProduct::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinLaw::getParameter
Dtk_KinParameterTab getParameter()
Returns the parameter table The last is the out parameter.
Dtk_KinSpeedAcceleration::isEqual
Dtk_bool isEqual(Dtk_KinSpeedAccelerationPtr inSpeed)
Test if 2 Dtk_KinSpeedAcceleration is equal.
Dtk_Kinematic::getCommandSize
Dtk_Size_t getCommandSize()
Return the attribute tab size.
Dtk_KinJoint::getLowerLimit2
double getLowerLimit2()
Returns the lower limit 2.
Dtk_KinJoint::setLocalFrame3
void setLocalFrame3(Dtk_transfo inTransfo)
Sets the local frame 3.
Dtk_KinSpeedAcceleration::_linearAcc
Dtk_KinParameterPtr _linearAcc[5]
linear acceleration
Definition: util_kinematics_dtk.hpp:2754
Dtk_KinConstraint::setId
void setId(int inId)
Sets the constraint id.
Dtk_Kinematic::setProduct
void setProduct(Dtk_KinProductPtr inProd)
Sets the product object represented all element compound the CATProduct file.
Dtk_KinProduct::DtkDynamicCast
static Dtk_KinProduct * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:497
Dtk_Kinematic::addPart
void addPart(Dtk_KinPartPtr inPart)
Adds inPart at the part table.
Dtk_KinConstraint::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:653
KIN_CMD_NOTHING
@ KIN_CMD_NOTHING
Definition: util_kinematics_dtk.hpp:141
Dtk_KinFixPart::_fixpart
Dtk_KinPartPtr _fixpart
This part is defined into the kinematic part table.
Definition: util_kinematics_dtk.hpp:1608
DTK_PLANAR
@ DTK_PLANAR
Definition: util_kinematics_dtk.hpp:135
Dtk_Kinematic::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:1834
Dtk_KinNamedValue::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinConstraint::setName
void setName(Dtk_string inName)
Sets the constraint name.
Dtk_KinSpeedAcceleration::setPtX
void setPtX(Dtk_KinParameterPtr inParam)
Sets the point X.
Dtk_KinSpeedAcceleration::getAngularSpeedY
Dtk_KinParameterPtr getAngularSpeedY()
Returns the angular speed for Y angle.
Dtk_KinNamedValue::getValue
double getValue()
Returns the value of the name.
Dtk_KinJoint::isEqual
Dtk_bool isEqual(Dtk_KinJointPtr inJoint)
Test if 2 Dtk_KinJoint is equal.
Dtk_KinJoint::getLocalFrame1
Dtk_transfo getLocalFrame1()
Returns the local frame 1 value.
Dtk_KinProduct::getNbPart
Dtk_Size_t getNbPart()
Returns the number of part associated.
Dtk_KinFormula::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:2114
Dtk_KinJoint::setLocalFrame1
void setLocalFrame1(Dtk_transfo inTransfo)
Sets the local frame 1.
Dtk_KinJoint::setLowerLimit1
void setLowerLimit1(double inVal)
Sets the lower limit for the first parameter of joint.
Dtk_KinProduct
Dtk_KinProduct represents a kinematic product.
Definition: util_kinematics_dtk.hpp:460
Dtk_KinFixPartPtr
Dtk_SmartPtr< Dtk_KinFixPart > Dtk_KinFixPartPtr
Definition: util_kinematics_dtk.hpp:46
Dtk_KinProduct::Create
static Dtk_KinProductPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinJoint::operator==
Dtk_bool operator==(Dtk_KinJoint &inJoint)
Test if 2 Dtk_KinJoint is equal.
Dtk_KinLaw::setActive
void setActive(int inActive)
Sets the active attribute.
Dtk_Kinematic::Clone
virtual Dtk_Object * Clone()
Definition: util_kinematics_dtk.hpp:1854
Dtk_KinLaw::setSynchrone
void setSynchrone(int inSynchrone)
Sets the synchrone attribute.
Dtk_KinSpeedAcceleration::setCirZ
void setCirZ(Dtk_KinParameterPtr inParam)
Sets the Cir Z.
Dtk_KinPart
Dtk_Component Dtk_KinPart
Definition: util_kinematics_dtk.hpp:78
Dtk_KinJoint::_compoundType
int _compoundType
Definition: util_kinematics_dtk.hpp:1284
Dtk_KinConstraint::_MODE_INTEGER
Dtk_string _MODE_INTEGER
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:663
Dtk_Kinematic::hasParameter
Dtk_bool hasParameter(Dtk_KinParameterPtr inParameter)
Test if a parameter belong at the parameter table.
Dtk_KinMechanism::setName
void setName(Dtk_string inName)
Sets the mechanism name.
Dtk_KinJoint::getUpperLimit2
double getUpperLimit2()
Returns the upper limit 2.
DTK_CV_JOINT
@ DTK_CV_JOINT
Definition: util_kinematics_dtk.hpp:129
Dtk_Kinematic::getJoint
Dtk_KinJointPtr getJoint(Dtk_Size_t pos)
Returns Dtk_KinJoint at position inPos.
Dtk_KinConnectorTab
Dtk_tab< Dtk_NodeConnectorPtr > Dtk_KinConnectorTab
Definition: util_kinematics_dtk.hpp:82
Dtk_KinSpeedAccelerationTab
Dtk_tab< Dtk_KinSpeedAccelerationPtr > Dtk_KinSpeedAccelerationTab
Definition: util_kinematics_dtk.hpp:92
Dtk_KinFixPart::setName
void setName(Dtk_string inName)
Sets the fix part name.
Dtk_DumpKinematics
Dtk_status Dtk_DumpKinematics(const Dtk_string &inFileName)
Write Dump file.
Dtk_KinConstraint::setModeInteger
void setModeInteger(int inMode)
Sets the parameter for mode integer.
Dtk_KinJoint::_ID
int _ID
Definition: util_kinematics_dtk.hpp:1256
Dtk_KinJoint::Dtk_KinJoint
Dtk_KinJoint(const Dtk_KinJoint &joint)
Copy constructor.
Dtk_KinCommand::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:1388
util_ent_dtk.hpp
Dtk_KinSpeedAcceleration::getName
Dtk_string getName()
Returns the name of speed/acceleration.
Dtk_KinJoint::_parameter2
double _parameter2
Optional attribute.
Definition: util_kinematics_dtk.hpp:1298
Dtk_KinSpeedAccelerationPtr
Dtk_SmartPtr< Dtk_KinSpeedAcceleration > Dtk_KinSpeedAccelerationPtr
Definition: util_kinematics_dtk.hpp:45
Dtk_KinProduct::_fileName
Dtk_string _fileName
Definition: util_kinematics_dtk.hpp:582
Dtk_KinNamedValue::Dtk_KinNamedValue
Dtk_KinNamedValue()
Default constructor.
Dtk_KinCommand::getValue
double getValue()
Returns the value of the command for simulation.
Dtk_KinSpeedAcceleration::getLinearAccelerationX
Dtk_KinParameterPtr getLinearAccelerationX()
Returns the linear acceleration for X axis.
Dtk_KinJoint::Dump
Dtk_status Dump(FILE *inFile, Dtk_bool simplified)
Write Dump file for joint.
Dtk_Int32
int32_t Dtk_Int32
Definition: define.h:679
Dtk_KinSpeedAcceleration::DtkDynamicCast
static Dtk_KinSpeedAcceleration * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:2547
Dtk_KinLaw::addCurve
void addCurve(Dtk_KinCurvePtr inCurve)
Add a curve at the parameter in.
dtk_maindoc_ptr.hpp
Dtk_KinMechanism::addSpeedAcceleration
void addSpeedAcceleration(Dtk_KinSpeedAccelerationPtr inSpeed)
Add inSpeed at the speed/acceleration at the speed/acceleration table.
Dtk_KinFormula::_ID
int _ID
Definition: util_kinematics_dtk.hpp:2215
Dtk_KinMechanism::_laws
Dtk_KinLawTab _laws
Definition: util_kinematics_dtk.hpp:1817
Dtk_KinJoint::_PARAMETER2
Dtk_string _PARAMETER2
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:931
Dtk_KinSpeedAcceleration::setLinearSpeedZ
void setLinearSpeedZ(Dtk_KinParameterPtr inParam)
Sets the linear speed for Z axis.
Dtk_KinJoint::getLocalFrame4
Dtk_transfo getLocalFrame4()
Returns the local frame 4 value.
Dtk_KinConstraint::_value
Dtk_KinParameterPtr _value
Optional attribute (offset constraint)
Definition: util_kinematics_dtk.hpp:820
Dtk_KinProduct::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:487
Dtk_KinLawPtr
Dtk_SmartPtr< Dtk_KinLaw > Dtk_KinLawPtr
Definition: util_kinematics_dtk.hpp:44
Dtk_KinCurve::addEntity
void addEntity(void *inEntity, enum type_detk inType)
Add an entity and this type at the entity table.
Dtk_KinJoint::_attributeTable
Dtk_StringTab _attributeTable
Contains the names of the defining optional attributes forced.
Definition: util_kinematics_dtk.hpp:1287
Dtk_KinLaw::setId
void setId(int inId)
Sets the law id.
Dtk_KinFormula::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:2214
Dtk_KinConstraint::setValue
void setValue(Dtk_KinParameterPtr inParam)
Sets the parameter for value.
Dtk_KinSpeedAcceleration
Dtk_KinSpeedAcceleration represents a mechanism speed/acceleration.
Definition: util_kinematics_dtk.hpp:2511
Dtk_Kinematic::hasMechanism
Dtk_bool hasMechanism(Dtk_KinMechanismPtr inMechanism)
Test if a mechanism belong at the mechanism table.
Dtk_KinParameter::Create
static Dtk_KinParameterPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinCurvePtr
Dtk_SmartPtr< Dtk_KinCurve > Dtk_KinCurvePtr
Definition: util_kinematics_dtk.hpp:47
Dtk_KinParameter::~Dtk_KinParameter
~Dtk_KinParameter()
Destructor.
Dtk_KinConstraint::_ID
int _ID
Definition: util_kinematics_dtk.hpp:813
COMMAND_TYPE
COMMAND_TYPE
Enum for the command type.
Definition: util_kinematics_dtk.hpp:140
Dtk_KinSpeedAcceleration::setLinearAccelerationY
void setLinearAccelerationY(Dtk_KinParameterPtr inParam)
Sets the linear acceleration for Y axis.
Dtk_KinLaw::_comment
Dtk_string _comment
Definition: util_kinematics_dtk.hpp:2489
Dtk_KinSpeedAcceleration::getLinearAcceleration
Dtk_KinParameterPtr getLinearAcceleration()
Returns the linear acceleration.
Dtk_KinConstraint::_modeInteger
int _modeInteger
Optional attribute (offset constraint)
Definition: util_kinematics_dtk.hpp:831
DTK_TYPE_KIN_PRODUCT
@ DTK_TYPE_KIN_PRODUCT
Definition: define.h:546
Dtk_KinFormula::setName
void setName(Dtk_string inName)
Sets the formula name.
Dtk_KinConstraint::_orientation
Dtk_KinParameterPtr _orientation
Optional attribute (offset constraint)
Definition: util_kinematics_dtk.hpp:826
Dtk_KinSpeedAcceleration::getAngularAccelerationX
Dtk_KinParameterPtr getAngularAccelerationX()
Returns the angular acceleration for X angle.
Dtk_KinJoint::addConnector
void addConnector(Dtk_KinConnectorPtr inConnector)
Add connector at the connector table.
Dtk_Kinematic::addConstraint
void addConstraint(Dtk_KinConstraintPtr inConstraint)
Add inConstraint at the constraint table.
DTK_PRISMATIC
@ DTK_PRISMATIC
Definition: util_kinematics_dtk.hpp:120
Dtk_KinNamedValue::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:200
Dtk_KinParameter::getParentElement
void * getParentElement()
Returns the parent element.
error_dtk.hpp
Dtk_KinCommand::getParameter
Dtk_KinParameterPtr getParameter()
Returns the parameter associated at command.
Dtk_KinMechanism::Create
static Dtk_KinMechanismPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinMechanism::hasJoint
Dtk_bool hasJoint(Dtk_KinJointPtr inJoint)
Test if the joint belong at joint table.
Dtk_KinConstraint::getId
int getId()
Retrun the constraint id.
Dtk_Kinematic::getCommandPosition
int getCommandPosition(Dtk_KinCommandPtr inCommand)
Returns the position of the command.
Dtk_KinSpeedAcceleration::setName
void setName(Dtk_string inName)
Sets the name of speed/acceleration.
Dtk_KinJoint::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:898
Dtk_KinFixPart::getPart
Dtk_KinPartPtr getPart()
Returns the part fixed.
Dtk_KinJoint::_absolutepos2
Dtk_transfo _absolutepos2
Optional attribute.
Definition: util_kinematics_dtk.hpp:1305
Dtk_KinNamedValue::setValue
void setValue(double inValue)
Sets the value.
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
DTK_TYPE_KIN_PARAMETER
@ DTK_TYPE_KIN_PARAMETER
Definition: define.h:539
Dtk_KinParameter::_parentNode
void * _parentNode
Definition: util_kinematics_dtk.hpp:449
Dtk_KinJoint::getCompoundType
int getCompoundType()
Returns the compound type attribute.
Dtk_KinJoint::setLocalFrame4
void setLocalFrame4(Dtk_transfo inTransfo)
Sets the local frame 4.
Dtk_KinFixPart::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:1547
Dtk_KinParameter
Dtk_KinParameter represents a kinematic parameter.
Definition: util_kinematics_dtk.hpp:273
Dtk_KinJoint::getAbsolutPos2
Dtk_transfo getAbsolutPos2()
Returns the part 2 absolute position.
Dtk_KinConstraint::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:613
Dtk_KinFixPart::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:1603
Dtk_KinMechanism::getCommand
Dtk_KinCommandPtr getCommand(Dtk_Size_t inPos)
Returns Dtk_KinCommand at position inPos.
Dtk_KinFormula::DtkDynamicCast
static Dtk_KinFormula * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:2146
Dtk_KinSpeedAcceleration::setLinearAcceleration
void setLinearAcceleration(Dtk_KinParameterPtr inParam)
Sets the linear acceleration.
DTK_KIN_TYPE_JOINT
@ DTK_KIN_TYPE_JOINT
Definition: util_kinematics_dtk.hpp:109
Dtk_KinJoint::getType
JOINT_TYPE getType()
Returns the joint type.
Dtk_KinMechanism::Dtk_KinMechanism
Dtk_KinMechanism()
Default constructor.
Dtk_KinJoint::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:1255
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_KinCommand::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:1348
Dtk_KinLaw::getActive
int getActive()
Returns the active attribute.
dtk_maindoc.hpp
Dtk_KinSpeedAcceleration::getLinearSpeedZ
Dtk_KinParameterPtr getLinearSpeedZ()
Returns the linear speed for Z axis.
Dtk_KinSpeedAcceleration::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:2725
Dtk_KinProduct::Dtk_KinProduct
Dtk_KinProduct()
Default constructor.
Dtk_KinParameter::addAttribute
void addAttribute(Dtk_string inAttribute)
Add inAttribute at the attribute table.
Dtk_KinConstraint::_reference
Dtk_KinParameterPtr _reference
Optional attribute (fix constraint)
Definition: util_kinematics_dtk.hpp:836
DTK_KIN_TYPE_UNKNOWN
@ DTK_KIN_TYPE_UNKNOWN
Definition: util_kinematics_dtk.hpp:108
Dtk_KinLaw::Dump
Dtk_status Dump(FILE *inFile)
Write Dump file for law.
Dtk_KinLaw::_algo
int _algo
Definition: util_kinematics_dtk.hpp:2502
Dtk_KinJoint::setRatioParameter
void setRatioParameter(Dtk_KinParameterPtr inParam)
Sets the joint Dtk_KinParameter ratio.
KIN_CMD_LENGTH_JOINT1
@ KIN_CMD_LENGTH_JOINT1
Definition: util_kinematics_dtk.hpp:145
Dtk_KinParameter::setParentType
void setParentType(DTK_KINEMATIC_TYPE inType)
Sets the type of the node parent.
Dtk_KinCommand::setName
void setName(Dtk_string inName)
Sets the command name.
Dtk_KinSpeedAcceleration::_cir
Dtk_KinParameterPtr _cir[3]
Cir.
Definition: util_kinematics_dtk.hpp:2777
Dtk_KinSpeedAcceleration::setAngularAccelerationY
void setAngularAccelerationY(Dtk_KinParameterPtr inParam)
Sets the angular acceleration for Y angle.
KIN_CMD_LENGTH
@ KIN_CMD_LENGTH
Definition: util_kinematics_dtk.hpp:143
Dtk_KinJoint::getPart1
Dtk_KinPartPtr getPart1()
Returns the first part associated at the joint.
DTK_ROLL
@ DTK_ROLL
Definition: util_kinematics_dtk.hpp:126
Dtk_KinFormula::getFormula
Dtk_string getFormula()
Returns the formula.
Dtk_KinSpeedAcceleration::getCirZ
Dtk_KinParameterPtr getCirZ()
Returns the Cir Z.
Dtk_KinSpeedAcceleration::getLinearSpeedX
Dtk_KinParameterPtr getLinearSpeedX()
Returns the linear speed for X axis.
Dtk_GetKinematics
Dtk_KinematicPtr Dtk_GetKinematics()
Return the kinematic object.
Dtk_Kinematic::addJoint
void addJoint(Dtk_KinJointPtr inJoint)
Add inJoint at the joint table.
Dtk_KinJoint::_localframe4
Dtk_transfo _localframe4
Optional attribute only with compound joint.
Definition: util_kinematics_dtk.hpp:1320
Dtk_KinJoint::getConnectorTab
Dtk_KinConnectorTab getConnectorTab()
Return the connector tab.
Dtk_KinProduct::name
Dtk_string & name()
Accessor for the name attribute.
Dtk_KinJoint::_joint1
Dtk_KinJointPtr _joint1
Optional attribute only with compound joint. This joint est defined at the kinematic joint table.
Definition: util_kinematics_dtk.hpp:1323
dtk_transfo.hpp
Dtk_KinLaw::getAlgo
int getAlgo()
Dtk_KinJoint::_PART3
Dtk_string _PART3
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:955
Dtk_KinJoint::_ABSOLUT_POS2
Dtk_string _ABSOLUT_POS2
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:940
Dtk_KinMechanism::_jointList
Dtk_KinJointTab _jointList
All joints are defined into the kinematic joint table.
Definition: util_kinematics_dtk.hpp:1812
DumpTransfo
void DumpTransfo(FILE *inFile, Dtk_transfo transfo)
Dtk_KinJoint::getConnector
Dtk_KinConnectorPtr getConnector(Dtk_Size_t inPosition)
Returns Connector at position inPosition.
type_detk
type_detk
Definition: define.h:21
Dtk_KinCurve::release
static Dtk_KinCurvePtr release(Dtk_KinCurvePtr inCurve)
Delete object.
Dtk_KinParameter::Dump
Dtk_status Dump(FILE *inFile, Dtk_bool simplified=DTK_FALSE)
Write Dump file for parameter.
Dtk_KinJoint::getPart3
Dtk_KinPartPtr getPart3()
Returns the third part associated at the joint.
Dtk_KinSpeedAcceleration::_idFile
Dtk_string _idFile
Definition: util_kinematics_dtk.hpp:2727
Dtk_Kinematic::hasJoint
Dtk_bool hasJoint(Dtk_KinJointPtr inJoint)
Test if a joint belong at the joint table.
Dtk_KinConstraint::getPosition
Dtk_transfo getPosition()
Returns the part position.
Dtk_KinLaw::setExpression
void setExpression(Dtk_KinFormulaPtr inExpression)
Sets the formula.
KIN_CMD_ANGLE_JOINT2
@ KIN_CMD_ANGLE_JOINT2
Definition: util_kinematics_dtk.hpp:146
Dtk_KinCurve::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:2272
Dtk_KinConstraint::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:635
Dtk_KinSpeedAcceleration::getAngularSpeedX
Dtk_KinParameterPtr getAngularSpeedX()
Returns the angular speed for X angle.
Dtk_KinConstraint::replaceConnector
void replaceConnector(Dtk_Size_t inPosition, Dtk_KinConnectorPtr inConnector)
Replace the connector at position inPosition by the connector inConnector.
util_stl_dtk.hpp
Dtk_KinSpeedAcceleration::getAngularSpeed
Dtk_KinParameterPtr getAngularSpeed()
Returns the angular speed.
Dtk_KinMechanism::getCommandSize
Dtk_Size_t getCommandSize()
Return the attribute tab size.
Dtk_KinLaw::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:2486
Dtk_KinProductPtr
Dtk_SmartPtr< Dtk_KinProduct > Dtk_KinProductPtr
Definition: util_kinematics_dtk.hpp:48
Dtk_KinSpeedAcceleration::Dump
Dtk_status Dump(FILE *inFile)
Write Dump file for mechanism speed/acceleration.
Dtk_Kinematic::Create
static Dtk_KinematicPtr Create()
Calls default constructor to allocate a new object.
Dtk_Kinematic::getPartPositionByNumChild
int getPartPositionByNumChild(Dtk_KinPartPtr inPart)
Returns the position of the part that have the same numChild attribut.
Dtk_KinParameter::isEqual
Dtk_bool isEqual(Dtk_KinParameterPtr inParam)
Test if 2 Dtk_KinParameter is equal.
Dtk_KinConstraint::getReference
Dtk_KinParameterPtr getReference()
Returns the Dtk_KinParameter represents the reference.
Dtk_KinParameter::Dtk_KinParameter
Dtk_KinParameter(const Dtk_KinParameter &param)
Copy constructor.
Dtk_KinMechanism::deleteLaw
void deleteLaw(Dtk_KinLawPtr inLaw)
Dtk_KinCurve::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:2232
Dtk_KinSpeedAcceleration::getLinearAccelerationZ
Dtk_KinParameterPtr getLinearAccelerationZ()
Returns the linear acceleration for Z axis.
Dtk_KinCurve::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:2254
Dtk_KinCommand::_parameter
Dtk_KinParameterPtr _parameter
Definition: util_kinematics_dtk.hpp:1492
Dtk_KinSpeedAcceleration::getPtX
Dtk_KinParameterPtr getPtX()
Returns the point X.
Dtk_KinParameter::DtkDynamicCast
static Dtk_KinParameter * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:311
Dtk_KinJoint::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
DTK_TYPE_KIN_CURVE
@ DTK_TYPE_KIN_CURVE
Definition: define.h:545
Dtk_KinJoint::_ratio
double _ratio
Optional attribute.
Definition: util_kinematics_dtk.hpp:1328
Dtk_KinLaw::_ID
int _ID
Definition: util_kinematics_dtk.hpp:2487
Dtk_KinCommandTab
Dtk_tab< Dtk_KinCommandPtr > Dtk_KinCommandTab
Definition: util_kinematics_dtk.hpp:89
DTK_CABLE
@ DTK_CABLE
Definition: util_kinematics_dtk.hpp:132
define.h
Dtk_KinJoint::_joint2
Dtk_KinJointPtr _joint2
Optional attribute only with compound joint This joint est defined at the kinematic joint table.
Definition: util_kinematics_dtk.hpp:1326
DTK_SPHERICAL
@ DTK_SPHERICAL
Definition: util_kinematics_dtk.hpp:123
Dtk_KinJoint::Dtk_KinJoint
Dtk_KinJoint()
Default constructor.
DTK_RACK
@ DTK_RACK
Definition: util_kinematics_dtk.hpp:131
Dtk_KinMechanism
Dtk_KinMechanism represents a kinematic mechanism.
Definition: util_kinematics_dtk.hpp:1618
Dtk_KinConstraint::addAttribute
void addAttribute(Dtk_string inAttribute)
Add inAttribute at the attribute table.
Dtk_KinSpeedAcceleration::setRefProd
void setRefProd(Dtk_KinPartPtr inPart)
Sets the reference production part.
Dtk_KinCurve::DtkDynamicCast
static Dtk_KinCurve * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:2264
Dtk_Kinematic::getMechanismPosition
int getMechanismPosition(Dtk_KinMechanismPtr inMecha)
Returns the position of the mechanism.
Dtk_KinProduct::_numChild
int _numChild
Definition: util_kinematics_dtk.hpp:579
DTK_UNIVERSAL_JOINT
@ DTK_UNIVERSAL_JOINT
Definition: util_kinematics_dtk.hpp:128
Dtk_KinSpeedAcceleration::getId
int getId()
Returns the id of speed/acceleration.
Dtk_KinSpeedAcceleration::setLinearAccelerationZ
void setLinearAccelerationZ(Dtk_KinParameterPtr inParam)
Sets the linear acceleration for Z axis.
Dtk_KinLaw::_active
int _active
Definition: util_kinematics_dtk.hpp:2500
Dtk_KinJoint::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:876
Dtk_KinLaw::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:2347
Dtk_Kinematic::_product
Dtk_KinProductPtr _product
Tree representation for the component (additional of part table)
Definition: util_kinematics_dtk.hpp:2096
Dtk_KinConstraint::release
static Dtk_KinConstraintPtr release(Dtk_KinConstraintPtr inPart)
Delete object.
Dtk_KinLaw::DtkDynamicCast
static Dtk_KinLaw * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:2379
Dtk_KinCommand::setJoint
void setJoint(Dtk_KinJointPtr inJoint)
Sets the joint associated at command.
DTK_TYPE_KIN_NAMED_VALUE
@ DTK_TYPE_KIN_NAMED_VALUE
Definition: define.h:536
Dtk_tab
This is a high level array class.
Definition: util_stl_dtk.hpp:84
Dtk_KinMechanism::Dump
Dtk_status Dump(FILE *inFile)
Write Dump file for mechanism.
Dtk_KinProduct::numChild
int & numChild()
Accessor for the numChild attribute.
Dtk_KinMechanism::getLaw
Dtk_KinLawPtr getLaw(Dtk_Size_t inPos)
Returns Dtk_KinLaw at position inPos.
DTK_RIGID
@ DTK_RIGID
Definition: util_kinematics_dtk.hpp:122
Dtk_KinParameter::setName
void setName(Dtk_string inName)
Sets the parameter name.
Dtk_KinParameter::_namedValue
Dtk_KinNamedValuePtr _namedValue
Definition: util_kinematics_dtk.hpp:444
Dtk_KinParameter::hasAttribute
Dtk_bool hasAttribute(Dtk_string inAttributeName)
Test if an attribute name belong at the attribute table.
Dtk_KinJoint::_type
JOINT_TYPE _type
Definition: util_kinematics_dtk.hpp:1274
Dtk_KinJoint::getJoint2
Dtk_KinJointPtr getJoint2()
Returns the second joint associated at the joint.
Dtk_KinJoint::_constraints
Dtk_KinConstraintTab _constraints
Optional attribute. All constraints are defined at the kinematic constraint table.
Definition: util_kinematics_dtk.hpp:1291
Dtk_KinLaw::_param
Dtk_KinParameterTab _param
Definition: util_kinematics_dtk.hpp:2496
Dtk_KinFormula::_param
Dtk_string _param
Definition: util_kinematics_dtk.hpp:2219
Dtk_KinConstraint::_REFERENCE
Dtk_string _REFERENCE
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:672
Dtk_KinSpeedAcceleration::getAngularAccelerationY
Dtk_KinParameterPtr getAngularAccelerationY()
Returns the angular acceleration for Y angle.
Dtk_KinLaw::_expression
Dtk_KinFormulaPtr _expression
Definition: util_kinematics_dtk.hpp:2491
Dtk_KinParameter::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:301
Dtk_KinFixPart::release
static Dtk_KinFixPartPtr release(Dtk_KinFixPartPtr inFixPart)
Delete object.
Dtk_KinFormula::_formula
Dtk_string _formula
Definition: util_kinematics_dtk.hpp:2218
Dtk_KinJoint::_absolutepos1
Dtk_transfo _absolutepos1
Optional attribute.
Definition: util_kinematics_dtk.hpp:1303
Dtk_KinJoint::_JOINT1
Dtk_string _JOINT1
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:964
Dtk_KinJoint::getAttribute
Dtk_string getAttribute(Dtk_Size_t inPosition)
Returns Dtk_string at position inPosition.
Dtk_Kinematic::release
static Dtk_KinematicPtr release(Dtk_KinematicPtr inKinematic)
Delete object.
Dtk_KinProduct::_ID
int _ID
Definition: util_kinematics_dtk.hpp:578
Dtk_Kinematic::_constraints
Dtk_KinConstraintTab _constraints
All constraints referenced into another object, are defined at this table.
Definition: util_kinematics_dtk.hpp:2085
Dtk_Kinematic::getCommand
Dtk_KinCommandPtr getCommand(Dtk_Size_t pos)
Returns Dtk_KinCommand at position inPos.
Dtk_KinJoint::_part1
Dtk_KinPartPtr _part1
This part is defined at the kinematic part table.
Definition: util_kinematics_dtk.hpp:1276
Dtk_Kinematic::getMechanism
Dtk_KinMechanismPtr getMechanism(Dtk_Size_t pos)
Returns Dtk_KinMechanism at position inPos.
Dtk_KinCommand::_joint
Dtk_KinJointPtr _joint
This joint belongs at the kinematic joint table.
Definition: util_kinematics_dtk.hpp:1491
Dtk_KinJoint::getConstraintSize
Dtk_Size_t getConstraintSize()
Return the attribute tab size.
Dtk_KinNamedValue::_valeur
double _valeur
Definition: util_kinematics_dtk.hpp:263
DTK_SCREW
@ DTK_SCREW
Definition: util_kinematics_dtk.hpp:133
Dtk_Kinematic::_joints
Dtk_KinJointTab _joints
All joints referenced into another object, are defined at this table.
Definition: util_kinematics_dtk.hpp:2087
Dtk_KinCurve::_fileName
Dtk_string _fileName
Definition: util_kinematics_dtk.hpp:2326
Dtk_KinConstraint::getModeInteger
int getModeInteger()
Returns the Dtk_KinParameter represents the mode integer.
Dtk_Kinematic::_mechanisms
Dtk_KinMechanismTab _mechanisms
All mechanisms defined a kinematic.
Definition: util_kinematics_dtk.hpp:2091
KIN_CMD_LENGTH_JOINT2
@ KIN_CMD_LENGTH_JOINT2
Definition: util_kinematics_dtk.hpp:147
Dtk_KinJoint::setPart3
void setPart3(Dtk_KinPartPtr inPart)
Sets the third part associated at the joint.
Dtk_KinConstraint::Dump
Dtk_status Dump(FILE *inFile, Dtk_bool simplified)
Write Dump file for constraint.
Dtk_Kinematic::_parameters
Dtk_KinParameterTab _parameters
Parameter can be used for law.
Definition: util_kinematics_dtk.hpp:2093
Dtk_KinNamedValue::setName
void setName(Dtk_string inName)
Sets the name.
Dtk_KinFixPart::Create
static Dtk_KinFixPartPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinProduct::addProduct
void addProduct(Dtk_KinProductPtr inProduct)
Adds the product.
Dtk_KinCommand::Dump
Dtk_status Dump(FILE *inFile, Dtk_bool simplified)
Write Dump file for command.
Dtk_KinMechanism::DtkDynamicCast
static Dtk_KinMechanism * DtkDynamicCast(Dtk_Object *s)
Performs a dynamic cast - doesn't need RTTI -.
Definition: util_kinematics_dtk.hpp:1656
Dtk_KinFixPart::setConstraint
void setConstraint(Dtk_KinConstraintPtr inConstraint)
Sets the constraint associated to the fixed part.
Dtk_Object::DtkDynamicType
virtual int DtkDynamicType(const int &inId)=0
Dtk_KinJoint::getLowerLimit1
double getLowerLimit1()
Returns the lower limit 1.
Dtk_Kinematic::addParameter
void addParameter(Dtk_KinParameterPtr inParameter)
Add inParameter at the parameter table.
Dtk_Kinematic::getPartPosition
int getPartPosition(Dtk_KinPartPtr inPart)
Returns the position of the part.
DTK_KIN_TYPE_COMMAND
@ DTK_KIN_TYPE_COMMAND
Definition: util_kinematics_dtk.hpp:110
Dtk_KinParameter::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:282
Dtk_KinSpeedAcceleration::_refProd
Dtk_KinPartPtr _refProd
Definition: util_kinematics_dtk.hpp:2728
Dtk_KinJoint::_upperlimit2
double _upperlimit2
Optional attribute.
Definition: util_kinematics_dtk.hpp:1311
Dtk_KinJoint::addAttribute
void addAttribute(Dtk_string inAttribute)
Add inAttribute at the attribute table.
Dtk_KinMechanism::hasCommand
Dtk_bool hasCommand(Dtk_KinCommandPtr inCmd)
Test if the command belong at command table.
Dtk_KinConstraint::operator==
Dtk_bool operator==(Dtk_KinConstraint &inConstraint)
Test if 2 Dtk_KinConstraint is equal.
Dtk_KinMechanism::release
static Dtk_KinMechanismPtr release(Dtk_KinMechanismPtr inMechanism)
Delete object.
Dtk_Object
Definition: dtk_object.hpp:8
Dtk_KinParameter::_attributeList
Dtk_StringTab _attributeList
Definition: util_kinematics_dtk.hpp:446
Dtk_Component
This is the Component Class. The Dtk_ComponentPtr object is used as element into an assembly tree....
Definition: dtk_maindoc.hpp:555
Dtk_KinLaw::setParameter
void setParameter(Dtk_KinParameterTab inParamOut)
Sets the parameter table.
Dtk_Kinematic::getConstraintSize
Dtk_Size_t getConstraintSize()
Return the attribute tab size.
Dtk_KinPartPtr
Dtk_ComponentPtr Dtk_KinPartPtr
Definition: util_kinematics_dtk.hpp:80
Dtk_KinParameter::_parentType
DTK_KINEMATIC_TYPE _parentType
Definition: util_kinematics_dtk.hpp:448
dtk_string.hpp
Dtk_KinFormula::Create
static Dtk_KinFormulaPtr Create()
Calls default constructor to allocate a new object.
Dtk_KinJoint::setLocalFrame2
void setLocalFrame2(Dtk_transfo inTransfo)
Sets the local frame 2.
Dtk_KinFormula::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:2136
Dtk_KinJoint::_LOWER_LIMIT1
Dtk_string _LOWER_LIMIT1
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:946
Dtk_KinParameter::getName
Dtk_string getName()
Returns the parameter name.
Dtk_Kinematic::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:1865
Dtk_Kinematic::_commands
Dtk_KinCommandTab _commands
All commands referenced into another object, are defined at this table.
Definition: util_kinematics_dtk.hpp:2089
Dtk_KinParameterTab
Dtk_tab< Dtk_KinParameterPtr > Dtk_KinParameterTab
Definition: util_kinematics_dtk.hpp:88
Dtk_KinJoint::getPart2
Dtk_KinPartPtr getPart2()
Returns the second part associated at the joint.
Dtk_KinFormula::getId
int getId()
Returns the formula id.
Dtk_KinLaw::Create
static Dtk_KinLawPtr Create()
Calls default constructor to allocate a new object.
DTK_CYLINDRICAL
@ DTK_CYLINDRICAL
Definition: util_kinematics_dtk.hpp:127
Dtk_KinParameter::setParentElement
void setParentElement(void *inParent)
Sets the parent element.
Dtk_KinSpeedAcceleration::getPtZ
Dtk_KinParameterPtr getPtZ()
Returns the point Z.
Dtk_KinMechanism::getSpeedAccelerationSize
Dtk_Size_t getSpeedAccelerationSize()
Return the attribute tab size.
Dtk_KinProduct::fileName
Dtk_string & fileName()
\ brief Accessor for the file name attribute
Dtk_KinFormula::~Dtk_KinFormula
~Dtk_KinFormula()
Destructor.
Dtk_KinJoint::getRatio
double getRatio()
Returns the joint ratio value.
Dtk_KinSpeedAcceleration::setCirX
void setCirX(Dtk_KinParameterPtr inParam)
Sets the Cir X.
Dtk_KinJoint::_lowerlimit2
double _lowerlimit2
Optional attribute.
Definition: util_kinematics_dtk.hpp:1313
Dtk_KinJoint::_ratioParm
Dtk_KinParameterPtr _ratioParm
Optional attribute.
Definition: util_kinematics_dtk.hpp:1330
JOINT_TYPE
JOINT_TYPE
Enum for the joints type.
Definition: util_kinematics_dtk.hpp:118
Dtk_KinJoint::setLowerLimit2
void setLowerLimit2(double inVal)
Sets the lower limit for the second parameter of joint.
Dtk_KinSpeedAcceleration::getPtY
Dtk_KinParameterPtr getPtY()
Returns the point Y.
Dtk_KinCurve::getIdBlock
int getIdBlock()
Returns the block id.
Dtk_KinJoint::getLocalFrame2
Dtk_transfo getLocalFrame2()
Returns the local frame 2 value.
Dtk_KinMechanism::addCommand
void addCommand(Dtk_KinCommandPtr inCmd)
Add a command at the command table.
Dtk_KinJoint::getFixTogether
Dtk_KinConstraintPtr getFixTogether()
Returns the fix together constraint.
Dtk_KinParameter::_range
double _range[4]
Optional attribute for KinTime parameter.
Definition: util_kinematics_dtk.hpp:452
Dtk_KinLaw::_curve
Dtk_KinCurveTab _curve
Definition: util_kinematics_dtk.hpp:2494
Dtk_KinCurve::Create
static Dtk_KinCurvePtr Create()
Calls default constructor to allocate a new object.
Dtk_KinSpeedAcceleration::_typeID
@ _typeID
Definition: util_kinematics_dtk.hpp:2516
Dtk_KinMechanism::isEqual
Dtk_bool isEqual(Dtk_KinMechanismPtr inMechanism)
Test if 2 Dtk_KinMechanism is equal.
Dtk_KinNamedValue::getName
Dtk_string getName()
Returns the name of the value.
Dtk_KinMechanism::getName
Dtk_string getName()
Returns the mechanism name.
Dtk_KinParameter::setId
void setId(int inId)
Sets the parameter id.
Dtk_KinFormula::setId
void setId(int inId)
Sets the formula id.
Dtk_KinSpeedAcceleration::operator==
Dtk_bool operator==(Dtk_KinSpeedAcceleration &inSpeed)
Test if 2 Dtk_KinSpeedAcceleration is equal.
Dtk_KinCommand::_type
COMMAND_TYPE _type
Definition: util_kinematics_dtk.hpp:1488
Dtk_KinCommand::setType
void setType(int inType)
Sets the type of the command.
Dtk_KinJoint::setUpperLimit1
void setUpperLimit1(double inVal)
Sets the upper limit for the first parameter of joint.
Dtk_KinFormula::Dtk_KinFormula
Dtk_KinFormula(const Dtk_KinFormula &inFormula)
Copy constructor.
Dtk_KinCommand::getName
Dtk_string getName()
Returns the command name.
Dtk_KinJoint::setName
void setName(Dtk_string inName)
Sets the joint name.
Dtk_KinJoint::setRatio
void setRatio(double inVal)
Sets the ratio value of the joint.
Dtk_KinSpeedAcceleration::getAngularSpeedZ
Dtk_KinParameterPtr getAngularSpeedZ()
Returns the angular speed for Z angle.
Dtk_KinLaw::setName
void setName(Dtk_string inName)
Sets the law name.
Dtk_KinConstraint::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:812
Dtk_StringTab
Dtk_tab< Dtk_string > Dtk_StringTab
Definition: util_kinematics_dtk.hpp:96
Dtk_KinSpeedAcceleration::setLinearSpeed
void setLinearSpeed(Dtk_KinParameterPtr inParam)
Sets the linear speed.
Dtk_KinCommand::operator==
Dtk_bool operator==(Dtk_KinCommand &inCommand)
Test if 2 Dtk_KinCommand are equal.
Dtk_KinJoint::_upperlimit1
double _upperlimit1
Optional attribute.
Definition: util_kinematics_dtk.hpp:1307
Dtk_KinJoint::_fixTogether
Dtk_KinConstraintPtr _fixTogether
Optional attribute only with rigid joint. This constaint is defined at the kinematic constraint table...
Definition: util_kinematics_dtk.hpp:1301
Dtk_KinCurve
Dtk_KinCurve represents a curve associated at a law.
Definition: util_kinematics_dtk.hpp:2227
Dtk_KinFixPart::Dump
Dtk_status Dump(FILE *inFile)
Write Dump file for fix part.
Dtk_KinSpeedAcceleration::setLinearSpeedY
void setLinearSpeedY(Dtk_KinParameterPtr inParam)
Sets the linear speed for Y axis.
Dtk_KinCurve::_typeEntity
Dtk_tab< type_detk > _typeEntity
Definition: util_kinematics_dtk.hpp:2328
Dtk_Kinematic::getParameterSize
Dtk_Size_t getParameterSize()
Return the parameter tab size.
DTK_KIN_TYPE_MECHANISM
@ DTK_KIN_TYPE_MECHANISM
Definition: util_kinematics_dtk.hpp:111
Dtk_KinNamedValue::~Dtk_KinNamedValue
~Dtk_KinNamedValue()
Destructor.
Dtk_KinSpeedAcceleration::setCirY
void setCirY(Dtk_KinParameterPtr inParam)
Sets the Cir Y.
Dtk_KinFixPart
Dtk_KinFixPart represents the fixed part to simulate the mechanism.
Definition: util_kinematics_dtk.hpp:1503
Dtk_KinFixPart::setPart
void setPart(Dtk_KinPartPtr inPart)
Sets the part fixed.
Dtk_KinMechanism::Transform
Dtk_ErrorStatus Transform(const Dtk_transfo &inTransfo)
Dtk_KinFixPart::setId
void setId(int inId)
Sets the fix part id.
Dtk_KinJoint::setCompoundType
void setCompoundType(int inCompoundtype)
Sets the compound type.
DTK_KIN_TYPE_SPEED_ACCELERATION
@ DTK_KIN_TYPE_SPEED_ACCELERATION
Definition: util_kinematics_dtk.hpp:113
Dtk_KinLaw::setAlgo
void setAlgo(int inAlgo)
Dtk_KinFormula::get_type_detk
type_detk get_type_detk() const
Definition: util_kinematics_dtk.hpp:2154
DTK_GEAR
@ DTK_GEAR
Definition: util_kinematics_dtk.hpp:130
Dtk_KinCommand::_ID
int _ID
Definition: util_kinematics_dtk.hpp:1476
Dtk_KinJoint::setParameter2
void setParameter2(double inParam)
Sets the second parameter of the joint.
Dtk_KinSpeedAcceleration::setAngularSpeedY
void setAngularSpeedY(Dtk_KinParameterPtr inParam)
Sets the angular speed for Y angle.
Dtk_KinCommand::release
static Dtk_KinCommandPtr release(Dtk_KinCommandPtr inCommand)
Delete object.
Dtk_KinConstraint::getAttributeSize
Dtk_Size_t getAttributeSize()
Return the attribute tab size.
DTK_POINT_SURFACE
@ DTK_POINT_SURFACE
Definition: util_kinematics_dtk.hpp:134
DTK_TYPE_KIN_FIXPART
@ DTK_TYPE_KIN_FIXPART
Definition: define.h:544
Dtk_Kinematic::getConstraint
Dtk_KinConstraintPtr getConstraint(Dtk_Size_t pos)
Returns Dtk_KinConstraint at position inPos.
Dtk_KinMechanism::setParamTime
void setParamTime(Dtk_KinParameterPtr inParam)
Sets the time parameter.
Dtk_KinJoint::_localframe3
Dtk_transfo _localframe3
Optional attribute only with compound joint.
Definition: util_kinematics_dtk.hpp:1318
Dtk_KinFormula::setParam
void setParam(Dtk_string inParam)
Sets the formula parameter.
Dtk_KinJoint::_localframe2
Dtk_transfo _localframe2
Definition: util_kinematics_dtk.hpp:1280
dtk_object.hpp
Dtk_KinSpeedAcceleration::getPoint
Dtk_KinConnectorPtr getPoint()
Dtk_KinFixPart::DtkDynamicType
Dtk_Int32 DtkDynamicType(const Dtk_Int32 &inId)
Retrieves the dynamic entity type.
Definition: util_kinematics_dtk.hpp:1529
Dtk_KinFormula::setFormula
void setFormula(Dtk_string inFormula)
Sets the formula.
Dtk_KinMechanism::getSpeedAcceleration
Dtk_KinSpeedAccelerationPtr getSpeedAcceleration(Dtk_Size_t inPos)
Returns Dtk_KinSpeedAcceleration at position inPos.
Dtk_KinJoint::release
static Dtk_KinJointPtr release(Dtk_KinJointPtr inJoint)
Delete object.
Dtk_KinJoint::hasAttribute
Dtk_bool hasAttribute(Dtk_string inAttributeName)
Test if an attribute name belong at the attribute table.
Dtk_KinSpeedAcceleration::getRefProd
Dtk_KinPartPtr getRefProd()
Returns the reference production part.
Dtk_KinSpeedAcceleration::setAngularSpeed
void setAngularSpeed(Dtk_KinParameterPtr inParam)
Sets the angular speed.
Dtk_Kinematic::getMechanismByJoint
Dtk_KinMechanismPtr getMechanismByJoint(Dtk_KinJointPtr inJoint)
Returns the mechanism associated at joint inJoint.
Dtk_KinLaw::getExpression
Dtk_KinFormulaPtr getExpression()
Returns the law expression (formula)
Dtk_KinConstraint::getOrientation
Dtk_KinParameterPtr getOrientation()
Returns the Dtk_KinParameter represents the orientation.
KIN_CMD_ANGLE
@ KIN_CMD_ANGLE
Definition: util_kinematics_dtk.hpp:142
Dtk_KinJoint::_LOCAL_FRAME4
Dtk_string _LOCAL_FRAME4
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:961
Dtk_KinJoint::setUpperLimit2
void setUpperLimit2(double inVal)
Sets the upper limit for the second parameter of joint.
Dtk_KinCurve::_idBlock
int _idBlock
Definition: util_kinematics_dtk.hpp:2327
Dtk_KinCommand::_name
Dtk_string _name
Definition: util_kinematics_dtk.hpp:1475
Dtk_KinCurve::Dump
Dtk_status Dump(FILE *inFile)
Write Dump file for mechanism speed/acceleration.
Dtk_KinCommand::setId
void setId(int inId)
Sets the command id.
Dtk_KinLaw::addParameter
void addParameter(Dtk_KinParameterPtr param)
Add a paramater at the parameter table.
Dtk_KinJoint::_lowerlimit1
double _lowerlimit1
Optional attribute.
Definition: util_kinematics_dtk.hpp:1309
Dtk_KinLaw::~Dtk_KinLaw
~Dtk_KinLaw()
Destructor.
Dtk_KinJoint::_UPPER_LIMIT2
Dtk_string _UPPER_LIMIT2
Name for optional attribute.
Definition: util_kinematics_dtk.hpp:949
DTK_TYPE_KIN_FORMULA
@ DTK_TYPE_KIN_FORMULA
Definition: define.h:547
Dtk_Entity
Definition: util_ent_dtk.hpp:371
Dtk_KinSpeedAcceleration::setPtY
void setPtY(Dtk_KinParameterPtr inParam)
Sets the point Y.
Dtk_KinFormula::getParam
Dtk_string getParam()
Returns the formula parameter.