//
// This code is generated by csbindgen.
// DON'T CHANGE THIS DIRECTLY.
//
#pragma warning disable CS8981
using System;
using System.Runtime.InteropServices;
namespace CsBindgen
{
internal static unsafe partial class LibBullet3
{
const string __DllName = "libbullet3";
[DllImport(__DllName, EntryPoint = "b3ConnectSharedMemory", CallingConvention = CallingConvention.Cdecl)]
public static extern b3PhysicsClientHandle__* b3ConnectSharedMemory(int key);
[DllImport(__DllName, EntryPoint = "b3ConnectSharedMemory2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3PhysicsClientHandle__* b3ConnectSharedMemory2(int key);
/// think more about naming. Directly execute commands without transport (no shared memory, UDP, socket, grpc etc)
[DllImport(__DllName, EntryPoint = "b3ConnectPhysicsDirect", CallingConvention = CallingConvention.Cdecl)]
public static extern b3PhysicsClientHandle__* b3ConnectPhysicsDirect();
/// b3DisconnectSharedMemory will disconnect the client from the server and cleanup memory.
[DllImport(__DllName, EntryPoint = "b3DisconnectSharedMemory", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3DisconnectSharedMemory(b3PhysicsClientHandle__* physClient);
/// There can only be 1 outstanding command. Check if a command can be send.
[DllImport(__DllName, EntryPoint = "b3CanSubmitCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CanSubmitCommand(b3PhysicsClientHandle__* physClient);
/// blocking submit command and wait for status
[DllImport(__DllName, EntryPoint = "b3SubmitClientCommandAndWaitStatus", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryStatusHandle__* b3SubmitClientCommandAndWaitStatus(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle);
/// In general it is better to use b3SubmitClientCommandAndWaitStatus. b3SubmitClientCommand is a non-blocking submitcommand, which requires checking for the status manually, using b3ProcessServerStatus. Also, before sending thenext command, make sure to check if you can send a command using 'b3CanSubmitCommand'.
[DllImport(__DllName, EntryPoint = "b3SubmitClientCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3SubmitClientCommand(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle);
/// non-blocking check status
[DllImport(__DllName, EntryPoint = "b3ProcessServerStatus", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryStatusHandle__* b3ProcessServerStatus(b3PhysicsClientHandle__* physClient);
/// Get the physics server return status type. See EnumSharedMemoryServerStatus in SharedMemoryPublic.h for error codes.
[DllImport(__DllName, EntryPoint = "b3GetStatusType", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusType(b3SharedMemoryStatusHandle__* statusHandle);
/// Plugin system, load and unload a plugin, execute a command
[DllImport(__DllName, EntryPoint = "b3CreateCustomCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateCustomCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3CustomCommandLoadPlugin", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CustomCommandLoadPlugin(b3SharedMemoryCommandHandle__* commandHandle, byte* pluginPath);
[DllImport(__DllName, EntryPoint = "b3CustomCommandLoadPluginSetPostFix", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CustomCommandLoadPluginSetPostFix(b3SharedMemoryCommandHandle__* commandHandle, byte* postFix);
[DllImport(__DllName, EntryPoint = "b3GetStatusPluginUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusPluginUniqueId(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3GetStatusPluginCommandResult", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusPluginCommandResult(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3GetStatusPluginCommandReturnData", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusPluginCommandReturnData(b3PhysicsClientHandle__* physClient, b3UserDataValue* valueOut);
[DllImport(__DllName, EntryPoint = "b3CustomCommandUnloadPlugin", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CustomCommandUnloadPlugin(b3SharedMemoryCommandHandle__* commandHandle, int pluginUniqueId);
[DllImport(__DllName, EntryPoint = "b3CustomCommandExecutePluginCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CustomCommandExecutePluginCommand(b3SharedMemoryCommandHandle__* commandHandle, int pluginUniqueId, byte* textArguments);
[DllImport(__DllName, EntryPoint = "b3CustomCommandExecuteAddIntArgument", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CustomCommandExecuteAddIntArgument(b3SharedMemoryCommandHandle__* commandHandle, int intVal);
[DllImport(__DllName, EntryPoint = "b3CustomCommandExecuteAddFloatArgument", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CustomCommandExecuteAddFloatArgument(b3SharedMemoryCommandHandle__* commandHandle, float floatVal);
[DllImport(__DllName, EntryPoint = "b3GetStatusBodyIndices", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusBodyIndices(b3SharedMemoryStatusHandle__* statusHandle, int* bodyIndicesOut, int bodyIndicesCapacity);
[DllImport(__DllName, EntryPoint = "b3GetStatusBodyIndex", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusBodyIndex(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3GetStatusActualState", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusActualState(b3SharedMemoryStatusHandle__* statusHandle, int* bodyUniqueId, int* numDegreeOfFreedomQ, int* numDegreeOfFreedomU, double** rootLocalInertialFrame, double** actualStateQ, double** actualStateQdot, double** jointReactionForces);
[DllImport(__DllName, EntryPoint = "b3GetStatusActualState2", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusActualState2(b3SharedMemoryStatusHandle__* statusHandle, int* bodyUniqueId, int* numLinks, int* numDegreeOfFreedomQ, int* numDegreeOfFreedomU, double** rootLocalInertialFrame, double** actualStateQ, double** actualStateQdot, double** jointReactionForces, double** linkLocalInertialFrames, double** jointMotorForces, double** linkStates, double** linkWorldVelocities);
[DllImport(__DllName, EntryPoint = "b3RequestCollisionInfoCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RequestCollisionInfoCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3GetStatusAABB", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusAABB(b3SharedMemoryStatusHandle__* statusHandle, int linkIndex, double* aabbMin, double* aabbMax);
/// If you re-connected to an existing server, or server changed otherwise, sync the body info and user constraints etc.
[DllImport(__DllName, EntryPoint = "b3InitSyncBodyInfoCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitSyncBodyInfoCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitRequestBodyInfoCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestBodyInfoCommand(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3InitRemoveBodyCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRemoveBodyCommand(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
/// return the total number of bodies in the simulation
[DllImport(__DllName, EntryPoint = "b3GetNumBodies", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetNumBodies(b3PhysicsClientHandle__* physClient);
/// return the body unique id, given the index in range [0 , b3GetNumBodies() )
[DllImport(__DllName, EntryPoint = "b3GetBodyUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetBodyUniqueId(b3PhysicsClientHandle__* physClient, int serialIndex);
/// given a body unique id, return the body information. See b3BodyInfo in SharedMemoryPublic.h
[DllImport(__DllName, EntryPoint = "b3GetBodyInfo", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetBodyInfo(b3PhysicsClientHandle__* physClient, int bodyUniqueId, b3BodyInfo* info);
/// give a unique body index (after loading the body) return the number of joints.
[DllImport(__DllName, EntryPoint = "b3GetNumJoints", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetNumJoints(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
/// give a unique body index (after loading the body) return the number of degrees of freedom (DoF).
[DllImport(__DllName, EntryPoint = "b3GetNumDofs", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetNumDofs(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
/// compute the number of degrees of freedom for this body.Return -1 for unsupported spherical joint, -2 for unsupported planar joint.
[DllImport(__DllName, EntryPoint = "b3ComputeDofCount", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ComputeDofCount(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
/// given a body and joint index, return the joint information. See b3JointInfo in SharedMemoryPublic.h
[DllImport(__DllName, EntryPoint = "b3GetJointInfo", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetJointInfo(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int jointIndex, b3JointInfo* info);
/// user data handling
[DllImport(__DllName, EntryPoint = "b3InitSyncUserDataCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitSyncUserDataCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3AddBodyToSyncUserDataRequest", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3AddBodyToSyncUserDataRequest(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3InitAddUserDataCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitAddUserDataCommand(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex, int visualShapeIndex, byte* key, int valueType, int valueLength, void* valueData);
[DllImport(__DllName, EntryPoint = "b3InitRemoveUserDataCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRemoveUserDataCommand(b3PhysicsClientHandle__* physClient, int userDataId);
[DllImport(__DllName, EntryPoint = "b3GetUserData", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetUserData(b3PhysicsClientHandle__* physClient, int userDataId, b3UserDataValue* valueOut);
[DllImport(__DllName, EntryPoint = "b3GetUserDataId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetUserDataId(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex, int visualShapeIndex, byte* key);
[DllImport(__DllName, EntryPoint = "b3GetUserDataIdFromStatus", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetUserDataIdFromStatus(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3GetNumUserData", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetNumUserData(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3GetUserDataInfo", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetUserDataInfo(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int userDataIndex, byte** keyOut, int* userDataIdOut, int* linkIndexOut, int* visualShapeIndexOut);
[DllImport(__DllName, EntryPoint = "b3GetDynamicsInfoCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3GetDynamicsInfoCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex);
[DllImport(__DllName, EntryPoint = "b3GetDynamicsInfoCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3GetDynamicsInfoCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex);
/// given a body unique id and link index, return the dynamics information. See b3DynamicsInfo in SharedMemoryPublic.h
[DllImport(__DllName, EntryPoint = "b3GetDynamicsInfo", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetDynamicsInfo(b3SharedMemoryStatusHandle__* statusHandle, b3DynamicsInfo* info);
[DllImport(__DllName, EntryPoint = "b3InitChangeDynamicsInfo", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitChangeDynamicsInfo(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitChangeDynamicsInfo2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitChangeDynamicsInfo2(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetMass", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetMass(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double mass);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetLocalInertiaDiagonal", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetLocalInertiaDiagonal(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double* localInertiaDiagonal);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetAnisotropicFriction", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetAnisotropicFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double* anisotropicFriction);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetJointLimit", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetJointLimit(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double jointLowerLimit, double jointUpperLimit);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetJointLimitForce", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetJointLimitForce(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double jointLimitForce);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetDynamicType", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetDynamicType(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, int dynamicType);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetSleepThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetSleepThreshold(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double sleepThreshold);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetLateralFriction", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetLateralFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double lateralFriction);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetSpinningFriction", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetSpinningFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double friction);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetRollingFriction", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetRollingFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double friction);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetRestitution", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetRestitution(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double restitution);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetLinearDamping", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetLinearDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double linearDamping);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetAngularDamping", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetAngularDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double angularDamping);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetJointDamping", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetJointDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double jointDamping);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetContactStiffnessAndDamping", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetContactStiffnessAndDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double contactStiffness, double contactDamping);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetFrictionAnchor", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetFrictionAnchor(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, int frictionAnchor);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetCcdSweptSphereRadius", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetCcdSweptSphereRadius(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double ccdSweptSphereRadius);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetContactProcessingThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetContactProcessingThreshold(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double contactProcessingThreshold);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetActivationState", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetActivationState(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int activationState);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetMaxJointVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetMaxJointVelocity(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double maxJointVelocity);
[DllImport(__DllName, EntryPoint = "b3ChangeDynamicsInfoSetCollisionMargin", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3ChangeDynamicsInfoSetCollisionMargin(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double collisionMargin);
[DllImport(__DllName, EntryPoint = "b3InitCreateUserConstraintCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitCreateUserConstraintCommand(b3PhysicsClientHandle__* physClient, int parentBodyUniqueId, int parentJointIndex, int childBodyUniqueId, int childJointIndex, b3JointInfo* info);
[DllImport(__DllName, EntryPoint = "b3InitCreateUserConstraintCommand2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitCreateUserConstraintCommand2(b3SharedMemoryCommandHandle__* commandHandle, int parentBodyUniqueId, int parentJointIndex, int childBodyUniqueId, int childJointIndex, b3JointInfo* info);
/// return a unique id for the user constraint, after successful creation, or -1 for an invalid constraint id
[DllImport(__DllName, EntryPoint = "b3GetStatusUserConstraintUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusUserConstraintUniqueId(b3SharedMemoryStatusHandle__* statusHandle);
/// change parameters of an existing user constraint
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitChangeUserConstraintCommand(b3PhysicsClientHandle__* physClient, int userConstraintUniqueId);
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintSetPivotInB", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitChangeUserConstraintSetPivotInB(b3SharedMemoryCommandHandle__* commandHandle, double* jointChildPivot);
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintSetFrameInB", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitChangeUserConstraintSetFrameInB(b3SharedMemoryCommandHandle__* commandHandle, double* jointChildFrameOrn);
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintSetMaxForce", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitChangeUserConstraintSetMaxForce(b3SharedMemoryCommandHandle__* commandHandle, double maxAppliedForce);
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintSetGearRatio", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitChangeUserConstraintSetGearRatio(b3SharedMemoryCommandHandle__* commandHandle, double gearRatio);
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintSetGearAuxLink", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitChangeUserConstraintSetGearAuxLink(b3SharedMemoryCommandHandle__* commandHandle, int gearAuxLink);
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintSetRelativePositionTarget", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitChangeUserConstraintSetRelativePositionTarget(b3SharedMemoryCommandHandle__* commandHandle, double relativePositionTarget);
[DllImport(__DllName, EntryPoint = "b3InitChangeUserConstraintSetERP", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitChangeUserConstraintSetERP(b3SharedMemoryCommandHandle__* commandHandle, double erp);
[DllImport(__DllName, EntryPoint = "b3InitRemoveUserConstraintCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRemoveUserConstraintCommand(b3PhysicsClientHandle__* physClient, int userConstraintUniqueId);
[DllImport(__DllName, EntryPoint = "b3GetNumUserConstraints", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetNumUserConstraints(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitGetUserConstraintStateCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitGetUserConstraintStateCommand(b3PhysicsClientHandle__* physClient, int constraintUniqueId);
[DllImport(__DllName, EntryPoint = "b3GetStatusUserConstraintState", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusUserConstraintState(b3SharedMemoryStatusHandle__* statusHandle, b3UserConstraintState* constraintState);
[DllImport(__DllName, EntryPoint = "b3GetUserConstraintInfo", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetUserConstraintInfo(b3PhysicsClientHandle__* physClient, int constraintUniqueId, b3UserConstraint* info);
/// return the user constraint id, given the index in range [0 , b3GetNumUserConstraints() )
[DllImport(__DllName, EntryPoint = "b3GetUserConstraintId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetUserConstraintId(b3PhysicsClientHandle__* physClient, int serialIndex);
/// Request physics debug lines for debug visualization. The flags in debugMode are the same as used in BulletSee btIDebugDraw::DebugDrawModes in Bullet/src/LinearMath/btIDebugDraw.h
[DllImport(__DllName, EntryPoint = "b3InitRequestDebugLinesCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestDebugLinesCommand(b3PhysicsClientHandle__* physClient, int debugMode);
/// Get the pointers to the physics debug line information, after b3InitRequestDebugLinesCommand returnsstatus CMD_DEBUG_LINES_COMPLETED
[DllImport(__DllName, EntryPoint = "b3GetDebugLines", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetDebugLines(b3PhysicsClientHandle__* physClient, b3DebugLines* lines);
/// configure the 3D OpenGL debug visualizer (enable/disable GUI widgets, shadows, position camera etc)
[DllImport(__DllName, EntryPoint = "b3InitConfigureOpenGLVisualizer", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitConfigureOpenGLVisualizer(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitConfigureOpenGLVisualizer2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitConfigureOpenGLVisualizer2(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetVisualizationFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetVisualizationFlags(b3SharedMemoryCommandHandle__* commandHandle, int flag, int enabled);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetLightPosition", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetLightPosition(b3SharedMemoryCommandHandle__* commandHandle, float* lightPosition);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetShadowMapResolution", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetShadowMapResolution(b3SharedMemoryCommandHandle__* commandHandle, int shadowMapResolution);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetShadowMapIntensity", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetShadowMapIntensity(b3SharedMemoryCommandHandle__* commandHandle, double shadowMapIntensity);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetLightRgbBackground", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetLightRgbBackground(b3SharedMemoryCommandHandle__* commandHandle, float* rgbBackground);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetShadowMapWorldSize", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetShadowMapWorldSize(b3SharedMemoryCommandHandle__* commandHandle, int shadowMapWorldSize);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetRemoteSyncTransformInterval", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetRemoteSyncTransformInterval(b3SharedMemoryCommandHandle__* commandHandle, double remoteSyncTransformInterval);
[DllImport(__DllName, EntryPoint = "b3ConfigureOpenGLVisualizerSetViewMatrix", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ConfigureOpenGLVisualizerSetViewMatrix(b3SharedMemoryCommandHandle__* commandHandle, float cameraDistance, float cameraPitch, float cameraYaw, float* cameraTargetPosition);
[DllImport(__DllName, EntryPoint = "b3InitRequestOpenGLVisualizerCameraCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestOpenGLVisualizerCameraCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3GetStatusOpenGLVisualizerCamera", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusOpenGLVisualizerCamera(b3SharedMemoryStatusHandle__* statusHandle, b3OpenGLVisualizerCameraInfo* camera);
/// Add/remove user-specific debug lines and debug text messages
[DllImport(__DllName, EntryPoint = "b3InitUserDebugDrawAddLine3D", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawAddLine3D(b3PhysicsClientHandle__* physClient, double* fromXYZ, double* toXYZ, double* colorRGB, double lineWidth, double lifeTime);
[DllImport(__DllName, EntryPoint = "b3InitUserDebugDrawAddPoints3D", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawAddPoints3D(b3PhysicsClientHandle__* physClient, double* positionsXYZ, double* colorsRGB, double pointSize, double lifeTime, int pointNum);
[DllImport(__DllName, EntryPoint = "b3InitUserDebugDrawAddText3D", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawAddText3D(b3PhysicsClientHandle__* physClient, byte* txt, double* positionXYZ, double* colorRGB, double textSize, double lifeTime);
[DllImport(__DllName, EntryPoint = "b3UserDebugTextSetOptionFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UserDebugTextSetOptionFlags(b3SharedMemoryCommandHandle__* commandHandle, int optionFlags);
[DllImport(__DllName, EntryPoint = "b3UserDebugTextSetOrientation", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UserDebugTextSetOrientation(b3SharedMemoryCommandHandle__* commandHandle, double* orientation);
[DllImport(__DllName, EntryPoint = "b3UserDebugItemSetReplaceItemUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UserDebugItemSetReplaceItemUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int replaceItem);
[DllImport(__DllName, EntryPoint = "b3UserDebugItemSetParentObject", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UserDebugItemSetParentObject(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId, int linkIndex);
[DllImport(__DllName, EntryPoint = "b3InitUserDebugAddParameter", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugAddParameter(b3PhysicsClientHandle__* physClient, byte* txt, double rangeMin, double rangeMax, double startValue);
[DllImport(__DllName, EntryPoint = "b3InitUserDebugReadParameter", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugReadParameter(b3PhysicsClientHandle__* physClient, int debugItemUniqueId);
[DllImport(__DllName, EntryPoint = "b3GetStatusDebugParameterValue", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusDebugParameterValue(b3SharedMemoryStatusHandle__* statusHandle, double* paramValue);
[DllImport(__DllName, EntryPoint = "b3InitUserDebugDrawRemove", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawRemove(b3PhysicsClientHandle__* physClient, int debugItemUniqueId);
[DllImport(__DllName, EntryPoint = "b3InitUserDebugDrawRemoveAll", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawRemoveAll(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitUserRemoveAllParameters", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUserRemoveAllParameters(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitDebugDrawingCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitDebugDrawingCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3SetDebugObjectColor", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetDebugObjectColor(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId, int linkIndex, double* objectColorRGB);
[DllImport(__DllName, EntryPoint = "b3RemoveDebugObjectColor", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RemoveDebugObjectColor(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId, int linkIndex);
/// All debug items unique Ids are positive: a negative unique Id means failure.
[DllImport(__DllName, EntryPoint = "b3GetDebugItemUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetDebugItemUniqueId(b3SharedMemoryStatusHandle__* statusHandle);
/// request an image from a simulated camera, using a software renderer.
[DllImport(__DllName, EntryPoint = "b3InitRequestCameraImage", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestCameraImage(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitRequestCameraImage2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestCameraImage2(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetCameraMatrices", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetCameraMatrices(b3SharedMemoryCommandHandle__* commandHandle, float* viewMatrix, float* projectionMatrix);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetPixelResolution", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetPixelResolution(b3SharedMemoryCommandHandle__* commandHandle, int width, int height);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetLightDirection", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetLightDirection(b3SharedMemoryCommandHandle__* commandHandle, float* lightDirection);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetLightColor", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetLightColor(b3SharedMemoryCommandHandle__* commandHandle, float* lightColor);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetLightDistance", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetLightDistance(b3SharedMemoryCommandHandle__* commandHandle, float lightDistance);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetLightAmbientCoeff", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetLightAmbientCoeff(b3SharedMemoryCommandHandle__* commandHandle, float lightAmbientCoeff);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetLightDiffuseCoeff", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetLightDiffuseCoeff(b3SharedMemoryCommandHandle__* commandHandle, float lightDiffuseCoeff);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetLightSpecularCoeff", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetLightSpecularCoeff(b3SharedMemoryCommandHandle__* commandHandle, float lightSpecularCoeff);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetShadow", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetShadow(b3SharedMemoryCommandHandle__* commandHandle, int hasShadow);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSelectRenderer", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSelectRenderer(b3SharedMemoryCommandHandle__* commandHandle, int renderer);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3GetCameraImageData", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetCameraImageData(b3PhysicsClientHandle__* physClient, b3CameraImageData* imageData);
/// set projective texture camera matrices.
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetProjectiveTextureMatrices", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetProjectiveTextureMatrices(b3SharedMemoryCommandHandle__* commandHandle, float* viewMatrix, float* projectionMatrix);
/// compute a view matrix, helper function for b3RequestCameraImageSetCameraMatrices
[DllImport(__DllName, EntryPoint = "b3ComputeViewMatrixFromPositions", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ComputeViewMatrixFromPositions(float* cameraPosition, float* cameraTargetPosition, float* cameraUp, float* viewMatrix);
[DllImport(__DllName, EntryPoint = "b3ComputeViewMatrixFromYawPitchRoll", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ComputeViewMatrixFromYawPitchRoll(float* cameraTargetPosition, float distance, float yaw, float pitch, float roll, int upAxis, float* viewMatrix);
[DllImport(__DllName, EntryPoint = "b3ComputePositionFromViewMatrix", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ComputePositionFromViewMatrix(float* viewMatrix, float* cameraPosition, float* cameraTargetPosition, float* cameraUp);
/// compute a projection matrix, helper function for b3RequestCameraImageSetCameraMatrices
[DllImport(__DllName, EntryPoint = "b3ComputeProjectionMatrix", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ComputeProjectionMatrix(float left, float right, float bottom, float top, float nearVal, float farVal, float* projectionMatrix);
[DllImport(__DllName, EntryPoint = "b3ComputeProjectionMatrixFOV", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ComputeProjectionMatrixFOV(float fov, float aspect, float nearVal, float farVal, float* projectionMatrix);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetViewMatrix", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetViewMatrix(b3SharedMemoryCommandHandle__* commandHandle, float* cameraPosition, float* cameraTargetPosition, float* cameraUp);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetViewMatrix2", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetViewMatrix2(b3SharedMemoryCommandHandle__* commandHandle, float* cameraTargetPosition, float distance, float yaw, float pitch, float roll, int upAxis);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetProjectionMatrix", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetProjectionMatrix(b3SharedMemoryCommandHandle__* commandHandle, float left, float right, float bottom, float top, float nearVal, float farVal);
[DllImport(__DllName, EntryPoint = "b3RequestCameraImageSetFOVProjectionMatrix", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RequestCameraImageSetFOVProjectionMatrix(b3SharedMemoryCommandHandle__* commandHandle, float fov, float aspect, float nearVal, float farVal);
/// request an contact point information
[DllImport(__DllName, EntryPoint = "b3InitRequestContactPointInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestContactPointInformation(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3SetContactFilterBodyA", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetContactFilterBodyA(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA);
[DllImport(__DllName, EntryPoint = "b3SetContactFilterBodyB", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetContactFilterBodyB(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdB);
[DllImport(__DllName, EntryPoint = "b3SetContactFilterLinkA", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetContactFilterLinkA(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexA);
[DllImport(__DllName, EntryPoint = "b3SetContactFilterLinkB", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetContactFilterLinkB(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexB);
[DllImport(__DllName, EntryPoint = "b3GetContactPointInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetContactPointInformation(b3PhysicsClientHandle__* physClient, b3ContactInformation* contactPointData);
/// compute the closest points between two bodies
[DllImport(__DllName, EntryPoint = "b3InitClosestDistanceQuery", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitClosestDistanceQuery(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterBodyA", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterBodyA(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterLinkA", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterLinkA(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexA);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterBodyB", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterBodyB(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdB);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterLinkB", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterLinkB(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexB);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceThreshold(b3SharedMemoryCommandHandle__* commandHandle, double distance);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterCollisionShapeA", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterCollisionShapeA(b3SharedMemoryCommandHandle__* commandHandle, int collisionShapeA);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterCollisionShapeB", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterCollisionShapeB(b3SharedMemoryCommandHandle__* commandHandle, int collisionShapeB);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterCollisionShapePositionA", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterCollisionShapePositionA(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapePositionA);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterCollisionShapePositionB", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterCollisionShapePositionB(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapePositionB);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterCollisionShapeOrientationA", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterCollisionShapeOrientationA(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapeOrientationA);
[DllImport(__DllName, EntryPoint = "b3SetClosestDistanceFilterCollisionShapeOrientationB", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetClosestDistanceFilterCollisionShapeOrientationB(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapeOrientationB);
[DllImport(__DllName, EntryPoint = "b3GetClosestPointInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetClosestPointInformation(b3PhysicsClientHandle__* physClient, b3ContactInformation* contactPointInfo);
/// get all the bodies that touch a given axis aligned bounding box specified in world space (min and max coordinates)
[DllImport(__DllName, EntryPoint = "b3InitAABBOverlapQuery", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitAABBOverlapQuery(b3PhysicsClientHandle__* physClient, double* aabbMin, double* aabbMax);
[DllImport(__DllName, EntryPoint = "b3GetAABBOverlapResults", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetAABBOverlapResults(b3PhysicsClientHandle__* physClient, b3AABBOverlapData* data);
[DllImport(__DllName, EntryPoint = "b3InitRequestVisualShapeInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestVisualShapeInformation(b3PhysicsClientHandle__* physClient, int bodyUniqueIdA);
[DllImport(__DllName, EntryPoint = "b3GetVisualShapeInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetVisualShapeInformation(b3PhysicsClientHandle__* physClient, b3VisualShapeInformation* visualShapeInfo);
[DllImport(__DllName, EntryPoint = "b3InitRequestCollisionShapeInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestCollisionShapeInformation(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex);
[DllImport(__DllName, EntryPoint = "b3GetCollisionShapeInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetCollisionShapeInformation(b3PhysicsClientHandle__* physClient, b3CollisionShapeInformation* collisionShapeInfo);
[DllImport(__DllName, EntryPoint = "b3InitLoadTexture", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitLoadTexture(b3PhysicsClientHandle__* physClient, byte* filename);
[DllImport(__DllName, EntryPoint = "b3GetStatusTextureUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusTextureUniqueId(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3CreateChangeTextureCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateChangeTextureCommandInit(b3PhysicsClientHandle__* physClient, int textureUniqueId, int width, int height, byte* rgbPixels);
[DllImport(__DllName, EntryPoint = "b3InitUpdateVisualShape", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUpdateVisualShape(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int jointIndex, int shapeIndex, int textureUniqueId);
[DllImport(__DllName, EntryPoint = "b3InitUpdateVisualShape2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitUpdateVisualShape2(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int jointIndex, int shapeIndex);
[DllImport(__DllName, EntryPoint = "b3UpdateVisualShapeTexture", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UpdateVisualShapeTexture(b3SharedMemoryCommandHandle__* commandHandle, int textureUniqueId);
[DllImport(__DllName, EntryPoint = "b3UpdateVisualShapeRGBAColor", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UpdateVisualShapeRGBAColor(b3SharedMemoryCommandHandle__* commandHandle, double* rgbaColor);
[DllImport(__DllName, EntryPoint = "b3UpdateVisualShapeFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UpdateVisualShapeFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3UpdateVisualShapeSpecularColor", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3UpdateVisualShapeSpecularColor(b3SharedMemoryCommandHandle__* commandHandle, double* specularColor);
[DllImport(__DllName, EntryPoint = "b3InitPhysicsParamCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitPhysicsParamCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitPhysicsParamCommand2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitPhysicsParamCommand2(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetGravity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetGravity(b3SharedMemoryCommandHandle__* commandHandle, double gravx, double gravy, double gravz);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetTimeStep", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetTimeStep(b3SharedMemoryCommandHandle__* commandHandle, double timeStep);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetDefaultContactERP", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetDefaultContactERP(b3SharedMemoryCommandHandle__* commandHandle, double defaultContactERP);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetDefaultNonContactERP", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetDefaultNonContactERP(b3SharedMemoryCommandHandle__* commandHandle, double defaultNonContactERP);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetDefaultFrictionERP", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetDefaultFrictionERP(b3SharedMemoryCommandHandle__* commandHandle, double frictionERP);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetDefaultGlobalCFM", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetDefaultGlobalCFM(b3SharedMemoryCommandHandle__* commandHandle, double defaultGlobalCFM);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetDefaultFrictionCFM", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetDefaultFrictionCFM(b3SharedMemoryCommandHandle__* commandHandle, double frictionCFM);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetNumSubSteps", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetNumSubSteps(b3SharedMemoryCommandHandle__* commandHandle, int numSubSteps);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetRealTimeSimulation", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetRealTimeSimulation(b3SharedMemoryCommandHandle__* commandHandle, int enableRealTimeSimulation);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetNumSolverIterations", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetNumSolverIterations(b3SharedMemoryCommandHandle__* commandHandle, int numSolverIterations);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetNumNonContactInnerIterations", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetNumNonContactInnerIterations(b3SharedMemoryCommandHandle__* commandHandle, int numMotorIterations);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetWarmStartingFactor", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetWarmStartingFactor(b3SharedMemoryCommandHandle__* commandHandle, double warmStartingFactor);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetArticulatedWarmStartingFactor", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetArticulatedWarmStartingFactor(b3SharedMemoryCommandHandle__* commandHandle, double warmStartingFactor);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetCollisionFilterMode", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetCollisionFilterMode(b3SharedMemoryCommandHandle__* commandHandle, int filterMode);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetUseSplitImpulse", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetUseSplitImpulse(b3SharedMemoryCommandHandle__* commandHandle, int useSplitImpulse);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetSplitImpulsePenetrationThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetSplitImpulsePenetrationThreshold(b3SharedMemoryCommandHandle__* commandHandle, double splitImpulsePenetrationThreshold);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetContactBreakingThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetContactBreakingThreshold(b3SharedMemoryCommandHandle__* commandHandle, double contactBreakingThreshold);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetMaxNumCommandsPer1ms", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetMaxNumCommandsPer1ms(b3SharedMemoryCommandHandle__* commandHandle, int maxNumCmdPer1ms);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetEnableFileCaching", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetEnableFileCaching(b3SharedMemoryCommandHandle__* commandHandle, int enableFileCaching);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetRestitutionVelocityThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetRestitutionVelocityThreshold(b3SharedMemoryCommandHandle__* commandHandle, double restitutionVelocityThreshold);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetEnableConeFriction", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetEnableConeFriction(b3SharedMemoryCommandHandle__* commandHandle, int enableConeFriction);
[DllImport(__DllName, EntryPoint = "b3PhysicsParameterSetDeterministicOverlappingPairs", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParameterSetDeterministicOverlappingPairs(b3SharedMemoryCommandHandle__* commandHandle, int deterministicOverlappingPairs);
[DllImport(__DllName, EntryPoint = "b3PhysicsParameterSetAllowedCcdPenetration", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParameterSetAllowedCcdPenetration(b3SharedMemoryCommandHandle__* commandHandle, double allowedCcdPenetration);
[DllImport(__DllName, EntryPoint = "b3PhysicsParameterSetJointFeedbackMode", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParameterSetJointFeedbackMode(b3SharedMemoryCommandHandle__* commandHandle, int jointFeedbackMode);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetSolverResidualThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetSolverResidualThreshold(b3SharedMemoryCommandHandle__* commandHandle, double solverResidualThreshold);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetContactSlop", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetContactSlop(b3SharedMemoryCommandHandle__* commandHandle, double contactSlop);
[DllImport(__DllName, EntryPoint = "b3PhysicsParameterSetEnableSAT", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParameterSetEnableSAT(b3SharedMemoryCommandHandle__* commandHandle, int enableSAT);
[DllImport(__DllName, EntryPoint = "b3PhysicsParameterSetConstraintSolverType", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParameterSetConstraintSolverType(b3SharedMemoryCommandHandle__* commandHandle, int constraintSolverType);
[DllImport(__DllName, EntryPoint = "b3PhysicsParameterSetMinimumSolverIslandSize", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParameterSetMinimumSolverIslandSize(b3SharedMemoryCommandHandle__* commandHandle, int minimumSolverIslandSize);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetSolverAnalytics", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetSolverAnalytics(b3SharedMemoryCommandHandle__* commandHandle, int reportSolverAnalytics);
[DllImport(__DllName, EntryPoint = "b3PhysicsParameterSetSparseSdfVoxelSize", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParameterSetSparseSdfVoxelSize(b3SharedMemoryCommandHandle__* commandHandle, double sparseSdfVoxelSize);
[DllImport(__DllName, EntryPoint = "b3InitRequestPhysicsParamCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRequestPhysicsParamCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3GetStatusPhysicsSimulationParameters", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusPhysicsSimulationParameters(b3SharedMemoryStatusHandle__* statusHandle, b3PhysicsSimulationParameters* @params);
[DllImport(__DllName, EntryPoint = "b3PhysicsParamSetInternalSimFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3PhysicsParamSetInternalSimFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3InitStepSimulationCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitStepSimulationCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitStepSimulationCommand2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitStepSimulationCommand2(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3InitPerformCollisionDetectionCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitPerformCollisionDetectionCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3GetStatusForwardDynamicsAnalyticsData", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusForwardDynamicsAnalyticsData(b3SharedMemoryStatusHandle__* statusHandle, b3ForwardDynamicsAnalyticsArgs* analyticsData);
[DllImport(__DllName, EntryPoint = "b3InitResetSimulationCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitResetSimulationCommand(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitResetSimulationCommand2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitResetSimulationCommand2(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3InitResetSimulationSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3InitResetSimulationSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
/// Load a robot from a URDF file. Status type will CMD_URDF_LOADING_COMPLETED.Access the robot from the unique body index, through b3GetStatusBodyIndex(statusHandle);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadUrdfCommandInit(b3PhysicsClientHandle__* physClient, byte* urdfFileName);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadUrdfCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, byte* urdfFileName);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandSetStartPosition", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadUrdfCommandSetStartPosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandSetStartOrientation", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadUrdfCommandSetStartOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandSetUseMultiBody", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadUrdfCommandSetUseMultiBody(b3SharedMemoryCommandHandle__* commandHandle, int useMultiBody);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandSetUseFixedBase", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadUrdfCommandSetUseFixedBase(b3SharedMemoryCommandHandle__* commandHandle, int useFixedBase);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadUrdfCommandSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3LoadUrdfCommandSetGlobalScaling", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadUrdfCommandSetGlobalScaling(b3SharedMemoryCommandHandle__* commandHandle, double globalScaling);
[DllImport(__DllName, EntryPoint = "b3SaveStateCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3SaveStateCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3InitRemoveStateCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRemoveStateCommand(b3PhysicsClientHandle__* physClient, int stateId);
[DllImport(__DllName, EntryPoint = "b3GetStatusGetStateId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusGetStateId(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3LoadStateCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadStateCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3LoadStateSetStateId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadStateSetStateId(b3SharedMemoryCommandHandle__* commandHandle, int stateId);
[DllImport(__DllName, EntryPoint = "b3LoadStateSetFileName", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadStateSetFileName(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName);
[DllImport(__DllName, EntryPoint = "b3LoadBulletCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadBulletCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName);
[DllImport(__DllName, EntryPoint = "b3SaveBulletCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3SaveBulletCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName);
[DllImport(__DllName, EntryPoint = "b3LoadMJCFCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadMJCFCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName);
[DllImport(__DllName, EntryPoint = "b3LoadMJCFCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadMJCFCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName);
[DllImport(__DllName, EntryPoint = "b3LoadMJCFCommandSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3LoadMJCFCommandSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3LoadMJCFCommandSetUseMultiBody", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3LoadMJCFCommandSetUseMultiBody(b3SharedMemoryCommandHandle__* commandHandle, int useMultiBody);
/// compute the forces to achieve an acceleration, given a state q and qdot using inverse dynamics
[DllImport(__DllName, EntryPoint = "b3CalculateInverseDynamicsCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CalculateInverseDynamicsCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, double* jointPositionsQ, double* jointVelocitiesQdot, double* jointAccelerations);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseDynamicsCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CalculateInverseDynamicsCommandInit2(b3PhysicsClientHandle__* physClient, int bodyUniqueId, double* jointPositionsQ, int dofCountQ, double* jointVelocitiesQdot, double* jointAccelerations, int dofCountQdot);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseDynamicsSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseDynamicsSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3GetStatusInverseDynamicsJointForces", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusInverseDynamicsJointForces(b3SharedMemoryStatusHandle__* statusHandle, int* bodyUniqueId, int* dofCount, double* jointForces);
[DllImport(__DllName, EntryPoint = "b3CalculateJacobianCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CalculateJacobianCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex, double* localPosition, double* jointPositionsQ, double* jointVelocitiesQdot, double* jointAccelerations);
[DllImport(__DllName, EntryPoint = "b3GetStatusJacobian", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusJacobian(b3SharedMemoryStatusHandle__* statusHandle, int* dofCount, double* linearJacobian, double* angularJacobian);
[DllImport(__DllName, EntryPoint = "b3CalculateMassMatrixCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CalculateMassMatrixCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, double* jointPositionsQ, int dofCountQ);
[DllImport(__DllName, EntryPoint = "b3CalculateMassMatrixSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateMassMatrixSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
/// the mass matrix is stored in column-major layout of size dofCount*dofCount
[DllImport(__DllName, EntryPoint = "b3GetStatusMassMatrix", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusMassMatrix(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int* dofCount, double* massMatrix);
/// compute the joint positions to move the end effector to a desired target using inverse kinematics
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CalculateInverseKinematicsCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsAddTargetPurePosition", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsAddTargetPurePosition(b3SharedMemoryCommandHandle__* commandHandle, int endEffectorLinkIndex, double* targetPosition);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsAddTargetsPurePosition", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsAddTargetsPurePosition(b3SharedMemoryCommandHandle__* commandHandle, int numEndEffectorLinkIndices, int* endEffectorIndices, double* targetPositions);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsAddTargetPositionWithOrientation", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsAddTargetPositionWithOrientation(b3SharedMemoryCommandHandle__* commandHandle, int endEffectorLinkIndex, double* targetPosition, double* targetOrientation);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsPosWithNullSpaceVel", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsPosWithNullSpaceVel(b3SharedMemoryCommandHandle__* commandHandle, int numDof, int endEffectorLinkIndex, double* targetPosition, double* lowerLimit, double* upperLimit, double* jointRange, double* restPose);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsPosOrnWithNullSpaceVel", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsPosOrnWithNullSpaceVel(b3SharedMemoryCommandHandle__* commandHandle, int numDof, int endEffectorLinkIndex, double* targetPosition, double* targetOrientation, double* lowerLimit, double* upperLimit, double* jointRange, double* restPose);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsSetJointDamping", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsSetJointDamping(b3SharedMemoryCommandHandle__* commandHandle, int numDof, double* jointDampingCoeff);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsSelectSolver", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsSelectSolver(b3SharedMemoryCommandHandle__* commandHandle, int solver);
[DllImport(__DllName, EntryPoint = "b3GetStatusInverseKinematicsJointPositions", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusInverseKinematicsJointPositions(b3SharedMemoryStatusHandle__* statusHandle, int* bodyUniqueId, int* dofCount, double* jointPositions);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsSetCurrentPositions", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsSetCurrentPositions(b3SharedMemoryCommandHandle__* commandHandle, int numDof, double* currentJointPositions);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsSetMaxNumIterations", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsSetMaxNumIterations(b3SharedMemoryCommandHandle__* commandHandle, int maxNumIterations);
[DllImport(__DllName, EntryPoint = "b3CalculateInverseKinematicsSetResidualThreshold", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateInverseKinematicsSetResidualThreshold(b3SharedMemoryCommandHandle__* commandHandle, double residualThreshold);
[DllImport(__DllName, EntryPoint = "b3CollisionFilterCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CollisionFilterCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3SetCollisionFilterPair", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetCollisionFilterPair(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA, int bodyUniqueIdB, int linkIndexA, int linkIndexB, int enableCollision);
[DllImport(__DllName, EntryPoint = "b3SetCollisionFilterGroupMask", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetCollisionFilterGroupMask(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA, int linkIndexA, int collisionFilterGroup, int collisionFilterMask);
[DllImport(__DllName, EntryPoint = "b3LoadSdfCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadSdfCommandInit(b3PhysicsClientHandle__* physClient, byte* sdfFileName);
[DllImport(__DllName, EntryPoint = "b3LoadSdfCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadSdfCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, byte* sdfFileName);
[DllImport(__DllName, EntryPoint = "b3LoadSdfCommandSetUseMultiBody", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSdfCommandSetUseMultiBody(b3SharedMemoryCommandHandle__* commandHandle, int useMultiBody);
[DllImport(__DllName, EntryPoint = "b3LoadSdfCommandSetUseGlobalScaling", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSdfCommandSetUseGlobalScaling(b3SharedMemoryCommandHandle__* commandHandle, double globalScaling);
[DllImport(__DllName, EntryPoint = "b3SaveWorldCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3SaveWorldCommandInit(b3PhysicsClientHandle__* physClient, byte* sdfFileName);
/// The b3JointControlCommandInit method is obsolete, use b3JointControlCommandInit2 instead
[DllImport(__DllName, EntryPoint = "b3JointControlCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3JointControlCommandInit(b3PhysicsClientHandle__* physClient, int controlMode);
/// Set joint motor control variables such as desired position/angle, desired velocity,applied joint forces, dependent on the control mode (CONTROL_MODE_VELOCITY or CONTROL_MODE_TORQUE)
[DllImport(__DllName, EntryPoint = "b3JointControlCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3JointControlCommandInit2(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int controlMode);
[DllImport(__DllName, EntryPoint = "b3JointControlCommandInit2Internal", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3JointControlCommandInit2Internal(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int controlMode);
/// Only use when controlMode is CONTROL_MODE_POSITION_VELOCITY_PD
[DllImport(__DllName, EntryPoint = "b3JointControlSetDesiredPosition", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDesiredPosition(b3SharedMemoryCommandHandle__* commandHandle, int qIndex, double value);
[DllImport(__DllName, EntryPoint = "b3JointControlSetDesiredPositionMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDesiredPositionMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int qIndex, double* position, int dofCount);
[DllImport(__DllName, EntryPoint = "b3JointControlSetKp", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetKp(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value);
[DllImport(__DllName, EntryPoint = "b3JointControlSetKpMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetKpMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* kps, int dofCount);
[DllImport(__DllName, EntryPoint = "b3JointControlSetKd", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetKd(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value);
[DllImport(__DllName, EntryPoint = "b3JointControlSetKdMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetKdMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* kds, int dofCount);
[DllImport(__DllName, EntryPoint = "b3JointControlSetMaximumVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetMaximumVelocity(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double maximumVelocity);
/// Only use when controlMode is CONTROL_MODE_VELOCITY
[DllImport(__DllName, EntryPoint = "b3JointControlSetDesiredVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDesiredVelocity(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value);
[DllImport(__DllName, EntryPoint = "b3JointControlSetDesiredVelocityMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDesiredVelocityMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* velocity, int dofCount);
[DllImport(__DllName, EntryPoint = "b3JointControlSetDesiredVelocityMultiDof2", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDesiredVelocityMultiDof2(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* velocity, int dofCount);
[DllImport(__DllName, EntryPoint = "b3JointControlSetMaximumForce", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetMaximumForce(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value);
[DllImport(__DllName, EntryPoint = "b3JointControlSetDesiredForceTorqueMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDesiredForceTorqueMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* forces, int dofCount);
[DllImport(__DllName, EntryPoint = "b3JointControlSetDamping", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDamping(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value);
[DllImport(__DllName, EntryPoint = "b3JointControlSetDampingMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDampingMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* damping, int dofCount);
/// Only use if when controlMode is CONTROL_MODE_TORQUE,
[DllImport(__DllName, EntryPoint = "b3JointControlSetDesiredForceTorque", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3JointControlSetDesiredForceTorque(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value);
/// the creation of collision shapes and rigid bodies etc is likely going to change,but good to have a b3CreateBoxShapeCommandInit for now
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateCollisionShapeCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddSphere", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddSphere(b3SharedMemoryCommandHandle__* commandHandle, double radius);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddBox", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddBox(b3SharedMemoryCommandHandle__* commandHandle, double* halfExtents);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddCapsule", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddCapsule(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddCylinder", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddCylinder(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddHeightfield", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddHeightfield(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName, double* meshScale, double textureScaling);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddHeightfield2", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddHeightfield2(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* meshScale, double textureScaling, float* heightfieldData, int numHeightfieldRows, int numHeightfieldColumns, int replaceHeightfieldIndex);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddPlane", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddPlane(b3SharedMemoryCommandHandle__* commandHandle, double* planeNormal, double planeConstant);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddMesh", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddMesh(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName, double* meshScale);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddConvexMesh", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddConvexMesh(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* meshScale, double* vertices, int numVertices);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeAddConcaveMesh", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateCollisionShapeAddConcaveMesh(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* meshScale, double* vertices, int numVertices, int* indices, int numIndices);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionSetFlag", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateCollisionSetFlag(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, int flags);
[DllImport(__DllName, EntryPoint = "b3CreateCollisionShapeSetChildTransform", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateCollisionShapeSetChildTransform(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* childPosition, double* childOrientation);
[DllImport(__DllName, EntryPoint = "b3GetStatusCollisionShapeUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusCollisionShapeUniqueId(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3InitRemoveCollisionShapeCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitRemoveCollisionShapeCommand(b3PhysicsClientHandle__* physClient, int collisionShapeId);
[DllImport(__DllName, EntryPoint = "b3GetMeshDataCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3GetMeshDataCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex);
[DllImport(__DllName, EntryPoint = "b3GetTetraMeshDataCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3GetTetraMeshDataCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3GetMeshDataSimulationMesh", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetMeshDataSimulationMesh(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3MeshDataSimulationMeshVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3MeshDataSimulationMeshVelocity(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3GetMeshDataSetCollisionShapeIndex", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetMeshDataSetCollisionShapeIndex(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex);
[DllImport(__DllName, EntryPoint = "b3GetMeshDataSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetMeshDataSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3GetTetraMeshDataSetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetTetraMeshDataSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
[DllImport(__DllName, EntryPoint = "b3GetMeshData", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetMeshData(b3PhysicsClientHandle__* physClient, b3MeshData* meshData);
[DllImport(__DllName, EntryPoint = "b3GetTetraMeshData", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetTetraMeshData(b3PhysicsClientHandle__* physClient, b3TetraMeshData* meshData);
[DllImport(__DllName, EntryPoint = "b3ResetMeshDataCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3ResetMeshDataCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int num_vertices, double* vertices);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateVisualShapeCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeAddSphere", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateVisualShapeAddSphere(b3SharedMemoryCommandHandle__* commandHandle, double radius);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeAddBox", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateVisualShapeAddBox(b3SharedMemoryCommandHandle__* commandHandle, double* halfExtents);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeAddCapsule", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateVisualShapeAddCapsule(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeAddCylinder", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateVisualShapeAddCylinder(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeAddPlane", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateVisualShapeAddPlane(b3SharedMemoryCommandHandle__* commandHandle, double* planeNormal, double planeConstant);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeAddMesh", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateVisualShapeAddMesh(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName, double* meshScale);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeAddMesh2", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateVisualShapeAddMesh2(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* meshScale, double* vertices, int numVertices, int* indices, int numIndices, double* normals, int numNormals, double* uvs, int numUVs);
[DllImport(__DllName, EntryPoint = "b3CreateVisualSetFlag", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateVisualSetFlag(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, int flags);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeSetChildTransform", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateVisualShapeSetChildTransform(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* childPosition, double* childOrientation);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeSetSpecularColor", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateVisualShapeSetSpecularColor(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* specularColor);
[DllImport(__DllName, EntryPoint = "b3CreateVisualShapeSetRGBAColor", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateVisualShapeSetRGBAColor(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* rgbaColor);
[DllImport(__DllName, EntryPoint = "b3GetStatusVisualShapeUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusVisualShapeUniqueId(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3CreateMultiBodyCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateMultiBodyCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3CreateMultiBodyBase", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateMultiBodyBase(b3SharedMemoryCommandHandle__* commandHandle, double mass, int collisionShapeUnique, int visualShapeUniqueId, double* basePosition, double* baseOrientation, double* baseInertialFramePosition, double* baseInertialFrameOrientation);
[DllImport(__DllName, EntryPoint = "b3CreateMultiBodyLink", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateMultiBodyLink(b3SharedMemoryCommandHandle__* commandHandle, double linkMass, double linkCollisionShapeIndex, double linkVisualShapeIndex, double* linkPosition, double* linkOrientation, double* linkInertialFramePosition, double* linkInertialFrameOrientation, int linkParentIndex, int linkJointType, double* linkJointAxis);
[DllImport(__DllName, EntryPoint = "b3CreateMultiBodySetBatchPositions", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateMultiBodySetBatchPositions(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* batchPositions, int numBatchObjects);
[DllImport(__DllName, EntryPoint = "b3CreateMultiBodyUseMaximalCoordinates", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateMultiBodyUseMaximalCoordinates(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3CreateMultiBodySetFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CreateMultiBodySetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags);
/// create a box of size (1,1,1) at world origin (0,0,0) at orientation quat (0,0,0,1)after that, you can optionally adjust the initial position, orientation and size
[DllImport(__DllName, EntryPoint = "b3CreateBoxShapeCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateBoxShapeCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3CreateBoxCommandSetStartPosition", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateBoxCommandSetStartPosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ);
[DllImport(__DllName, EntryPoint = "b3CreateBoxCommandSetStartOrientation", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateBoxCommandSetStartOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW);
[DllImport(__DllName, EntryPoint = "b3CreateBoxCommandSetHalfExtents", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateBoxCommandSetHalfExtents(b3SharedMemoryCommandHandle__* commandHandle, double halfExtentsX, double halfExtentsY, double halfExtentsZ);
[DllImport(__DllName, EntryPoint = "b3CreateBoxCommandSetMass", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateBoxCommandSetMass(b3SharedMemoryCommandHandle__* commandHandle, double mass);
[DllImport(__DllName, EntryPoint = "b3CreateBoxCommandSetCollisionShapeType", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateBoxCommandSetCollisionShapeType(b3SharedMemoryCommandHandle__* commandHandle, int collisionShapeType);
[DllImport(__DllName, EntryPoint = "b3CreateBoxCommandSetColorRGBA", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateBoxCommandSetColorRGBA(b3SharedMemoryCommandHandle__* commandHandle, double red, double green, double blue, double alpha);
/// b3CreatePoseCommandInit will initialize (teleport) the pose of a body/robot. You can individually set the base position,base orientation and joint angles. This will set all velocities of base and joints to zero.This is not a robot control command using actuators/joint motors, but manual repositioning the robot.
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreatePoseCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreatePoseCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetBasePosition", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetBasePosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetBaseOrientation", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetBaseOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetBaseLinearVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetBaseLinearVelocity(b3SharedMemoryCommandHandle__* commandHandle, double* linVel);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetBaseAngularVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetBaseAngularVelocity(b3SharedMemoryCommandHandle__* commandHandle, double* angVel);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetBaseScaling", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetBaseScaling(b3SharedMemoryCommandHandle__* commandHandle, double* scaling);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetJointPositions", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetJointPositions(b3SharedMemoryCommandHandle__* commandHandle, int numJointPositions, double* jointPositions);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetJointPosition", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetJointPosition(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double jointPosition);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetJointPositionMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetJointPositionMultiDof(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double* jointPosition, int posSize);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetQ", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetQ(b3SharedMemoryCommandHandle__* commandHandle, int numJointPositions, double* q, int* hasQ);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetQdots", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetQdots(b3SharedMemoryCommandHandle__* commandHandle, int numJointVelocities, double* qDots, int* hasQdots);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetJointVelocities", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetJointVelocities(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int numJointVelocities, double* jointVelocities);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetJointVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetJointVelocity(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double jointVelocity);
[DllImport(__DllName, EntryPoint = "b3CreatePoseCommandSetJointVelocityMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreatePoseCommandSetJointVelocityMultiDof(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double* jointVelocity, int velSize);
/// We are currently not reading the sensor information from the URDF file, and programmatically assign sensors.This is rather inconsistent, to mix programmatical creation with loading from file.
[DllImport(__DllName, EntryPoint = "b3CreateSensorCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateSensorCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3CreateSensorEnable6DofJointForceTorqueSensor", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateSensorEnable6DofJointForceTorqueSensor(b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, int enable);
/// b3CreateSensorEnableIMUForLink is not implemented yet.For now, if the IMU is located in the root link, use the root world transform to mimic an IMU.
[DllImport(__DllName, EntryPoint = "b3CreateSensorEnableIMUForLink", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3CreateSensorEnableIMUForLink(b3SharedMemoryCommandHandle__* commandHandle, int linkIndex, int enable);
[DllImport(__DllName, EntryPoint = "b3RequestActualStateCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RequestActualStateCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3RequestActualStateCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RequestActualStateCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId);
[DllImport(__DllName, EntryPoint = "b3RequestActualStateCommandComputeLinkVelocity", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3RequestActualStateCommandComputeLinkVelocity(b3SharedMemoryCommandHandle__* commandHandle, int computeLinkVelocity);
[DllImport(__DllName, EntryPoint = "b3RequestActualStateCommandComputeForwardKinematics", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3RequestActualStateCommandComputeForwardKinematics(b3SharedMemoryCommandHandle__* commandHandle, int computeForwardKinematics);
[DllImport(__DllName, EntryPoint = "b3GetJointState", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetJointState(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int jointIndex, b3JointSensorState* state);
[DllImport(__DllName, EntryPoint = "b3GetJointStateMultiDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetJointStateMultiDof(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int jointIndex, b3JointSensorState2* state);
[DllImport(__DllName, EntryPoint = "b3GetLinkState", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetLinkState(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int linkIndex, b3LinkState* state);
[DllImport(__DllName, EntryPoint = "b3PickBody", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3PickBody(b3PhysicsClientHandle__* physClient, double rayFromWorldX, double rayFromWorldY, double rayFromWorldZ, double rayToWorldX, double rayToWorldY, double rayToWorldZ);
[DllImport(__DllName, EntryPoint = "b3MovePickedBody", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3MovePickedBody(b3PhysicsClientHandle__* physClient, double rayFromWorldX, double rayFromWorldY, double rayFromWorldZ, double rayToWorldX, double rayToWorldY, double rayToWorldZ);
[DllImport(__DllName, EntryPoint = "b3RemovePickingConstraint", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RemovePickingConstraint(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3CreateRaycastCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateRaycastCommandInit(b3PhysicsClientHandle__* physClient, double rayFromWorldX, double rayFromWorldY, double rayFromWorldZ, double rayToWorldX, double rayToWorldY, double rayToWorldZ);
[DllImport(__DllName, EntryPoint = "b3CreateRaycastBatchCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3CreateRaycastBatchCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3RaycastBatchSetNumThreads", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RaycastBatchSetNumThreads(b3SharedMemoryCommandHandle__* commandHandle, int numThreads);
[DllImport(__DllName, EntryPoint = "b3RaycastBatchAddRay", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RaycastBatchAddRay(b3SharedMemoryCommandHandle__* commandHandle, double* rayFromWorld, double* rayToWorld);
[DllImport(__DllName, EntryPoint = "b3RaycastBatchAddRays", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RaycastBatchAddRays(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* rayFromWorld, double* rayToWorld, int numRays);
[DllImport(__DllName, EntryPoint = "b3RaycastBatchSetParentObject", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RaycastBatchSetParentObject(b3SharedMemoryCommandHandle__* commandHandle, int parentObjectUniqueId, int parentLinkIndex);
[DllImport(__DllName, EntryPoint = "b3RaycastBatchSetReportHitNumber", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RaycastBatchSetReportHitNumber(b3SharedMemoryCommandHandle__* commandHandle, int reportHitNumber);
[DllImport(__DllName, EntryPoint = "b3RaycastBatchSetCollisionFilterMask", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RaycastBatchSetCollisionFilterMask(b3SharedMemoryCommandHandle__* commandHandle, int collisionFilterMask);
[DllImport(__DllName, EntryPoint = "b3RaycastBatchSetFractionEpsilon", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RaycastBatchSetFractionEpsilon(b3SharedMemoryCommandHandle__* commandHandle, double fractionEpsilon);
[DllImport(__DllName, EntryPoint = "b3GetRaycastInformation", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetRaycastInformation(b3PhysicsClientHandle__* physClient, b3RaycastInformation* raycastInfo);
/// Apply external force at the body (or link) center of mass, in world space/Cartesian coordinates.
[DllImport(__DllName, EntryPoint = "b3ApplyExternalForceCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3ApplyExternalForceCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3ApplyExternalForce", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ApplyExternalForce(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkId, double* force, double* position, int flag);
[DllImport(__DllName, EntryPoint = "b3ApplyExternalTorque", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3ApplyExternalTorque(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkId, double* torque, int flag);
/// experiments of robots interacting with non-rigid objects (such as btSoftBody)
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3LoadSoftBodyCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetScale", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetScale(b3SharedMemoryCommandHandle__* commandHandle, double scale);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetMass", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetMass(b3SharedMemoryCommandHandle__* commandHandle, double mass);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetCollisionMargin", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetCollisionMargin(b3SharedMemoryCommandHandle__* commandHandle, double collisionMargin);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetStartPosition", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetStartPosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetStartOrientation", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetStartOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyUpdateSimMesh", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyUpdateSimMesh(b3SharedMemoryCommandHandle__* commandHandle, byte* filename);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyAddCorotatedForce", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyAddCorotatedForce(b3SharedMemoryCommandHandle__* commandHandle, double corotatedMu, double corotatedLambda);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyAddNeoHookeanForce", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyAddNeoHookeanForce(b3SharedMemoryCommandHandle__* commandHandle, double NeoHookeanMu, double NeoHookeanLambda, double NeoHookeanDamping);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyAddMassSpringForce", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyAddMassSpringForce(b3SharedMemoryCommandHandle__* commandHandle, double springElasticStiffness, double springDampingStiffness);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyAddGravityForce", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyAddGravityForce(b3SharedMemoryCommandHandle__* commandHandle, double gravityX, double gravityY, double gravityZ);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetCollisionHardness", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetCollisionHardness(b3SharedMemoryCommandHandle__* commandHandle, double collisionHardness);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetSelfCollision", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetSelfCollision(b3SharedMemoryCommandHandle__* commandHandle, int useSelfCollision);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetRepulsionStiffness", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetRepulsionStiffness(b3SharedMemoryCommandHandle__* commandHandle, double stiffness);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyUseFaceContact", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyUseFaceContact(b3SharedMemoryCommandHandle__* commandHandle, int useFaceContact);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodySetFrictionCoefficient", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodySetFrictionCoefficient(b3SharedMemoryCommandHandle__* commandHandle, double frictionCoefficient);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyUseBendingSprings", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyUseBendingSprings(b3SharedMemoryCommandHandle__* commandHandle, int useBendingSprings, double bendingStiffness);
[DllImport(__DllName, EntryPoint = "b3LoadSoftBodyUseAllDirectionDampingSprings", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3LoadSoftBodyUseAllDirectionDampingSprings(b3SharedMemoryCommandHandle__* commandHandle, int useAllDirectionDamping);
[DllImport(__DllName, EntryPoint = "b3InitCreateSoftBodyAnchorConstraintCommand", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3InitCreateSoftBodyAnchorConstraintCommand(b3PhysicsClientHandle__* physClient, int softBodyUniqueId, int nodeIndex, int bodyUniqueId, int linkIndex, double* bodyFramePosition);
[DllImport(__DllName, EntryPoint = "b3RequestVREventsCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RequestVREventsCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3VREventsSetDeviceTypeFilter", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3VREventsSetDeviceTypeFilter(b3SharedMemoryCommandHandle__* commandHandle, int deviceTypeFilter);
[DllImport(__DllName, EntryPoint = "b3GetVREventsData", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetVREventsData(b3PhysicsClientHandle__* physClient, b3VREventsData* vrEventsData);
[DllImport(__DllName, EntryPoint = "b3SetVRCameraStateCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3SetVRCameraStateCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3SetVRCameraRootPosition", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3SetVRCameraRootPosition(b3SharedMemoryCommandHandle__* commandHandle, double* rootPos);
[DllImport(__DllName, EntryPoint = "b3SetVRCameraRootOrientation", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3SetVRCameraRootOrientation(b3SharedMemoryCommandHandle__* commandHandle, double* rootOrn);
[DllImport(__DllName, EntryPoint = "b3SetVRCameraTrackingObject", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3SetVRCameraTrackingObject(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId);
[DllImport(__DllName, EntryPoint = "b3SetVRCameraTrackingObjectFlag", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3SetVRCameraTrackingObjectFlag(b3SharedMemoryCommandHandle__* commandHandle, int flag);
[DllImport(__DllName, EntryPoint = "b3RequestKeyboardEventsCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RequestKeyboardEventsCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3RequestKeyboardEventsCommandInit2", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RequestKeyboardEventsCommandInit2(b3SharedMemoryCommandHandle__* commandHandle);
[DllImport(__DllName, EntryPoint = "b3GetKeyboardEventsData", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetKeyboardEventsData(b3PhysicsClientHandle__* physClient, b3KeyboardEventsData* keyboardEventsData);
[DllImport(__DllName, EntryPoint = "b3RequestMouseEventsCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3RequestMouseEventsCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3GetMouseEventsData", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetMouseEventsData(b3PhysicsClientHandle__* physClient, b3MouseEventsData* mouseEventsData);
[DllImport(__DllName, EntryPoint = "b3StateLoggingCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3StateLoggingCommandInit(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3StateLoggingStart", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingStart(b3SharedMemoryCommandHandle__* commandHandle, int loggingType, byte* fileName);
[DllImport(__DllName, EntryPoint = "b3StateLoggingAddLoggingObjectUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingAddLoggingObjectUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId);
[DllImport(__DllName, EntryPoint = "b3StateLoggingSetMaxLogDof", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingSetMaxLogDof(b3SharedMemoryCommandHandle__* commandHandle, int maxLogDof);
[DllImport(__DllName, EntryPoint = "b3StateLoggingSetLinkIndexA", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingSetLinkIndexA(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexA);
[DllImport(__DllName, EntryPoint = "b3StateLoggingSetLinkIndexB", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingSetLinkIndexB(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexB);
[DllImport(__DllName, EntryPoint = "b3StateLoggingSetBodyAUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingSetBodyAUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int bodyAUniqueId);
[DllImport(__DllName, EntryPoint = "b3StateLoggingSetBodyBUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingSetBodyBUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int bodyBUniqueId);
[DllImport(__DllName, EntryPoint = "b3StateLoggingSetDeviceTypeFilter", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingSetDeviceTypeFilter(b3SharedMemoryCommandHandle__* commandHandle, int deviceTypeFilter);
[DllImport(__DllName, EntryPoint = "b3StateLoggingSetLogFlags", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingSetLogFlags(b3SharedMemoryCommandHandle__* commandHandle, int logFlags);
[DllImport(__DllName, EntryPoint = "b3GetStatusLoggingUniqueId", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3GetStatusLoggingUniqueId(b3SharedMemoryStatusHandle__* statusHandle);
[DllImport(__DllName, EntryPoint = "b3StateLoggingStop", CallingConvention = CallingConvention.Cdecl)]
public static extern int b3StateLoggingStop(b3SharedMemoryCommandHandle__* commandHandle, int loggingUid);
[DllImport(__DllName, EntryPoint = "b3ProfileTimingCommandInit", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3ProfileTimingCommandInit(b3PhysicsClientHandle__* physClient, byte* name);
[DllImport(__DllName, EntryPoint = "b3SetProfileTimingDuractionInMicroSeconds", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetProfileTimingDuractionInMicroSeconds(b3SharedMemoryCommandHandle__* commandHandle, int duration);
[DllImport(__DllName, EntryPoint = "b3SetProfileTimingType", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetProfileTimingType(b3SharedMemoryCommandHandle__* commandHandle, int type_);
[DllImport(__DllName, EntryPoint = "b3PushProfileTiming", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3PushProfileTiming(b3PhysicsClientHandle__* physClient, byte* timingName);
[DllImport(__DllName, EntryPoint = "b3PopProfileTiming", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3PopProfileTiming(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3SetTimeOut", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3SetTimeOut(b3PhysicsClientHandle__* physClient, double timeOutInSeconds);
[DllImport(__DllName, EntryPoint = "b3GetTimeOut", CallingConvention = CallingConvention.Cdecl)]
public static extern double b3GetTimeOut(b3PhysicsClientHandle__* physClient);
[DllImport(__DllName, EntryPoint = "b3SetAdditionalSearchPath", CallingConvention = CallingConvention.Cdecl)]
public static extern b3SharedMemoryCommandHandle__* b3SetAdditionalSearchPath(b3PhysicsClientHandle__* physClient, byte* path);
[DllImport(__DllName, EntryPoint = "b3MultiplyTransforms", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3MultiplyTransforms(double* posA, double* ornA, double* posB, double* ornB, double* outPos, double* outOrn);
[DllImport(__DllName, EntryPoint = "b3InvertTransform", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3InvertTransform(double* pos, double* orn, double* outPos, double* outOrn);
[DllImport(__DllName, EntryPoint = "b3QuaternionSlerp", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3QuaternionSlerp(double* startQuat, double* endQuat, double interpolationFraction, double* outOrn);
[DllImport(__DllName, EntryPoint = "b3GetQuaternionFromAxisAngle", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetQuaternionFromAxisAngle(double* axis, double angle, double* outQuat);
[DllImport(__DllName, EntryPoint = "b3GetAxisAngleFromQuaternion", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetAxisAngleFromQuaternion(double* quat, double* axis, double* angle);
[DllImport(__DllName, EntryPoint = "b3GetQuaternionDifference", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetQuaternionDifference(double* startQuat, double* endQuat, double* outOrn);
[DllImport(__DllName, EntryPoint = "b3GetAxisDifferenceQuaternion", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3GetAxisDifferenceQuaternion(double* startQuat, double* endQuat, double* axisOut);
[DllImport(__DllName, EntryPoint = "b3CalculateVelocityQuaternion", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3CalculateVelocityQuaternion(double* startQuat, double* endQuat, double deltaTime, double* angVelOut);
[DllImport(__DllName, EntryPoint = "b3RotateVector", CallingConvention = CallingConvention.Cdecl)]
public static extern void b3RotateVector(double* quat, double* vec, double* vecOut);
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3JointInfo
{
public fixed byte m_linkName[1024];
public fixed byte m_jointName[1024];
public int m_jointType;
public int m_qIndex;
public int m_uIndex;
public int m_jointIndex;
public int m_flags;
public double m_jointDamping;
public double m_jointFriction;
public double m_jointLowerLimit;
public double m_jointUpperLimit;
public double m_jointMaxForce;
public double m_jointMaxVelocity;
public fixed double m_parentFrame[7];
public fixed double m_childFrame[7];
public fixed double m_jointAxis[3];
public int m_parentIndex;
public int m_qSize;
public int m_uSize;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3UserDataValue
{
public int m_type;
public int m_length;
public byte* m_data1;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3UserConstraint
{
public int m_parentBodyIndex;
public int m_parentJointIndex;
public int m_childBodyIndex;
public int m_childJointIndex;
public fixed double m_parentFrame[7];
public fixed double m_childFrame[7];
public fixed double m_jointAxis[3];
public int m_jointType;
public double m_maxAppliedForce;
public int m_userConstraintUniqueId;
public double m_gearRatio;
public int m_gearAuxLink;
public double m_relativePositionTarget;
public double m_erp;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3BodyInfo
{
public fixed byte m_baseName[1024];
public fixed byte m_bodyName[1024];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3DynamicsInfo
{
public double m_mass;
public fixed double m_localInertialDiagonal[3];
public fixed double m_localInertialFrame[7];
public double m_lateralFrictionCoeff;
public double m_rollingFrictionCoeff;
public double m_spinningFrictionCoeff;
public double m_restitution;
public double m_contactStiffness;
public double m_contactDamping;
public int m_activationState;
public int m_bodyType;
public double m_angularDamping;
public double m_linearDamping;
public double m_ccdSweptSphereRadius;
public double m_contactProcessingThreshold;
public int m_frictionAnchor;
public double m_collisionMargin;
public int m_dynamicType;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3JointSensorState
{
public double m_jointPosition;
public double m_jointVelocity;
public fixed double m_jointForceTorque[6];
public double m_jointMotorTorque;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3JointSensorState2
{
public fixed double m_jointPosition[4];
public fixed double m_jointVelocity[3];
public fixed double m_jointReactionForceTorque[6];
public fixed double m_jointMotorTorqueMultiDof[3];
public int m_qDofSize;
public int m_uDofSize;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3DebugLines
{
public int m_numDebugLines;
public float* m_linesFrom;
public float* m_linesTo;
public float* m_linesColor;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3OverlappingObject
{
public int m_objectUniqueId;
public int m_linkIndex;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3AABBOverlapData
{
public int m_numOverlappingObjects;
public b3OverlappingObject* m_overlappingObjects;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3CameraImageData
{
public int m_pixelWidth;
public int m_pixelHeight;
public byte* m_rgbColorData;
public float* m_depthValues;
public int* m_segmentationMaskValues;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3MeshVertex
{
public double x;
public double y;
public double z;
public double w;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3MeshData
{
public int m_numVertices;
public b3MeshVertex* m_vertices;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3TetraMeshData
{
public int m_numVertices;
public b3MeshVertex* m_vertices;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3OpenGLVisualizerCameraInfo
{
public int m_width;
public int m_height;
public fixed float m_viewMatrix[16];
public fixed float m_projectionMatrix[16];
public fixed float m_camUp[3];
public fixed float m_camForward[3];
public fixed float m_horizontal[3];
public fixed float m_vertical[3];
public float m_yaw;
public float m_pitch;
public float m_dist;
public fixed float m_target[3];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3UserConstraintState
{
public fixed double m_appliedConstraintForces[6];
public int m_numDofs;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3VRControllerEvent
{
public int m_controllerId;
public int m_deviceType;
public int m_numMoveEvents;
public int m_numButtonEvents;
public fixed float m_pos[4];
public fixed float m_orn[4];
public float m_analogAxis;
public fixed float m_auxAnalogAxis[10];
public fixed int m_buttons[64];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3VREventsData
{
public int m_numControllerEvents;
public b3VRControllerEvent* m_controllerEvents;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3KeyboardEvent
{
public int m_keyCode;
public int m_keyState;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3KeyboardEventsData
{
public int m_numKeyboardEvents;
public b3KeyboardEvent* m_keyboardEvents;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3MouseEvent
{
public int m_eventType;
public float m_mousePosX;
public float m_mousePosY;
public int m_buttonIndex;
public int m_buttonState;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3MouseEventsData
{
public int m_numMouseEvents;
public b3MouseEvent* m_mouseEvents;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3ContactPointData
{
public int m_contactFlags;
public int m_bodyUniqueIdA;
public int m_bodyUniqueIdB;
public int m_linkIndexA;
public int m_linkIndexB;
public fixed double m_positionOnAInWS[3];
public fixed double m_positionOnBInWS[3];
public fixed double m_contactNormalOnBInWS[3];
public double m_contactDistance;
public double m_normalForce;
public double m_linearFrictionForce1;
public double m_linearFrictionForce2;
public fixed double m_linearFrictionDirection1[3];
public fixed double m_linearFrictionDirection2[3];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3ContactInformation
{
public int m_numContactPoints;
public b3ContactPointData* m_contactPointData;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3RayHitInfo
{
public double m_hitFraction;
public int m_hitObjectUniqueId;
public int m_hitObjectLinkIndex;
public fixed double m_hitPositionWorld[3];
public fixed double m_hitNormalWorld[3];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3RaycastInformation
{
public int m_numRayHits;
public b3RayHitInfo* m_rayHits;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3VisualShapeData
{
public int m_objectUniqueId;
public int m_linkIndex;
public int m_visualGeometryType;
public fixed double m_dimensions[3];
public fixed byte m_meshAssetFileName[1024];
public fixed double m_localVisualFrame[7];
public fixed double m_rgbaColor[4];
public int m_tinyRendererTextureId;
public int m_textureUniqueId;
public int m_openglTextureId;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3VisualShapeInformation
{
public int m_numVisualShapes;
public b3VisualShapeData* m_visualShapeData;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3CollisionShapeData
{
public int m_objectUniqueId;
public int m_linkIndex;
public int m_collisionGeometryType;
public fixed double m_dimensions[3];
public fixed double m_localCollisionFrame[7];
public fixed byte m_meshAssetFileName[1024];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3CollisionShapeInformation
{
public int m_numCollisionShapes;
public b3CollisionShapeData* m_collisionShapeData;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3LinkState
{
public fixed double m_worldPosition[3];
public fixed double m_worldOrientation[4];
public fixed double m_localInertialPosition[3];
public fixed double m_localInertialOrientation[4];
public fixed double m_worldLinkFramePosition[3];
public fixed double m_worldLinkFrameOrientation[4];
public fixed double m_worldLinearVelocity[3];
public fixed double m_worldAngularVelocity[3];
public fixed double m_worldAABBMin[3];
public fixed double m_worldAABBMax[3];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3PhysicsSimulationParameters
{
public double m_deltaTime;
public double m_simulationTimestamp;
public fixed double m_gravityAcceleration[3];
public int m_numSimulationSubSteps;
public int m_numSolverIterations;
public double m_warmStartingFactor;
public double m_articulatedWarmStartingFactor;
public int m_useRealTimeSimulation;
public int m_useSplitImpulse;
public double m_splitImpulsePenetrationThreshold;
public double m_contactBreakingThreshold;
public int m_internalSimFlags;
public double m_defaultContactERP;
public int m_collisionFilterMode;
public int m_enableFileCaching;
public double m_restitutionVelocityThreshold;
public double m_defaultNonContactERP;
public double m_frictionERP;
public double m_defaultGlobalCFM;
public double m_frictionCFM;
public int m_enableConeFriction;
public int m_deterministicOverlappingPairs;
public double m_allowedCcdPenetration;
public int m_jointFeedbackMode;
public double m_solverResidualThreshold;
public double m_contactSlop;
public int m_enableSAT;
public int m_constraintSolverType;
public int m_minimumSolverIslandSize;
public int m_reportSolverAnalytics;
public double m_sparseSdfVoxelSize;
public int m_numNonContactInnerIterations;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3ForwardDynamicsAnalyticsIslandData
{
public int m_islandId;
public int m_numBodies;
public int m_numContactManifolds;
public int m_numIterationsUsed;
public double m_remainingLeastSquaresResidual;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3ForwardDynamicsAnalyticsArgs
{
public int m_numSteps;
public int m_numIslands;
public int m_numSolverCalls;
public fixed byte/* b3ForwardDynamicsAnalyticsIslandData, this length is invalid so must keep pointer and can't edit from C# */ m_islandData[64];
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3PhysicsClientHandle__
{
public int unused;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3SharedMemoryCommandHandle__
{
public int unused;
}
[StructLayout(LayoutKind.Sequential)]
internal unsafe partial struct b3SharedMemoryStatusHandle__
{
public int unused;
}
}