int64_t addElement(int64_t environmentHandle, int64_t ikGroupHandle, int64_t tipDummyHandle); std::tuple addElementFromScene(int64_t environmentHandle, int64_t ikGroup, int64_t baseHandle, int64_t tipHandle, int64_t targetHandle, int64_t constraints); std::tuple, std::vector> computeGroupJacobian(int64_t environmentHandle, int64_t ikGroupHandle); std::tuple, std::vector> computeJacobian(int64_t environmentHandle, int64_t baseObject, int64_t lastJoint, int64_t constraints, std::vector tipMatrix, std::optional> targetMatrix = {}, std::optional> constrBaseMatrix = {}); int64_t createDebugOverlay(int64_t environmentHandle, int64_t tipHandle, std::optional baseHandle = {}); int64_t createDummy(int64_t environmentHandle, std::optional dummyName = {}); int64_t createEnvironment(std::optional flags = {}); int64_t createGroup(int64_t environmentHandle, std::optional ikGroupName = {}); int64_t createJoint(int64_t environmentHandle, int64_t jointType, std::optional jointName = {}); bool doesGroupExist(int64_t environmentHandle, std::string ikGroupName); bool doesObjectExist(int64_t environmentHandle, std::string objectName); int64_t duplicateEnvironment(int64_t environmentHandle); void eraseDebugOverlay(int64_t debugObject); void eraseEnvironment(int64_t environmentHandle); void eraseObject(int64_t environmentHandle, int64_t objectHandle); std::vector findConfig(int64_t environmentHandle, int64_t ikGroupHandle, std::vector jointHandles, std::optional thresholdDist = {}, std::optional maxTime = {}, std::optional> metric = {}, std::optional validationCallback = {}, std::optional auxData = {}); std::vector generatePath(int64_t environmentHandle, int64_t ikGroupHandle, std::vector jointHandles, int64_t tipHandle, int64_t pathPointCount, std::optional validationCallback = {}, std::optional auxData = {}); std::vector getAlternateConfigs(int64_t environmentHandle, std::vector jointHandles, std::optional> lowLimits = {}, std::optional> ranges = {}); std::tuple getElementBase(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle); int64_t getElementConstraints(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle); int64_t getElementFlags(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle); std::vector getElementPrecision(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle); std::vector getElementWeights(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle); std::string getFailureDescription(int64_t reason); std::tuple getGroupCalculation(int64_t environmentHandle, int64_t ikGroupHandle); int64_t getGroupFlags(int64_t environmentHandle, int64_t ikGroupHandle); int64_t getGroupHandle(int64_t environmentHandle, std::string ikGroupName); std::tuple, std::vector> getGroupJointLimitHits(int64_t environmentHandle, int64_t ikGroupHandle); std::vector getGroupJoints(int64_t environmentHandle, int64_t ikGroupHandle); std::tuple getJointDependency(int64_t environmentHandle, int64_t jointHandle); std::tuple> getJointInterval(int64_t environmentHandle, int64_t jointHandle); double getJointLimitMargin(int64_t environmentHandle, int64_t jointHandle); std::vector getJointMatrix(int64_t environmentHandle, int64_t jointHandle); double getJointMaxStepSize(int64_t environmentHandle, int64_t jointHandle); int64_t getJointMode(int64_t environmentHandle, int64_t jointHandle); double getJointPosition(int64_t environmentHandle, int64_t jointHandle); double getJointScrewLead(int64_t environmentHandle, int64_t jointHandle); std::tuple, std::vector, std::vector> getJointTransformation(int64_t environmentHandle, int64_t jointHandle); int64_t getJointType(int64_t environmentHandle, int64_t jointHandle); double getJointWeight(int64_t environmentHandle, int64_t jointHandle); int64_t getObjectHandle(int64_t environmentHandle, std::string objectName); std::vector getObjectMatrix(int64_t environmentHandle, int64_t objectHandle, std::optional relativeToObjectHandle = {}); int64_t getObjectParent(int64_t environmentHandle, int64_t objectHandle); std::vector getObjectPose(int64_t environmentHandle, int64_t objectHandle, std::optional relativeToObjectHandle = {}); std::tuple, std::vector, std::vector> getObjectTransformation(int64_t environmentHandle, int64_t objectHandle, std::optional relativeToObjectHandle = {}); int64_t getObjectType(int64_t environmentHandle, int64_t objectHandle); std::tuple getObjects(int64_t environmentHandle, int64_t index); int64_t getTargetDummy(int64_t environmentHandle, int64_t dummyHandle); std::tuple> handleGroup(int64_t environmentHandle, int64_t ikGroup, std::optional options = {}); std::tuple> handleGroups(int64_t environmentHandle, std::vector ikGroups, std::optional options = {}); void load(int64_t environmentHandle, std::string data); std::string save(int64_t environmentHandle); void setElementBase(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle, int64_t baseHandle, std::optional constraintsBaseHandle = {}); void setElementConstraints(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle, int64_t constraints); void setElementFlags(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle, int64_t flags); void setElementPrecision(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle, std::vector precision); void setElementWeights(int64_t environmentHandle, int64_t ikGroupHandle, int64_t elementHandle, std::vector weights); void setGroupCalculation(int64_t environmentHandle, int64_t ikGroupHandle, int64_t method, double damping, int64_t maxIterations); void setGroupFlags(int64_t environmentHandle, int64_t ikGroupHandle, int64_t flags); void setJointDependency(int64_t environmentHandle, int64_t jointHandle, int64_t masterJointHandle, std::optional offset = {}, std::optional mult = {}, std::optional callback = {}); void setJointInterval(int64_t environmentHandle, int64_t jointHandle, bool cyclic, std::optional> interval = {}); void setJointLimitMargin(int64_t environmentHandle, int64_t jointHandle, double margin); void setJointMaxStepSize(int64_t environmentHandle, int64_t jointHandle, double stepSize); void setJointMode(int64_t environmentHandle, int64_t jointHandle, int64_t jointMode); void setJointPosition(int64_t environmentHandle, int64_t jointHandle, double position); void setJointScrewLead(int64_t environmentHandle, int64_t jointHandle, double lead); void setJointWeight(int64_t environmentHandle, int64_t jointHandle, double weight); void setObjectMatrix(int64_t environmentHandle, int64_t objectHandle, std::vector matrix, std::optional relativeToObjectHandle = {}); void setObjectParent(int64_t environmentHandle, int64_t objectHandle, int64_t parentObjectHandle, std::optional keepInPlace = {}); void setObjectPose(int64_t environmentHandle, int64_t objectHandle, std::vector pose, std::optional relativeToObjectHandle = {}); void setObjectTransformation( int64_t environmentHandle, int64_t objectHandle, std::vector position, std::vector eulerOrQuaternion, std::optional relativeToObjectHandle = {}); void setSphericalJointMatrix(int64_t environmentHandle, int64_t jointHandle, std::vector matrix); void setSphericalJointRotation(int64_t environmentHandle, int64_t jointHandle, std::vector eulerOrQuaternion); void setTargetDummy(int64_t environmentHandle, int64_t dummyHandle, int64_t targetDummyHandle); void syncFromSim(int64_t environmentHandle, std::vector ikGroups); void syncToSim(int64_t environmentHandle, std::vector ikGroups);