6 #ifndef CNOID_BODY_PIN_DRAG_IK_H
7 #define CNOID_BODY_PIN_DRAG_IK_H
10 #include "exportdecl.h"
26 void setBaseLink(
Link* baseLink);
27 void setFreeRootWeight(
double translation,
double rotation);
28 void setTargetLink(
Link* targetLink,
bool isAttitudeEnabled =
false);
29 void setJointWeight(
int jointId,
double weight);
31 enum AxisSet { NO_AXES = 0, TRANSLATION_3D = 0x1, ROTATION_3D = 0x2, TRANSFORM_6D = 0x3 };
32 void setPin(
Link* link, AxisSet axes = TRANSLATION_3D,
double weight = 1.0);
33 AxisSet pinAxes(
Link* link);
37 void setIKErrorThresh(
double e);
38 bool hasAnalyticalIK();
39 AxisSet targetAxes()
const;
40 void setSRInverseParameters(
double k0,
double w0);
41 void enableJointRangeConstraints(
bool on);
49 virtual bool calcInverseKinematics(
const Isometry3& T)
override;