HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HOM_ik_Joint.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5 */
6 
7 #ifndef __HOM_ik_Joint_h__
8 #define __HOM_ik_Joint_h__
9 
10 #include "HOM_API.h"
11 #include "HOM_ElemPtr.h"
12 #include "HOM_Module.h"
13 #include "HOM_PtrOrNull.h"
14 #include <string>
15 
16 class HOM_Matrix4;
17 class HOM_Vector3;
18 
19 SWIGOUT(%rename(_ik_Joint) HOM_ik_Joint;)
20 
22 {
23 public:
25  virtual ~HOM_ik_Joint() { HOM_DESTRUCT_OBJECT(this) }
26 
27  virtual bool operator==(HOM_PtrOrNull<HOM_ik_Joint> joint) const = 0;
29  { return !operator==(joint); }
30 
31  virtual int __hash__() const = 0;
32  virtual std::string __repr__() const = 0;
33 
34  SWIGOUT(%newobject worldTransform;)
35  virtual HOM_Matrix4 *worldTransform() const = 0;
36  virtual void setWorldTransform(const HOM_Matrix4 &xform) = 0;
37 
38  // TODO - add child accessor?
39  // TODO - add joint index accessor?
40 
41  SWIGOUT(%newobject parent;)
42  virtual HOM_ik_Joint *parent() const = 0;
43  virtual void setParent(HOM_ik_Joint *parent) = 0;
44 
45  SWIGOUT(%newobject rotationWeights;)
46  virtual HOM_Vector3 *rotationWeights() const = 0;
47  virtual void setRotationWeights(const HOM_Vector3 &weights) = 0;
48 
49  SWIGOUT(%newobject translationWeights;)
50  virtual HOM_Vector3 *translationWeights() const = 0;
51  virtual void setTranslationWeights(const HOM_Vector3 &weights) = 0;
52 
53  virtual double mass() const = 0;
54  virtual void setMass(double mass) = 0;
55 
56  SWIGOUT(%newobject localCenterOfMass;)
57  virtual HOM_Vector3 *localCenterOfMass() const = 0;
58  virtual void setLocalCenterOfMass(const HOM_Vector3 &com) = 0;
59 
60  virtual std::pair<HOM_ElemPtr<HOM_Vector3>, HOM_ElemPtr<HOM_Vector3> >
61  rotationLimits() const = 0;
62  virtual void setRotationLimits(const HOM_Vector3 &lower,
63  const HOM_Vector3 &upper) = 0;
64 
65  virtual std::pair<HOM_ElemPtr<HOM_Vector3>, HOM_ElemPtr<HOM_Vector3> >
66  translationLimits() const = 0;
67  virtual void setTranslationLimits(const HOM_Vector3 &lower,
68  const HOM_Vector3 &upper) = 0;
69 
70  SWIGOUT(%newobject restTransform;)
71  virtual HOM_Matrix4 *restTransform() const = 0;
72  virtual void setRestTransform(const HOM_Matrix4 &xform) = 0;
73 
74  SWIGOUT(%newobject restRotationWeights;)
75  virtual HOM_Vector3 *restRotationWeights() const = 0;
76  virtual void setRestRotationWeights(const HOM_Vector3 &weights) = 0;
77 
78  SWIGOUT(%newobject restTranslationWeights;)
79  virtual HOM_Vector3 *restTranslationWeights() const = 0;
80  virtual void setRestTranslationWeights(const HOM_Vector3 &weights) = 0;
81 };
82 
83 #endif
GLbyte * weights
Definition: glew.h:7551
#define HOM_DESTRUCT_OBJECT(pointer)
Definition: HOM_Module.h:1210
bool operator!=(HOM_PtrOrNull< HOM_ik_Joint > joint) const
Definition: HOM_ik_Joint.h:28
OIIO_API bool rename(string_view from, string_view to, std::string &err)
#define SWIGOUT(x)
Definition: HOM_Defines.h:24
GA_API const UT_StringHolder com
virtual ~HOM_ik_Joint()
Definition: HOM_ik_Joint.h:25
string __repr__(VtArray< T > const &self)
Definition: wrapArray.h:349
#define HOM_API
Definition: HOM_API.h:13
#define HOM_CONSTRUCT_OBJECT(pointer)
Definition: HOM_Module.h:1209
GA_API const UT_StringHolder mass
GLsizei const GLchar *const * string
Definition: glew.h:1844
bool operator==(const Mat3< T0 > &m0, const Mat3< T1 > &m1)
Equality operator, does exact floating point comparisons.
Definition: Mat3.h:549
int __hash__()