HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HOM_ik.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_h__
8 #define __HOM_ik_h__
9 
10 #include "HOM_API.h"
11 #include "HOM_Module.h"
12 #include <string>
13 #include <vector>
14 
15 class HOM_ik_Joint;
16 class HOM_ik_Skeleton;
17 class HOM_ik_Target;
18 class HOM_Matrix4;
19 
20 SWIGOUT(%rename(ik) HOM_ik;)
22 {
23 public:
24  virtual ~HOM_ik() = default;
25 
26  virtual std::string __repr__() = 0;
27 
28  SWIGOUT(%kwargs solveFBIK;)
29  virtual void solveFBIK(HOM_ik_Skeleton &skeleton,
30  const std::vector<HOM_ik_Target *> &targets,
31  int iters = 30,
32  double tolerance = SYS_Types<double>::tolerance(),
33  bool pin_root = false) = 0;
34 
35  SWIGOUT(%kwargs solvePhysFBIK;)
36  virtual void solvePhysFBIK(
37  HOM_ik_Skeleton &skeleton,
38  const std::vector<HOM_ik_Target *> &targets,
39  HOM_ik_Target *com_target = nullptr,
40  int iters = 30,
41  double damping = 0.5,
42  double tolerance = SYS_Types<double>::tolerance()) = 0;
43 
44  virtual HOM_ik_Skeleton *_newSkeleton() = 0;
45  virtual HOM_ik_Target *_newTarget(HOM_ik_Joint *joint,
46  const HOM_Matrix4 &goal_transform,
47  const HOM_Matrix4 &joint_offset,
48  const HOM_EnumValue &target_type,
49  double weight,
50  int priority,
51  int depth) = 0;
52 };
53 
54 #endif
GLsizei const GLchar *const * string
Definition: glcorearb.h:814
#define SWIGOUT(x)
Definition: HOM_Defines.h:24
Definition: HOM_ik.h:21
string __repr__(VtArray< T > const &self)
Definition: wrapArray.h:352
#define HOM_API
Definition: HOM_API.h:13
GLint GLint GLsizei GLsizei GLsizei depth
Definition: glcorearb.h:476
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)