// // This code is generated via csbindgen. // DON'T CHANGE THIS DIRECTLY. // using System; using System.Runtime.InteropServices; namespace CsBindgen { public static unsafe partial class LibBullet3 { const string __DllName = "libbullet3"; [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3PhysicsClientHandle__* b3ConnectSharedMemory(int key); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3PhysicsClientHandle__* b3ConnectSharedMemory2(int key); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3PhysicsClientHandle__* b3ConnectPhysicsDirect(); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3DisconnectSharedMemory(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CanSubmitCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryStatusHandle__* b3SubmitClientCommandAndWaitStatus(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3SubmitClientCommand(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryStatusHandle__* b3ProcessServerStatus(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusType(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateCustomCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CustomCommandLoadPlugin(b3SharedMemoryCommandHandle__* commandHandle, byte* pluginPath); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CustomCommandLoadPluginSetPostFix(b3SharedMemoryCommandHandle__* commandHandle, byte* postFix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusPluginUniqueId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusPluginCommandResult(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusPluginCommandReturnData(b3PhysicsClientHandle__* physClient, b3UserDataValue* valueOut); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CustomCommandUnloadPlugin(b3SharedMemoryCommandHandle__* commandHandle, int pluginUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CustomCommandExecutePluginCommand(b3SharedMemoryCommandHandle__* commandHandle, int pluginUniqueId, byte* textArguments); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CustomCommandExecuteAddIntArgument(b3SharedMemoryCommandHandle__* commandHandle, int intVal); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CustomCommandExecuteAddFloatArgument(b3SharedMemoryCommandHandle__* commandHandle, float floatVal); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusBodyIndices(b3SharedMemoryStatusHandle__* statusHandle, int* bodyIndicesOut, int bodyIndicesCapacity); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusBodyIndex(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, 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, 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, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RequestCollisionInfoCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusAABB(b3SharedMemoryStatusHandle__* statusHandle, int linkIndex, double* aabbMin, double* aabbMax); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitSyncBodyInfoCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestBodyInfoCommand(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRemoveBodyCommand(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetNumBodies(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetBodyUniqueId(b3PhysicsClientHandle__* physClient, int serialIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetBodyInfo(b3PhysicsClientHandle__* physClient, int bodyUniqueId, b3BodyInfo* info); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetNumJoints(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetNumDofs(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ComputeDofCount(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetJointInfo(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int jointIndex, b3JointInfo* info); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitSyncUserDataCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3AddBodyToSyncUserDataRequest(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId); [DllImport(__DllName, 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, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRemoveUserDataCommand(b3PhysicsClientHandle__* physClient, int userDataId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetUserData(b3PhysicsClientHandle__* physClient, int userDataId, b3UserDataValue* valueOut); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetUserDataId(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex, int visualShapeIndex, byte* key); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetUserDataIdFromStatus(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetNumUserData(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetUserDataInfo(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int userDataIndex, byte** keyOut, int* userDataIdOut, int* linkIndexOut, int* visualShapeIndexOut); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3GetDynamicsInfoCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3GetDynamicsInfoCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetDynamicsInfo(b3SharedMemoryStatusHandle__* statusHandle, b3DynamicsInfo* info); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitChangeDynamicsInfo(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitChangeDynamicsInfo2(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetMass(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double mass); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetLocalInertiaDiagonal(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double* localInertiaDiagonal); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetAnisotropicFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double* anisotropicFriction); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetJointLimit(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double jointLowerLimit, double jointUpperLimit); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetJointLimitForce(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double jointLimitForce); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetDynamicType(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, int dynamicType); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetSleepThreshold(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double sleepThreshold); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetLateralFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double lateralFriction); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetSpinningFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double friction); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetRollingFriction(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double friction); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetRestitution(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double restitution); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetLinearDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double linearDamping); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetAngularDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double angularDamping); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetJointDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double jointDamping); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetContactStiffnessAndDamping(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double contactStiffness, double contactDamping); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetFrictionAnchor(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, int frictionAnchor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetCcdSweptSphereRadius(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double ccdSweptSphereRadius); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetContactProcessingThreshold(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkIndex, double contactProcessingThreshold); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetActivationState(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int activationState); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetMaxJointVelocity(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double maxJointVelocity); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3ChangeDynamicsInfoSetCollisionMargin(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, double collisionMargin); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitCreateUserConstraintCommand(b3PhysicsClientHandle__* physClient, int parentBodyUniqueId, int parentJointIndex, int childBodyUniqueId, int childJointIndex, b3JointInfo* info); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitCreateUserConstraintCommand2(b3SharedMemoryCommandHandle__* commandHandle, int parentBodyUniqueId, int parentJointIndex, int childBodyUniqueId, int childJointIndex, b3JointInfo* info); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusUserConstraintUniqueId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitChangeUserConstraintCommand(b3PhysicsClientHandle__* physClient, int userConstraintUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitChangeUserConstraintSetPivotInB(b3SharedMemoryCommandHandle__* commandHandle, double* jointChildPivot); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitChangeUserConstraintSetFrameInB(b3SharedMemoryCommandHandle__* commandHandle, double* jointChildFrameOrn); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitChangeUserConstraintSetMaxForce(b3SharedMemoryCommandHandle__* commandHandle, double maxAppliedForce); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitChangeUserConstraintSetGearRatio(b3SharedMemoryCommandHandle__* commandHandle, double gearRatio); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitChangeUserConstraintSetGearAuxLink(b3SharedMemoryCommandHandle__* commandHandle, int gearAuxLink); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitChangeUserConstraintSetRelativePositionTarget(b3SharedMemoryCommandHandle__* commandHandle, double relativePositionTarget); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitChangeUserConstraintSetERP(b3SharedMemoryCommandHandle__* commandHandle, double erp); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRemoveUserConstraintCommand(b3PhysicsClientHandle__* physClient, int userConstraintUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetNumUserConstraints(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitGetUserConstraintStateCommand(b3PhysicsClientHandle__* physClient, int constraintUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusUserConstraintState(b3SharedMemoryStatusHandle__* statusHandle, b3UserConstraintState* constraintState); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetUserConstraintInfo(b3PhysicsClientHandle__* physClient, int constraintUniqueId, b3UserConstraint* info); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetUserConstraintId(b3PhysicsClientHandle__* physClient, int serialIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestDebugLinesCommand(b3PhysicsClientHandle__* physClient, int debugMode); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetDebugLines(b3PhysicsClientHandle__* physClient, b3DebugLines* lines); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitConfigureOpenGLVisualizer(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitConfigureOpenGLVisualizer2(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetVisualizationFlags(b3SharedMemoryCommandHandle__* commandHandle, int flag, int enabled); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetLightPosition(b3SharedMemoryCommandHandle__* commandHandle, float* lightPosition); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetShadowMapResolution(b3SharedMemoryCommandHandle__* commandHandle, int shadowMapResolution); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetShadowMapIntensity(b3SharedMemoryCommandHandle__* commandHandle, double shadowMapIntensity); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetLightRgbBackground(b3SharedMemoryCommandHandle__* commandHandle, float* rgbBackground); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetShadowMapWorldSize(b3SharedMemoryCommandHandle__* commandHandle, int shadowMapWorldSize); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetRemoteSyncTransformInterval(b3SharedMemoryCommandHandle__* commandHandle, double remoteSyncTransformInterval); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ConfigureOpenGLVisualizerSetViewMatrix(b3SharedMemoryCommandHandle__* commandHandle, float cameraDistance, float cameraPitch, float cameraYaw, float* cameraTargetPosition); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestOpenGLVisualizerCameraCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusOpenGLVisualizerCamera(b3SharedMemoryStatusHandle__* statusHandle, b3OpenGLVisualizerCameraInfo* camera); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawAddLine3D(b3PhysicsClientHandle__* physClient, double* fromXYZ, double* toXYZ, double* colorRGB, double lineWidth, double lifeTime); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawAddPoints3D(b3PhysicsClientHandle__* physClient, double* positionsXYZ, double* colorsRGB, double pointSize, double lifeTime, int pointNum); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawAddText3D(b3PhysicsClientHandle__* physClient, byte* txt, double* positionXYZ, double* colorRGB, double textSize, double lifeTime); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UserDebugTextSetOptionFlags(b3SharedMemoryCommandHandle__* commandHandle, int optionFlags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UserDebugTextSetOrientation(b3SharedMemoryCommandHandle__* commandHandle, double* orientation); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UserDebugItemSetReplaceItemUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int replaceItem); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UserDebugItemSetParentObject(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId, int linkIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugAddParameter(b3PhysicsClientHandle__* physClient, byte* txt, double rangeMin, double rangeMax, double startValue); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugReadParameter(b3PhysicsClientHandle__* physClient, int debugItemUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusDebugParameterValue(b3SharedMemoryStatusHandle__* statusHandle, double* paramValue); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawRemove(b3PhysicsClientHandle__* physClient, int debugItemUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserDebugDrawRemoveAll(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUserRemoveAllParameters(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitDebugDrawingCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetDebugObjectColor(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId, int linkIndex, double* objectColorRGB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RemoveDebugObjectColor(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId, int linkIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetDebugItemUniqueId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestCameraImage(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestCameraImage2(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetCameraMatrices(b3SharedMemoryCommandHandle__* commandHandle, float* viewMatrix, float* projectionMatrix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetPixelResolution(b3SharedMemoryCommandHandle__* commandHandle, int width, int height); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetLightDirection(b3SharedMemoryCommandHandle__* commandHandle, float* lightDirection); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetLightColor(b3SharedMemoryCommandHandle__* commandHandle, float* lightColor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetLightDistance(b3SharedMemoryCommandHandle__* commandHandle, float lightDistance); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetLightAmbientCoeff(b3SharedMemoryCommandHandle__* commandHandle, float lightAmbientCoeff); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetLightDiffuseCoeff(b3SharedMemoryCommandHandle__* commandHandle, float lightDiffuseCoeff); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetLightSpecularCoeff(b3SharedMemoryCommandHandle__* commandHandle, float lightSpecularCoeff); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetShadow(b3SharedMemoryCommandHandle__* commandHandle, int hasShadow); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSelectRenderer(b3SharedMemoryCommandHandle__* commandHandle, int renderer); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetCameraImageData(b3PhysicsClientHandle__* physClient, b3CameraImageData* imageData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetProjectiveTextureMatrices(b3SharedMemoryCommandHandle__* commandHandle, float* viewMatrix, float* projectionMatrix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ComputeViewMatrixFromPositions(float* cameraPosition, float* cameraTargetPosition, float* cameraUp, float* viewMatrix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ComputeViewMatrixFromYawPitchRoll(float* cameraTargetPosition, float distance, float yaw, float pitch, float roll, int upAxis, float* viewMatrix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ComputePositionFromViewMatrix(float* viewMatrix, float* cameraPosition, float* cameraTargetPosition, float* cameraUp); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ComputeProjectionMatrix(float left, float right, float bottom, float top, float nearVal, float farVal, float* projectionMatrix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ComputeProjectionMatrixFOV(float fov, float aspect, float nearVal, float farVal, float* projectionMatrix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetViewMatrix(b3SharedMemoryCommandHandle__* commandHandle, float* cameraPosition, float* cameraTargetPosition, float* cameraUp); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetViewMatrix2(b3SharedMemoryCommandHandle__* commandHandle, float* cameraTargetPosition, float distance, float yaw, float pitch, float roll, int upAxis); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetProjectionMatrix(b3SharedMemoryCommandHandle__* commandHandle, float left, float right, float bottom, float top, float nearVal, float farVal); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RequestCameraImageSetFOVProjectionMatrix(b3SharedMemoryCommandHandle__* commandHandle, float fov, float aspect, float nearVal, float farVal); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestContactPointInformation(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetContactFilterBodyA(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetContactFilterBodyB(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetContactFilterLinkA(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetContactFilterLinkB(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetContactPointInformation(b3PhysicsClientHandle__* physClient, b3ContactInformation* contactPointData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitClosestDistanceQuery(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterBodyA(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterLinkA(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterBodyB(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterLinkB(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceThreshold(b3SharedMemoryCommandHandle__* commandHandle, double distance); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterCollisionShapeA(b3SharedMemoryCommandHandle__* commandHandle, int collisionShapeA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterCollisionShapeB(b3SharedMemoryCommandHandle__* commandHandle, int collisionShapeB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterCollisionShapePositionA(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapePositionA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterCollisionShapePositionB(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapePositionB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterCollisionShapeOrientationA(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapeOrientationA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetClosestDistanceFilterCollisionShapeOrientationB(b3SharedMemoryCommandHandle__* commandHandle, double* collisionShapeOrientationB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetClosestPointInformation(b3PhysicsClientHandle__* physClient, b3ContactInformation* contactPointInfo); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitAABBOverlapQuery(b3PhysicsClientHandle__* physClient, double* aabbMin, double* aabbMax); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetAABBOverlapResults(b3PhysicsClientHandle__* physClient, b3AABBOverlapData* data); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestVisualShapeInformation(b3PhysicsClientHandle__* physClient, int bodyUniqueIdA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetVisualShapeInformation(b3PhysicsClientHandle__* physClient, b3VisualShapeInformation* visualShapeInfo); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestCollisionShapeInformation(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetCollisionShapeInformation(b3PhysicsClientHandle__* physClient, b3CollisionShapeInformation* collisionShapeInfo); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitLoadTexture(b3PhysicsClientHandle__* physClient, byte* filename); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusTextureUniqueId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateChangeTextureCommandInit(b3PhysicsClientHandle__* physClient, int textureUniqueId, int width, int height, byte* rgbPixels); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUpdateVisualShape(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int jointIndex, int shapeIndex, int textureUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitUpdateVisualShape2(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int jointIndex, int shapeIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UpdateVisualShapeTexture(b3SharedMemoryCommandHandle__* commandHandle, int textureUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UpdateVisualShapeRGBAColor(b3SharedMemoryCommandHandle__* commandHandle, double* rgbaColor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UpdateVisualShapeFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3UpdateVisualShapeSpecularColor(b3SharedMemoryCommandHandle__* commandHandle, double* specularColor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitPhysicsParamCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitPhysicsParamCommand2(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetGravity(b3SharedMemoryCommandHandle__* commandHandle, double gravx, double gravy, double gravz); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetTimeStep(b3SharedMemoryCommandHandle__* commandHandle, double timeStep); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetDefaultContactERP(b3SharedMemoryCommandHandle__* commandHandle, double defaultContactERP); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetDefaultNonContactERP(b3SharedMemoryCommandHandle__* commandHandle, double defaultNonContactERP); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetDefaultFrictionERP(b3SharedMemoryCommandHandle__* commandHandle, double frictionERP); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetDefaultGlobalCFM(b3SharedMemoryCommandHandle__* commandHandle, double defaultGlobalCFM); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetDefaultFrictionCFM(b3SharedMemoryCommandHandle__* commandHandle, double frictionCFM); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetNumSubSteps(b3SharedMemoryCommandHandle__* commandHandle, int numSubSteps); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetRealTimeSimulation(b3SharedMemoryCommandHandle__* commandHandle, int enableRealTimeSimulation); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetNumSolverIterations(b3SharedMemoryCommandHandle__* commandHandle, int numSolverIterations); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetNumNonContactInnerIterations(b3SharedMemoryCommandHandle__* commandHandle, int numMotorIterations); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetWarmStartingFactor(b3SharedMemoryCommandHandle__* commandHandle, double warmStartingFactor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetArticulatedWarmStartingFactor(b3SharedMemoryCommandHandle__* commandHandle, double warmStartingFactor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetCollisionFilterMode(b3SharedMemoryCommandHandle__* commandHandle, int filterMode); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetUseSplitImpulse(b3SharedMemoryCommandHandle__* commandHandle, int useSplitImpulse); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetSplitImpulsePenetrationThreshold(b3SharedMemoryCommandHandle__* commandHandle, double splitImpulsePenetrationThreshold); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetContactBreakingThreshold(b3SharedMemoryCommandHandle__* commandHandle, double contactBreakingThreshold); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetMaxNumCommandsPer1ms(b3SharedMemoryCommandHandle__* commandHandle, int maxNumCmdPer1ms); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetEnableFileCaching(b3SharedMemoryCommandHandle__* commandHandle, int enableFileCaching); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetRestitutionVelocityThreshold(b3SharedMemoryCommandHandle__* commandHandle, double restitutionVelocityThreshold); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetEnableConeFriction(b3SharedMemoryCommandHandle__* commandHandle, int enableConeFriction); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParameterSetDeterministicOverlappingPairs(b3SharedMemoryCommandHandle__* commandHandle, int deterministicOverlappingPairs); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParameterSetAllowedCcdPenetration(b3SharedMemoryCommandHandle__* commandHandle, double allowedCcdPenetration); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParameterSetJointFeedbackMode(b3SharedMemoryCommandHandle__* commandHandle, int jointFeedbackMode); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetSolverResidualThreshold(b3SharedMemoryCommandHandle__* commandHandle, double solverResidualThreshold); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetContactSlop(b3SharedMemoryCommandHandle__* commandHandle, double contactSlop); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParameterSetEnableSAT(b3SharedMemoryCommandHandle__* commandHandle, int enableSAT); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParameterSetConstraintSolverType(b3SharedMemoryCommandHandle__* commandHandle, int constraintSolverType); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParameterSetMinimumSolverIslandSize(b3SharedMemoryCommandHandle__* commandHandle, int minimumSolverIslandSize); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetSolverAnalytics(b3SharedMemoryCommandHandle__* commandHandle, int reportSolverAnalytics); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParameterSetSparseSdfVoxelSize(b3SharedMemoryCommandHandle__* commandHandle, double sparseSdfVoxelSize); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRequestPhysicsParamCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusPhysicsSimulationParameters(b3SharedMemoryStatusHandle__* statusHandle, b3PhysicsSimulationParameters* @params); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3PhysicsParamSetInternalSimFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitStepSimulationCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitStepSimulationCommand2(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitPerformCollisionDetectionCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusForwardDynamicsAnalyticsData(b3SharedMemoryStatusHandle__* statusHandle, b3ForwardDynamicsAnalyticsArgs* analyticsData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitResetSimulationCommand(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitResetSimulationCommand2(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3InitResetSimulationSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadUrdfCommandInit(b3PhysicsClientHandle__* physClient, byte* urdfFileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadUrdfCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, byte* urdfFileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadUrdfCommandSetStartPosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadUrdfCommandSetStartOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadUrdfCommandSetUseMultiBody(b3SharedMemoryCommandHandle__* commandHandle, int useMultiBody); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadUrdfCommandSetUseFixedBase(b3SharedMemoryCommandHandle__* commandHandle, int useFixedBase); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadUrdfCommandSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadUrdfCommandSetGlobalScaling(b3SharedMemoryCommandHandle__* commandHandle, double globalScaling); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3SaveStateCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRemoveStateCommand(b3PhysicsClientHandle__* physClient, int stateId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusGetStateId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadStateCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadStateSetStateId(b3SharedMemoryCommandHandle__* commandHandle, int stateId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadStateSetFileName(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadBulletCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3SaveBulletCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadMJCFCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadMJCFCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3LoadMJCFCommandSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3LoadMJCFCommandSetUseMultiBody(b3SharedMemoryCommandHandle__* commandHandle, int useMultiBody); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CalculateInverseDynamicsCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, double* jointPositionsQ, double* jointVelocitiesQdot, double* jointAccelerations); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CalculateInverseDynamicsCommandInit2(b3PhysicsClientHandle__* physClient, int bodyUniqueId, double* jointPositionsQ, int dofCountQ, double* jointVelocitiesQdot, double* jointAccelerations, int dofCountQdot); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseDynamicsSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusInverseDynamicsJointForces(b3SharedMemoryStatusHandle__* statusHandle, int* bodyUniqueId, int* dofCount, double* jointForces); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CalculateJacobianCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex, double* localPosition, double* jointPositionsQ, double* jointVelocitiesQdot, double* jointAccelerations); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusJacobian(b3SharedMemoryStatusHandle__* statusHandle, int* dofCount, double* linearJacobian, double* angularJacobian); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CalculateMassMatrixCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, double* jointPositionsQ, int dofCountQ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateMassMatrixSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusMassMatrix(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int* dofCount, double* massMatrix); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CalculateInverseKinematicsCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsAddTargetPurePosition(b3SharedMemoryCommandHandle__* commandHandle, int endEffectorLinkIndex, double* targetPosition); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsAddTargetsPurePosition(b3SharedMemoryCommandHandle__* commandHandle, int numEndEffectorLinkIndices, int* endEffectorIndices, double* targetPositions); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsAddTargetPositionWithOrientation(b3SharedMemoryCommandHandle__* commandHandle, int endEffectorLinkIndex, double* targetPosition, double* targetOrientation); [DllImport(__DllName, 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, 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, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsSetJointDamping(b3SharedMemoryCommandHandle__* commandHandle, int numDof, double* jointDampingCoeff); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsSelectSolver(b3SharedMemoryCommandHandle__* commandHandle, int solver); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusInverseKinematicsJointPositions(b3SharedMemoryStatusHandle__* statusHandle, int* bodyUniqueId, int* dofCount, double* jointPositions); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsSetCurrentPositions(b3SharedMemoryCommandHandle__* commandHandle, int numDof, double* currentJointPositions); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsSetMaxNumIterations(b3SharedMemoryCommandHandle__* commandHandle, int maxNumIterations); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateInverseKinematicsSetResidualThreshold(b3SharedMemoryCommandHandle__* commandHandle, double residualThreshold); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CollisionFilterCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetCollisionFilterPair(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA, int bodyUniqueIdB, int linkIndexA, int linkIndexB, int enableCollision); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetCollisionFilterGroupMask(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueIdA, int linkIndexA, int collisionFilterGroup, int collisionFilterMask); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadSdfCommandInit(b3PhysicsClientHandle__* physClient, byte* sdfFileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadSdfCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, byte* sdfFileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSdfCommandSetUseMultiBody(b3SharedMemoryCommandHandle__* commandHandle, int useMultiBody); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSdfCommandSetUseGlobalScaling(b3SharedMemoryCommandHandle__* commandHandle, double globalScaling); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3SaveWorldCommandInit(b3PhysicsClientHandle__* physClient, byte* sdfFileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3JointControlCommandInit(b3PhysicsClientHandle__* physClient, int controlMode); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3JointControlCommandInit2(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int controlMode); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3JointControlCommandInit2Internal(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int controlMode); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDesiredPosition(b3SharedMemoryCommandHandle__* commandHandle, int qIndex, double value); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDesiredPositionMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int qIndex, double* position, int dofCount); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetKp(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetKpMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* kps, int dofCount); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetKd(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetKdMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* kds, int dofCount); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetMaximumVelocity(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double maximumVelocity); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDesiredVelocity(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDesiredVelocityMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* velocity, int dofCount); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDesiredVelocityMultiDof2(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* velocity, int dofCount); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetMaximumForce(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDesiredForceTorqueMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* forces, int dofCount); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDamping(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDampingMultiDof(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double* damping, int dofCount); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3JointControlSetDesiredForceTorque(b3SharedMemoryCommandHandle__* commandHandle, int dofIndex, double value); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateCollisionShapeCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddSphere(b3SharedMemoryCommandHandle__* commandHandle, double radius); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddBox(b3SharedMemoryCommandHandle__* commandHandle, double* halfExtents); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddCapsule(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddCylinder(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddHeightfield(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName, double* meshScale, double textureScaling); [DllImport(__DllName, 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, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddPlane(b3SharedMemoryCommandHandle__* commandHandle, double* planeNormal, double planeConstant); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddMesh(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName, double* meshScale); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddConvexMesh(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* meshScale, double* vertices, int numVertices); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateCollisionShapeAddConcaveMesh(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* meshScale, double* vertices, int numVertices, int* indices, int numIndices); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateCollisionSetFlag(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateCollisionShapeSetChildTransform(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* childPosition, double* childOrientation); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusCollisionShapeUniqueId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitRemoveCollisionShapeCommand(b3PhysicsClientHandle__* physClient, int collisionShapeId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3GetMeshDataCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int linkIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3GetTetraMeshDataCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetMeshDataSimulationMesh(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3MeshDataSimulationMeshVelocity(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetMeshDataSetCollisionShapeIndex(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetMeshDataSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetTetraMeshDataSetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetMeshData(b3PhysicsClientHandle__* physClient, b3MeshData* meshData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetTetraMeshData(b3PhysicsClientHandle__* physClient, b3TetraMeshData* meshData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3ResetMeshDataCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId, int num_vertices, double* vertices); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateVisualShapeCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateVisualShapeAddSphere(b3SharedMemoryCommandHandle__* commandHandle, double radius); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateVisualShapeAddBox(b3SharedMemoryCommandHandle__* commandHandle, double* halfExtents); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateVisualShapeAddCapsule(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateVisualShapeAddCylinder(b3SharedMemoryCommandHandle__* commandHandle, double radius, double height); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateVisualShapeAddPlane(b3SharedMemoryCommandHandle__* commandHandle, double* planeNormal, double planeConstant); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateVisualShapeAddMesh(b3SharedMemoryCommandHandle__* commandHandle, byte* fileName, double* meshScale); [DllImport(__DllName, 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, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateVisualSetFlag(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateVisualShapeSetChildTransform(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* childPosition, double* childOrientation); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateVisualShapeSetSpecularColor(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* specularColor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateVisualShapeSetRGBAColor(b3SharedMemoryCommandHandle__* commandHandle, int shapeIndex, double* rgbaColor); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusVisualShapeUniqueId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateMultiBodyCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, 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, 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, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateMultiBodySetBatchPositions(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* batchPositions, int numBatchObjects); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateMultiBodyUseMaximalCoordinates(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CreateMultiBodySetFlags(b3SharedMemoryCommandHandle__* commandHandle, int flags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateBoxShapeCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateBoxCommandSetStartPosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateBoxCommandSetStartOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateBoxCommandSetHalfExtents(b3SharedMemoryCommandHandle__* commandHandle, double halfExtentsX, double halfExtentsY, double halfExtentsZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateBoxCommandSetMass(b3SharedMemoryCommandHandle__* commandHandle, double mass); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateBoxCommandSetCollisionShapeType(b3SharedMemoryCommandHandle__* commandHandle, int collisionShapeType); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateBoxCommandSetColorRGBA(b3SharedMemoryCommandHandle__* commandHandle, double red, double green, double blue, double alpha); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreatePoseCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreatePoseCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetBasePosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetBaseOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetBaseLinearVelocity(b3SharedMemoryCommandHandle__* commandHandle, double* linVel); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetBaseAngularVelocity(b3SharedMemoryCommandHandle__* commandHandle, double* angVel); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetBaseScaling(b3SharedMemoryCommandHandle__* commandHandle, double* scaling); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetJointPositions(b3SharedMemoryCommandHandle__* commandHandle, int numJointPositions, double* jointPositions); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetJointPosition(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double jointPosition); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetJointPositionMultiDof(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double* jointPosition, int posSize); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetQ(b3SharedMemoryCommandHandle__* commandHandle, int numJointPositions, double* q, int* hasQ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetQdots(b3SharedMemoryCommandHandle__* commandHandle, int numJointVelocities, double* qDots, int* hasQdots); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetJointVelocities(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int numJointVelocities, double* jointVelocities); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetJointVelocity(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double jointVelocity); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreatePoseCommandSetJointVelocityMultiDof(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, double* jointVelocity, int velSize); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateSensorCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateSensorEnable6DofJointForceTorqueSensor(b3SharedMemoryCommandHandle__* commandHandle, int jointIndex, int enable); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3CreateSensorEnableIMUForLink(b3SharedMemoryCommandHandle__* commandHandle, int linkIndex, int enable); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RequestActualStateCommandInit(b3PhysicsClientHandle__* physClient, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RequestActualStateCommandInit2(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3RequestActualStateCommandComputeLinkVelocity(b3SharedMemoryCommandHandle__* commandHandle, int computeLinkVelocity); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3RequestActualStateCommandComputeForwardKinematics(b3SharedMemoryCommandHandle__* commandHandle, int computeForwardKinematics); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetJointState(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int jointIndex, b3JointSensorState* state); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetJointStateMultiDof(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int jointIndex, b3JointSensorState2* state); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetLinkState(b3PhysicsClientHandle__* physClient, b3SharedMemoryStatusHandle__* statusHandle, int linkIndex, b3LinkState* state); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3PickBody(b3PhysicsClientHandle__* physClient, double rayFromWorldX, double rayFromWorldY, double rayFromWorldZ, double rayToWorldX, double rayToWorldY, double rayToWorldZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3MovePickedBody(b3PhysicsClientHandle__* physClient, double rayFromWorldX, double rayFromWorldY, double rayFromWorldZ, double rayToWorldX, double rayToWorldY, double rayToWorldZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RemovePickingConstraint(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateRaycastCommandInit(b3PhysicsClientHandle__* physClient, double rayFromWorldX, double rayFromWorldY, double rayFromWorldZ, double rayToWorldX, double rayToWorldY, double rayToWorldZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3CreateRaycastBatchCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RaycastBatchSetNumThreads(b3SharedMemoryCommandHandle__* commandHandle, int numThreads); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RaycastBatchAddRay(b3SharedMemoryCommandHandle__* commandHandle, double* rayFromWorld, double* rayToWorld); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RaycastBatchAddRays(b3PhysicsClientHandle__* physClient, b3SharedMemoryCommandHandle__* commandHandle, double* rayFromWorld, double* rayToWorld, int numRays); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RaycastBatchSetParentObject(b3SharedMemoryCommandHandle__* commandHandle, int parentObjectUniqueId, int parentLinkIndex); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RaycastBatchSetReportHitNumber(b3SharedMemoryCommandHandle__* commandHandle, int reportHitNumber); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RaycastBatchSetCollisionFilterMask(b3SharedMemoryCommandHandle__* commandHandle, int collisionFilterMask); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RaycastBatchSetFractionEpsilon(b3SharedMemoryCommandHandle__* commandHandle, double fractionEpsilon); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetRaycastInformation(b3PhysicsClientHandle__* physClient, b3RaycastInformation* raycastInfo); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3ApplyExternalForceCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ApplyExternalForce(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkId, double* force, double* position, int flag); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3ApplyExternalTorque(b3SharedMemoryCommandHandle__* commandHandle, int bodyUniqueId, int linkId, double* torque, int flag); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3LoadSoftBodyCommandInit(b3PhysicsClientHandle__* physClient, byte* fileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetScale(b3SharedMemoryCommandHandle__* commandHandle, double scale); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetMass(b3SharedMemoryCommandHandle__* commandHandle, double mass); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetCollisionMargin(b3SharedMemoryCommandHandle__* commandHandle, double collisionMargin); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetStartPosition(b3SharedMemoryCommandHandle__* commandHandle, double startPosX, double startPosY, double startPosZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetStartOrientation(b3SharedMemoryCommandHandle__* commandHandle, double startOrnX, double startOrnY, double startOrnZ, double startOrnW); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyUpdateSimMesh(b3SharedMemoryCommandHandle__* commandHandle, byte* filename); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyAddCorotatedForce(b3SharedMemoryCommandHandle__* commandHandle, double corotatedMu, double corotatedLambda); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyAddNeoHookeanForce(b3SharedMemoryCommandHandle__* commandHandle, double NeoHookeanMu, double NeoHookeanLambda, double NeoHookeanDamping); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyAddMassSpringForce(b3SharedMemoryCommandHandle__* commandHandle, double springElasticStiffness, double springDampingStiffness); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyAddGravityForce(b3SharedMemoryCommandHandle__* commandHandle, double gravityX, double gravityY, double gravityZ); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetCollisionHardness(b3SharedMemoryCommandHandle__* commandHandle, double collisionHardness); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetSelfCollision(b3SharedMemoryCommandHandle__* commandHandle, int useSelfCollision); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetRepulsionStiffness(b3SharedMemoryCommandHandle__* commandHandle, double stiffness); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyUseFaceContact(b3SharedMemoryCommandHandle__* commandHandle, int useFaceContact); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodySetFrictionCoefficient(b3SharedMemoryCommandHandle__* commandHandle, double frictionCoefficient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyUseBendingSprings(b3SharedMemoryCommandHandle__* commandHandle, int useBendingSprings, double bendingStiffness); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3LoadSoftBodyUseAllDirectionDampingSprings(b3SharedMemoryCommandHandle__* commandHandle, int useAllDirectionDamping); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3InitCreateSoftBodyAnchorConstraintCommand(b3PhysicsClientHandle__* physClient, int softBodyUniqueId, int nodeIndex, int bodyUniqueId, int linkIndex, double* bodyFramePosition); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RequestVREventsCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3VREventsSetDeviceTypeFilter(b3SharedMemoryCommandHandle__* commandHandle, int deviceTypeFilter); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetVREventsData(b3PhysicsClientHandle__* physClient, b3VREventsData* vrEventsData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3SetVRCameraStateCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3SetVRCameraRootPosition(b3SharedMemoryCommandHandle__* commandHandle, double* rootPos); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3SetVRCameraRootOrientation(b3SharedMemoryCommandHandle__* commandHandle, double* rootOrn); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3SetVRCameraTrackingObject(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3SetVRCameraTrackingObjectFlag(b3SharedMemoryCommandHandle__* commandHandle, int flag); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RequestKeyboardEventsCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RequestKeyboardEventsCommandInit2(b3SharedMemoryCommandHandle__* commandHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetKeyboardEventsData(b3PhysicsClientHandle__* physClient, b3KeyboardEventsData* keyboardEventsData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3RequestMouseEventsCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetMouseEventsData(b3PhysicsClientHandle__* physClient, b3MouseEventsData* mouseEventsData); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3StateLoggingCommandInit(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingStart(b3SharedMemoryCommandHandle__* commandHandle, int loggingType, byte* fileName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingAddLoggingObjectUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int objectUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingSetMaxLogDof(b3SharedMemoryCommandHandle__* commandHandle, int maxLogDof); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingSetLinkIndexA(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexA); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingSetLinkIndexB(b3SharedMemoryCommandHandle__* commandHandle, int linkIndexB); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingSetBodyAUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int bodyAUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingSetBodyBUniqueId(b3SharedMemoryCommandHandle__* commandHandle, int bodyBUniqueId); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingSetDeviceTypeFilter(b3SharedMemoryCommandHandle__* commandHandle, int deviceTypeFilter); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingSetLogFlags(b3SharedMemoryCommandHandle__* commandHandle, int logFlags); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3GetStatusLoggingUniqueId(b3SharedMemoryStatusHandle__* statusHandle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern int b3StateLoggingStop(b3SharedMemoryCommandHandle__* commandHandle, int loggingUid); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3ProfileTimingCommandInit(b3PhysicsClientHandle__* physClient, byte* name); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetProfileTimingDuractionInMicroSeconds(b3SharedMemoryCommandHandle__* commandHandle, int duration); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetProfileTimingType(b3SharedMemoryCommandHandle__* commandHandle, int type_); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3PushProfileTiming(b3PhysicsClientHandle__* physClient, byte* timingName); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3PopProfileTiming(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3SetTimeOut(b3PhysicsClientHandle__* physClient, double timeOutInSeconds); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern double b3GetTimeOut(b3PhysicsClientHandle__* physClient); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern b3SharedMemoryCommandHandle__* b3SetAdditionalSearchPath(b3PhysicsClientHandle__* physClient, byte* path); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3MultiplyTransforms(double* posA, double* ornA, double* posB, double* ornB, double* outPos, double* outOrn); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3InvertTransform(double* pos, double* orn, double* outPos, double* outOrn); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3QuaternionSlerp(double* startQuat, double* endQuat, double interpolationFraction, double* outOrn); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetQuaternionFromAxisAngle(double* axis, double angle, double* outQuat); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetAxisAngleFromQuaternion(double* quat, double* axis, double* angle); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetQuaternionDifference(double* startQuat, double* endQuat, double* outOrn); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3GetAxisDifferenceQuaternion(double* startQuat, double* endQuat, double* axisOut); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3CalculateVelocityQuaternion(double* startQuat, double* endQuat, double deltaTime, double* angVelOut); [DllImport(__DllName, CallingConvention = CallingConvention.Cdecl)] public static extern void b3RotateVector(double* quat, double* vec, double* vecOut); } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3UserDataValue { public int m_type; public int m_length; public byte* m_data1; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3BodyInfo { public fixed byte m_baseName[1024]; public fixed byte m_bodyName[1024]; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3JointSensorState { public double m_jointPosition; public double m_jointVelocity; public fixed double m_jointForceTorque[6]; public double m_jointMotorTorque; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3DebugLines { public int m_numDebugLines; public float* m_linesFrom; public float* m_linesTo; public float* m_linesColor; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3OverlappingObject { public int m_objectUniqueId; public int m_linkIndex; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3AABBOverlapData { public int m_numOverlappingObjects; public b3OverlappingObject* m_overlappingObjects; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3MeshVertex { public double x; public double y; public double z; public double w; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3MeshData { public int m_numVertices; public b3MeshVertex* m_vertices; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3TetraMeshData { public int m_numVertices; public b3MeshVertex* m_vertices; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3UserConstraintState { public fixed double m_appliedConstraintForces[6]; public int m_numDofs; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3VREventsData { public int m_numControllerEvents; public b3VRControllerEvent* m_controllerEvents; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3KeyboardEvent { public int m_keyCode; public int m_keyState; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3KeyboardEventsData { public int m_numKeyboardEvents; public b3KeyboardEvent* m_keyboardEvents; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3MouseEventsData { public int m_numMouseEvents; public b3MouseEvent* m_mouseEvents; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3BodyNotificationArgs { public int m_bodyUniqueId; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3UserDataNotificationArgs { public int m_bodyUniqueId; public int m_linkIndex; public int m_visualShapeIndex; public int m_userDataId; public fixed byte m_key[256]; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3LinkNotificationArgs { public int m_bodyUniqueId; public int m_linkIndex; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3VisualShapeNotificationArgs { public int m_bodyUniqueId; public int m_linkIndex; public int m_visualShapeIndex; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3TransformChangeNotificationArgs { public int m_bodyUniqueId; public int m_linkIndex; public fixed double m_worldPosition[3]; public fixed double m_worldRotation[4]; public fixed double m_localScaling[3]; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3SoftBodyChangeNotificationArgs { public int m_bodyUniqueId; public int m_linkIndex; } [StructLayout(LayoutKind.Explicit)] public unsafe struct b3Notification__bindgen_ty_1 { [FieldOffset(0)] public b3BodyNotificationArgs m_bodyArgs; [FieldOffset(0)] public b3UserDataNotificationArgs m_userDataArgs; [FieldOffset(0)] public b3LinkNotificationArgs m_linkArgs; [FieldOffset(0)] public b3VisualShapeNotificationArgs m_visualShapeArgs; [FieldOffset(0)] public b3TransformChangeNotificationArgs m_transformChangeArgs; [FieldOffset(0)] public b3SoftBodyChangeNotificationArgs m_softBodyChangeArgs; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3ContactInformation { public int m_numContactPoints; public b3ContactPointData* m_contactPointData; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3RayData { public fixed double m_rayFromPosition[3]; public fixed double m_rayToPosition[3]; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3RaycastInformation { public int m_numRayHits; public b3RayHitInfo* m_rayHits; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3VisualShapeInformation { public int m_numVisualShapes; public b3VisualShapeData* m_visualShapeData; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe struct b3CollisionShapeInformation { public int m_numCollisionShapes; public b3CollisionShapeData* m_collisionShapeData; } [StructLayout(LayoutKind.Sequential)] public unsafe 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)] public unsafe 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)] public unsafe 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)] public unsafe 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)] public unsafe struct b3PhysicsClientHandle__ { public int unused; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3SharedMemoryCommandHandle__ { public int unused; } [StructLayout(LayoutKind.Sequential)] public unsafe struct b3SharedMemoryStatusHandle__ { public int unused; } }