pub const B3_DEFAULT_CATEGORY_BITS: u64 = u64::MAX;
pub const B3_DEFAULT_MASK_BITS: u64 = u64::MAX;
unsafe extern "C" {
pub fn b3CreateWorldDoublePrecision(
def: *const b3WorldDef,
) -> b3WorldId;
}
#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage> {
storage: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
#[inline]
pub const fn new(storage: Storage) -> Self {
Self { storage }
}
}
impl<Storage> __BindgenBitfieldUnit<Storage>
where
Storage: AsRef<[u8]> + AsMut<[u8]>,
{
#[inline]
fn extract_bit(byte: u8, index: usize) -> bool {
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
byte & mask == mask
}
#[inline]
pub fn get_bit(&self, index: usize) -> bool {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = self.storage.as_ref()[byte_index];
Self::extract_bit(byte, index)
}
#[inline]
pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
debug_assert!(index / 8 < core::mem::size_of::<Storage>());
let byte_index = index / 8;
let byte = unsafe {
*(core::ptr::addr_of!((*this).storage) as *const u8)
.offset(byte_index as isize)
};
Self::extract_bit(byte, index)
}
#[inline]
fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
if val { byte | mask } else { byte & !mask }
}
#[inline]
pub fn set_bit(&mut self, index: usize, val: bool) {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = &mut self.storage.as_mut()[byte_index];
*byte = Self::change_bit(*byte, index, val);
}
#[inline]
pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
debug_assert!(index / 8 < core::mem::size_of::<Storage>());
let byte_index = index / 8;
let byte = unsafe {
(core::ptr::addr_of_mut!((*this).storage) as *mut u8)
.offset(byte_index as isize)
};
unsafe { *byte = Self::change_bit(*byte, index, val) };
}
#[inline]
pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!(
(bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len(),
);
let mut val = 0;
for i in 0..(bit_width as usize) {
if self.get_bit(i + bit_offset) {
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
val |= 1 << index;
}
}
val
}
#[inline]
pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
debug_assert!(
(bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>(),
);
let mut val = 0;
for i in 0..(bit_width as usize) {
if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
val |= 1 << index;
}
}
val
}
#[inline]
pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!(
(bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len(),
);
for i in 0..(bit_width as usize) {
let mask = 1 << i;
let val_bit_is_set = val & mask == mask;
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
self.set_bit(index + bit_offset, val_bit_is_set);
}
}
#[inline]
pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
debug_assert!(
(bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>(),
);
for i in 0..(bit_width as usize) {
let mask = 1 << i;
let val_bit_is_set = val & mask == mask;
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
}
}
}
pub const B3_ENABLE_VALIDATION: u32 = 0;
pub const B3_NULL_INDEX: i32 = -1;
pub const B3_HASH_INIT: u32 = 5381;
pub const B3_PI: f64 = 3.14159265359;
pub const B3_DEG_TO_RAD: f64 = 0.01745329251;
pub const B3_RAD_TO_DEG: f64 = 57.2957795131;
pub const B3_MIN_SCALE: f64 = 0.01;
pub const B3_MAX_WORKERS: u32 = 32;
pub const B3_MAX_TASKS: u32 = 256;
pub const B3_GRAPH_COLOR_COUNT: u32 = 24;
pub const B3_CONTACT_MANIFOLD_COUNT_BUCKETS: u32 = 8;
pub const B3_MIN_FRICTION_WEIGHT: f64 = 0.0000000001;
pub const B3_MAX_WORLDS: u32 = 128;
pub const B3_MAX_ROTATION: f64 = 0.7853981633975;
pub const B3_CONTACT_RECYCLE_ANGULAR_DISTANCE: f64 = 0.99240388;
pub const B3_AABB_MARGIN_FRACTION: f64 = 0.125;
pub const B3_TIME_TO_SLEEP: f64 = 0.5;
pub const B3_MAX_MANIFOLD_POINTS: u32 = 4;
pub const B3_MAX_SHAPE_CAST_POINTS: u32 = 64;
pub const B3_GYROSCOPIC_ITERATIONS: u32 = 1;
pub const B3_MAX_HULL_VERTICES: u32 = 128;
pub const B3_MAX_HULL_FACES: u32 = 128;
pub const B3_MAX_HULL_EDGES: u32 = 128;
pub const B3_PARALLEL_EDGE_TOL: f64 = 0.005;
pub const B3_SHAPE_POWER: u32 = 22;
pub const B3_CHILD_POWER: u32 = 20;
pub const B3_MAX_SHAPES: u32 = 4194304;
pub const B3_MAX_CHILD_SHAPES: u32 = 1048576;
pub const B3_RESTITUTION_ITERATIONS: u32 = 1;
pub const B3_DYNAMIC_TREE_VERSION: i64 = -7787375179321898166;
pub const B3_HULL_VERSION: i64 = -2715301031560262655;
pub const B3_MESH_VERSION: i64 = -6066037853393090451;
pub const B3_HEIGHT_FIELD_HOLE: u32 = 255;
pub const B3_HEIGHT_FIELD_VERSION: i64 = -8423759003537458044;
pub const B3_COMPOUND_VERSION: u64 = 6012353156626885901;
pub const B3_MAX_COMPOUND_MESH_MATERIALS: u32 = 4;
pub type b3AllocFcn = ::std::option::Option<
unsafe extern "C" fn(size: i32, alignment: i32) -> *mut ::std::os::raw::c_void,
>;
pub type b3FreeFcn = ::std::option::Option<
unsafe extern "C" fn(mem: *mut ::std::os::raw::c_void),
>;
pub type b3AssertFcn = ::std::option::Option<
unsafe extern "C" fn(
condition: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
lineNumber: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
>;
pub type b3LogFcn = ::std::option::Option<
unsafe extern "C" fn(message: *const ::std::os::raw::c_char),
>;
unsafe extern "C" {
pub fn b3SetAllocator(allocFcn: b3AllocFcn, freeFcn: b3FreeFcn);
}
unsafe extern "C" {
pub fn b3GetByteCount() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3SetAssertFcn(assertFcn: b3AssertFcn);
}
unsafe extern "C" {
pub fn b3InternalAssert(
condition: *const ::std::os::raw::c_char,
fileName: *const ::std::os::raw::c_char,
lineNumber: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3SetLogFcn(logFcn: b3LogFcn);
}
#[doc = " Version numbering scheme.\n See https://semver.org/"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Version {
pub major: ::std::os::raw::c_int,
pub minor: ::std::os::raw::c_int,
pub revision: ::std::os::raw::c_int,
}
unsafe extern "C" {
pub fn b3GetVersion() -> b3Version;
}
unsafe extern "C" {
pub fn b3IsDoublePrecision() -> bool;
}
unsafe extern "C" {
pub fn b3GetTicks() -> u64;
}
unsafe extern "C" {
pub fn b3GetMilliseconds(ticks: u64) -> f32;
}
unsafe extern "C" {
pub fn b3GetMillisecondsAndReset(ticks: *mut u64) -> f32;
}
unsafe extern "C" {
pub fn b3Yield();
}
unsafe extern "C" {
pub fn b3Sleep(milliseconds: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn b3Hash(hash: u32, data: *const u8, count: ::std::os::raw::c_int) -> u32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Vec2 {
pub x: f32,
pub y: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Vec3 {
pub x: f32,
pub y: f32,
pub z: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CosSin {
pub cosine: f32,
pub sine: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Quat {
pub v: b3Vec3,
pub s: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Transform {
pub p: b3Vec3,
pub q: b3Quat,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Pos {
pub x: f64,
pub y: f64,
pub z: f64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3WorldTransform {
pub p: b3Pos,
pub q: b3Quat,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Matrix3 {
pub cx: b3Vec3,
pub cy: b3Vec3,
pub cz: b3Vec3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3AABB {
pub lowerBound: b3Vec3,
pub upperBound: b3Vec3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Plane {
pub normal: b3Vec3,
pub offset: f32,
}
unsafe extern "C" {
pub fn b3Atan2(y: f32, x: f32) -> f32;
}
unsafe extern "C" {
pub fn b3ComputeCosSin(radians: f32) -> b3CosSin;
}
unsafe extern "C" {
pub fn b3MakeQuatFromMatrix(m: *const b3Matrix3) -> b3Quat;
}
unsafe extern "C" {
pub fn b3ComputeQuatBetweenUnitVectors(v1: b3Vec3, v2: b3Vec3) -> b3Quat;
}
unsafe extern "C" {
pub fn b3Steiner(mass: f32, origin: b3Vec3) -> b3Matrix3;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SegmentDistanceResult {
pub point1: b3Vec3,
pub fraction1: f32,
pub point2: b3Vec3,
pub fraction2: f32,
}
unsafe extern "C" {
pub fn b3PointToSegmentDistance(a: b3Vec3, b: b3Vec3, q: b3Vec3) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3LineDistance(
p1: b3Vec3,
d1: b3Vec3,
p2: b3Vec3,
d2: b3Vec3,
) -> b3SegmentDistanceResult;
}
unsafe extern "C" {
pub fn b3SegmentDistance(
p1: b3Vec3,
q1: b3Vec3,
p2: b3Vec3,
q2: b3Vec3,
) -> b3SegmentDistanceResult;
}
unsafe extern "C" {
pub fn b3IsValidFloat(a: f32) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidVec3(a: b3Vec3) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidQuat(q: b3Quat) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidTransform(a: b3Transform) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidMatrix3(a: b3Matrix3) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidAABB(a: b3AABB) -> bool;
}
unsafe extern "C" {
pub fn b3IsBoundedAABB(a: b3AABB) -> bool;
}
unsafe extern "C" {
pub fn b3IsSaneAABB(a: b3AABB) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidPlane(a: b3Plane) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidPosition(p: b3Pos) -> bool;
}
unsafe extern "C" {
pub fn b3IsValidWorldTransform(t: b3WorldTransform) -> bool;
}
unsafe extern "C" {
pub fn b3SetLengthUnitsPerMeter(lengthUnits: f32);
}
unsafe extern "C" {
pub fn b3GetLengthUnitsPerMeter() -> f32;
}
unsafe extern "C" {
pub fn b3SetStallThreshold(seconds: f32);
}
unsafe extern "C" {
pub fn b3GetStallThreshold() -> f32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3WorldId {
pub index1: u16,
pub generation: u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BodyId {
pub index1: i32,
pub world0: u16,
pub generation: u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ShapeId {
pub index1: i32,
pub world0: u16,
pub generation: u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3JointId {
pub index1: i32,
pub world0: u16,
pub generation: u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ContactId {
pub index1: i32,
pub world0: u16,
pub padding: i16,
pub generation: u32,
}
pub type b3TaskCallback = ::std::option::Option<
unsafe extern "C" fn(taskContext: *mut ::std::os::raw::c_void),
>;
pub type b3EnqueueTaskCallback = ::std::option::Option<
unsafe extern "C" fn(
task: b3TaskCallback,
taskContext: *mut ::std::os::raw::c_void,
userContext: *mut ::std::os::raw::c_void,
taskName: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_void,
>;
pub type b3FinishTaskCallback = ::std::option::Option<
unsafe extern "C" fn(
userTask: *mut ::std::os::raw::c_void,
userContext: *mut ::std::os::raw::c_void,
),
>;
pub type b3CreateDebugShapeCallback = ::std::option::Option<
unsafe extern "C" fn(
debugShape: *const b3DebugShape,
userContext: *mut ::std::os::raw::c_void,
) -> *mut ::std::os::raw::c_void,
>;
pub type b3DestroyDebugShapeCallback = ::std::option::Option<
unsafe extern "C" fn(
userShape: *mut ::std::os::raw::c_void,
userContext: *mut ::std::os::raw::c_void,
),
>;
pub type b3FrictionCallback = ::std::option::Option<
unsafe extern "C" fn(
frictionA: f32,
userMaterialIdA: u64,
frictionB: f32,
userMaterialIdB: u64,
) -> f32,
>;
pub type b3RestitutionCallback = ::std::option::Option<
unsafe extern "C" fn(
restitutionA: f32,
userMaterialIdA: u64,
restitutionB: f32,
userMaterialIdB: u64,
) -> f32,
>;
pub type b3CustomFilterFcn = ::std::option::Option<
unsafe extern "C" fn(
shapeIdA: b3ShapeId,
shapeIdB: b3ShapeId,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
pub type b3PreSolveFcn = ::std::option::Option<
unsafe extern "C" fn(
shapeIdA: b3ShapeId,
shapeIdB: b3ShapeId,
point: b3Pos,
normal: b3Vec3,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
pub type b3OverlapResultFcn = ::std::option::Option<
unsafe extern "C" fn(
shapeId: b3ShapeId,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
pub type b3CastResultFcn = ::std::option::Option<
unsafe extern "C" fn(
shapeId: b3ShapeId,
point: b3Pos,
normal: b3Vec3,
fraction: f32,
userMaterialId: u64,
triangleIndex: ::std::os::raw::c_int,
childIndex: ::std::os::raw::c_int,
context: *mut ::std::os::raw::c_void,
) -> f32,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Capacity {
pub staticShapeCount: ::std::os::raw::c_int,
pub dynamicShapeCount: ::std::os::raw::c_int,
pub staticBodyCount: ::std::os::raw::c_int,
pub dynamicBodyCount: ::std::os::raw::c_int,
pub contactCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3WorldDef {
pub gravity: b3Vec3,
pub restitutionThreshold: f32,
pub hitEventThreshold: f32,
pub contactHertz: f32,
pub contactDampingRatio: f32,
pub contactSpeed: f32,
pub maximumLinearSpeed: f32,
pub frictionCallback: b3FrictionCallback,
pub restitutionCallback: b3RestitutionCallback,
pub enableSleep: bool,
pub enableContinuous: bool,
pub workerCount: u32,
pub enqueueTask: b3EnqueueTaskCallback,
pub finishTask: b3FinishTaskCallback,
pub userTaskContext: *mut ::std::os::raw::c_void,
pub userData: *mut ::std::os::raw::c_void,
pub createDebugShape: b3CreateDebugShapeCallback,
pub destroyDebugShape: b3DestroyDebugShapeCallback,
pub userDebugShapeContext: *mut ::std::os::raw::c_void,
pub capacity: b3Capacity,
pub internalValue: ::std::os::raw::c_int,
}
unsafe extern "C" {
pub fn b3DefaultWorldDef() -> b3WorldDef;
}
pub const b3BodyType_b3_staticBody: b3BodyType = 0;
pub const b3BodyType_b3_kinematicBody: b3BodyType = 1;
pub const b3BodyType_b3_dynamicBody: b3BodyType = 2;
pub const b3BodyType_b3_bodyTypeCount: b3BodyType = 3;
pub type b3BodyType = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MotionLocks {
pub linearX: bool,
pub linearY: bool,
pub linearZ: bool,
pub angularX: bool,
pub angularY: bool,
pub angularZ: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BodyDef {
pub type_: b3BodyType,
pub position: b3Pos,
pub rotation: b3Quat,
pub linearVelocity: b3Vec3,
pub angularVelocity: b3Vec3,
pub linearDamping: f32,
pub angularDamping: f32,
pub gravityScale: f32,
pub sleepThreshold: f32,
pub name: *const ::std::os::raw::c_char,
pub userData: *mut ::std::os::raw::c_void,
pub motionLocks: b3MotionLocks,
pub enableSleep: bool,
pub isAwake: bool,
pub isBullet: bool,
pub isEnabled: bool,
pub allowFastRotation: bool,
pub enableContactRecycling: bool,
pub internalValue: ::std::os::raw::c_int,
}
unsafe extern "C" {
pub fn b3DefaultBodyDef() -> b3BodyDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Filter {
pub categoryBits: u64,
pub maskBits: u64,
pub groupIndex: ::std::os::raw::c_int,
}
unsafe extern "C" {
pub fn b3DefaultFilter() -> b3Filter;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SurfaceMaterial {
pub friction: f32,
pub restitution: f32,
pub rollingResistance: f32,
pub tangentVelocity: b3Vec3,
pub userMaterialId: u64,
pub customColor: u32,
pub padding: u32,
}
unsafe extern "C" {
pub fn b3DefaultSurfaceMaterial() -> b3SurfaceMaterial;
}
pub const b3ShapeType_b3_capsuleShape: b3ShapeType = 0;
pub const b3ShapeType_b3_compoundShape: b3ShapeType = 1;
pub const b3ShapeType_b3_heightShape: b3ShapeType = 2;
pub const b3ShapeType_b3_hullShape: b3ShapeType = 3;
pub const b3ShapeType_b3_meshShape: b3ShapeType = 4;
pub const b3ShapeType_b3_sphereShape: b3ShapeType = 5;
pub const b3ShapeType_b3_shapeTypeCount: b3ShapeType = 6;
pub type b3ShapeType = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ShapeDef {
pub name: *const ::std::os::raw::c_char,
pub userData: *mut ::std::os::raw::c_void,
pub materials: *mut b3SurfaceMaterial,
pub materialCount: ::std::os::raw::c_int,
pub baseMaterial: b3SurfaceMaterial,
pub density: f32,
pub explosionScale: f32,
pub filter: b3Filter,
pub enableCustomFiltering: bool,
pub isSensor: bool,
pub enableSensorEvents: bool,
pub enableContactEvents: bool,
pub enableHitEvents: bool,
pub enablePreSolveEvents: bool,
pub invokeContactCreation: bool,
pub updateBodyMass: bool,
pub enableSpeculativeContact: bool,
pub internalValue: ::std::os::raw::c_int,
}
unsafe extern "C" {
pub fn b3DefaultShapeDef() -> b3ShapeDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Profile {
pub step: f32,
pub pairs: f32,
pub collide: f32,
pub solve: f32,
pub solverSetup: f32,
pub constraints: f32,
pub prepareConstraints: f32,
pub integrateVelocities: f32,
pub warmStart: f32,
pub solveImpulses: f32,
pub integratePositions: f32,
pub relaxImpulses: f32,
pub applyRestitution: f32,
pub storeImpulses: f32,
pub splitIslands: f32,
pub transforms: f32,
pub sensorHits: f32,
pub jointEvents: f32,
pub hitEvents: f32,
pub refit: f32,
pub bullets: f32,
pub sleepIslands: f32,
pub sensors: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Counters {
pub bodyCount: ::std::os::raw::c_int,
pub shapeCount: ::std::os::raw::c_int,
pub contactCount: ::std::os::raw::c_int,
pub jointCount: ::std::os::raw::c_int,
pub islandCount: ::std::os::raw::c_int,
pub stackUsed: ::std::os::raw::c_int,
pub arenaCapacity: ::std::os::raw::c_int,
pub staticTreeHeight: ::std::os::raw::c_int,
pub treeHeight: ::std::os::raw::c_int,
pub satCallCount: ::std::os::raw::c_int,
pub satCacheHitCount: ::std::os::raw::c_int,
pub byteCount: ::std::os::raw::c_int,
pub taskCount: ::std::os::raw::c_int,
pub colorCounts: [::std::os::raw::c_int; 24usize],
pub manifoldCounts: [::std::os::raw::c_int; 8usize],
pub awakeContactCount: ::std::os::raw::c_int,
pub recycledContactCount: ::std::os::raw::c_int,
pub distanceIterations: ::std::os::raw::c_int,
pub pushBackIterations: ::std::os::raw::c_int,
pub rootIterations: ::std::os::raw::c_int,
}
pub const b3JointType_b3_parallelJoint: b3JointType = 0;
pub const b3JointType_b3_distanceJoint: b3JointType = 1;
pub const b3JointType_b3_filterJoint: b3JointType = 2;
pub const b3JointType_b3_motorJoint: b3JointType = 3;
pub const b3JointType_b3_prismaticJoint: b3JointType = 4;
pub const b3JointType_b3_revoluteJoint: b3JointType = 5;
pub const b3JointType_b3_sphericalJoint: b3JointType = 6;
pub const b3JointType_b3_weldJoint: b3JointType = 7;
pub const b3JointType_b3_wheelJoint: b3JointType = 8;
pub type b3JointType = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3JointDef {
pub userData: *mut ::std::os::raw::c_void,
pub bodyIdA: b3BodyId,
pub bodyIdB: b3BodyId,
pub localFrameA: b3Transform,
pub localFrameB: b3Transform,
pub forceThreshold: f32,
pub torqueThreshold: f32,
pub constraintHertz: f32,
pub constraintDampingRatio: f32,
pub drawScale: f32,
pub collideConnected: bool,
pub internalValue: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3DistanceJointDef {
pub base: b3JointDef,
pub length: f32,
pub enableSpring: bool,
pub lowerSpringForce: f32,
pub upperSpringForce: f32,
pub hertz: f32,
pub dampingRatio: f32,
pub enableLimit: bool,
pub minLength: f32,
pub maxLength: f32,
pub enableMotor: bool,
pub maxMotorForce: f32,
pub motorSpeed: f32,
}
unsafe extern "C" {
pub fn b3DefaultDistanceJointDef() -> b3DistanceJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MotorJointDef {
pub base: b3JointDef,
pub linearVelocity: b3Vec3,
pub maxVelocityForce: f32,
pub angularVelocity: b3Vec3,
pub maxVelocityTorque: f32,
pub linearHertz: f32,
pub linearDampingRatio: f32,
pub maxSpringForce: f32,
pub angularHertz: f32,
pub angularDampingRatio: f32,
pub maxSpringTorque: f32,
}
unsafe extern "C" {
pub fn b3DefaultMotorJointDef() -> b3MotorJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3FilterJointDef {
pub base: b3JointDef,
}
unsafe extern "C" {
pub fn b3DefaultFilterJointDef() -> b3FilterJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ParallelJointDef {
pub base: b3JointDef,
pub hertz: f32,
pub dampingRatio: f32,
pub maxTorque: f32,
}
unsafe extern "C" {
pub fn b3DefaultParallelJointDef() -> b3ParallelJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3PrismaticJointDef {
pub base: b3JointDef,
pub enableSpring: bool,
pub hertz: f32,
pub dampingRatio: f32,
pub targetTranslation: f32,
pub enableLimit: bool,
pub lowerTranslation: f32,
pub upperTranslation: f32,
pub enableMotor: bool,
pub maxMotorForce: f32,
pub motorSpeed: f32,
}
unsafe extern "C" {
pub fn b3DefaultPrismaticJointDef() -> b3PrismaticJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3RevoluteJointDef {
pub base: b3JointDef,
pub targetAngle: f32,
pub enableSpring: bool,
pub hertz: f32,
pub dampingRatio: f32,
pub enableLimit: bool,
pub lowerAngle: f32,
pub upperAngle: f32,
pub enableMotor: bool,
pub maxMotorTorque: f32,
pub motorSpeed: f32,
}
unsafe extern "C" {
pub fn b3DefaultRevoluteJointDef() -> b3RevoluteJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SphericalJointDef {
pub base: b3JointDef,
pub enableSpring: bool,
pub hertz: f32,
pub dampingRatio: f32,
pub targetRotation: b3Quat,
pub enableConeLimit: bool,
pub coneAngle: f32,
pub enableTwistLimit: bool,
pub lowerTwistAngle: f32,
pub upperTwistAngle: f32,
pub enableMotor: bool,
pub maxMotorTorque: f32,
pub motorVelocity: b3Vec3,
}
unsafe extern "C" {
pub fn b3DefaultSphericalJointDef() -> b3SphericalJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3WeldJointDef {
pub base: b3JointDef,
pub linearHertz: f32,
pub angularHertz: f32,
pub linearDampingRatio: f32,
pub angularDampingRatio: f32,
}
unsafe extern "C" {
pub fn b3DefaultWeldJointDef() -> b3WeldJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3WheelJointDef {
pub base: b3JointDef,
pub enableSuspensionSpring: bool,
pub suspensionHertz: f32,
pub suspensionDampingRatio: f32,
pub enableSuspensionLimit: bool,
pub lowerSuspensionLimit: f32,
pub upperSuspensionLimit: f32,
pub enableSpinMotor: bool,
pub maxSpinTorque: f32,
pub spinSpeed: f32,
pub enableSteering: bool,
pub steeringHertz: f32,
pub steeringDampingRatio: f32,
pub targetSteeringAngle: f32,
pub maxSteeringTorque: f32,
pub enableSteeringLimit: bool,
pub lowerSteeringLimit: f32,
pub upperSteeringLimit: f32,
}
unsafe extern "C" {
pub fn b3DefaultWheelJointDef() -> b3WheelJointDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ExplosionDef {
pub maskBits: u64,
pub position: b3Pos,
pub radius: f32,
pub falloff: f32,
pub impulsePerArea: f32,
}
unsafe extern "C" {
pub fn b3DefaultExplosionDef() -> b3ExplosionDef;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SensorBeginTouchEvent {
pub sensorShapeId: b3ShapeId,
pub visitorShapeId: b3ShapeId,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SensorEndTouchEvent {
pub sensorShapeId: b3ShapeId,
pub visitorShapeId: b3ShapeId,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SensorEvents {
pub beginEvents: *mut b3SensorBeginTouchEvent,
pub endEvents: *mut b3SensorEndTouchEvent,
pub beginCount: ::std::os::raw::c_int,
pub endCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ContactBeginTouchEvent {
pub shapeIdA: b3ShapeId,
pub shapeIdB: b3ShapeId,
pub contactId: b3ContactId,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ContactEndTouchEvent {
pub shapeIdA: b3ShapeId,
pub shapeIdB: b3ShapeId,
pub contactId: b3ContactId,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ContactHitEvent {
pub shapeIdA: b3ShapeId,
pub shapeIdB: b3ShapeId,
pub contactId: b3ContactId,
pub point: b3Pos,
pub normal: b3Vec3,
pub approachSpeed: f32,
pub userMaterialIdA: u64,
pub userMaterialIdB: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ContactEvents {
pub beginEvents: *mut b3ContactBeginTouchEvent,
pub endEvents: *mut b3ContactEndTouchEvent,
pub hitEvents: *mut b3ContactHitEvent,
pub beginCount: ::std::os::raw::c_int,
pub endCount: ::std::os::raw::c_int,
pub hitCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BodyMoveEvent {
pub userData: *mut ::std::os::raw::c_void,
pub transform: b3WorldTransform,
pub bodyId: b3BodyId,
pub fellAsleep: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BodyEvents {
pub moveEvents: *mut b3BodyMoveEvent,
pub moveCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3JointEvent {
pub jointId: b3JointId,
pub userData: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3JointEvents {
pub jointEvents: *mut b3JointEvent,
pub count: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ContactData {
pub contactId: b3ContactId,
pub shapeIdA: b3ShapeId,
pub shapeIdB: b3ShapeId,
pub manifolds: *const b3Manifold,
pub manifoldCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3QueryFilter {
pub categoryBits: u64,
pub maskBits: u64,
pub id: u64,
pub name: *const ::std::os::raw::c_char,
}
unsafe extern "C" {
pub fn b3DefaultQueryFilter() -> b3QueryFilter;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3RayCastInput {
pub origin: b3Vec3,
pub translation: b3Vec3,
pub maxFraction: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3RayResult {
pub shapeId: b3ShapeId,
pub point: b3Pos,
pub normal: b3Vec3,
pub userMaterialId: u64,
pub fraction: f32,
pub triangleIndex: ::std::os::raw::c_int,
pub childIndex: ::std::os::raw::c_int,
pub nodeVisits: ::std::os::raw::c_int,
pub leafVisits: ::std::os::raw::c_int,
pub hit: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ShapeProxy {
pub points: *const b3Vec3,
pub count: ::std::os::raw::c_int,
pub radius: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ShapeCastInput {
pub proxy: b3ShapeProxy,
pub translation: b3Vec3,
pub maxFraction: f32,
pub canEncroach: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BoxCastInput {
pub box_: b3AABB,
pub translation: b3Vec3,
pub maxFraction: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CastOutput {
pub normal: b3Vec3,
pub point: b3Vec3,
pub fraction: f32,
pub iterations: ::std::os::raw::c_int,
pub triangleIndex: ::std::os::raw::c_int,
pub childIndex: ::std::os::raw::c_int,
pub materialIndex: ::std::os::raw::c_int,
pub hit: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3WorldCastOutput {
pub normal: b3Vec3,
pub point: b3Pos,
pub fraction: f32,
pub iterations: ::std::os::raw::c_int,
pub triangleIndex: ::std::os::raw::c_int,
pub childIndex: ::std::os::raw::c_int,
pub materialIndex: ::std::os::raw::c_int,
pub hit: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BodyCastResult {
pub shapeId: b3ShapeId,
pub point: b3Pos,
pub normal: b3Vec3,
pub fraction: f32,
pub triangleIndex: ::std::os::raw::c_int,
pub userMaterialId: u64,
pub iterations: ::std::os::raw::c_int,
pub hit: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SimplexCache {
pub metric: f32,
pub count: u16,
pub indexA: [u8; 4usize],
pub indexB: [u8; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ShapeCastPairInput {
pub proxyA: b3ShapeProxy,
pub proxyB: b3ShapeProxy,
pub transform: b3Transform,
pub translationB: b3Vec3,
pub maxFraction: f32,
pub canEncroach: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3DistanceInput {
pub proxyA: b3ShapeProxy,
pub proxyB: b3ShapeProxy,
pub transform: b3Transform,
pub useRadii: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3DistanceOutput {
pub pointA: b3Vec3,
pub pointB: b3Vec3,
pub normal: b3Vec3,
pub distance: f32,
pub iterations: ::std::os::raw::c_int,
pub simplexCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SimplexVertex {
pub wA: b3Vec3,
pub wB: b3Vec3,
pub w: b3Vec3,
pub a: f32,
pub indexA: ::std::os::raw::c_int,
pub indexB: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Simplex {
pub vertices: [b3SimplexVertex; 4usize],
pub count: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Sweep {
pub localCenter: b3Vec3,
pub c1: b3Vec3,
pub c2: b3Vec3,
pub q1: b3Quat,
pub q2: b3Quat,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3TOIInput {
pub proxyA: b3ShapeProxy,
pub proxyB: b3ShapeProxy,
pub sweepA: b3Sweep,
pub sweepB: b3Sweep,
pub maxFraction: f32,
}
pub const b3TOIState_b3_toiStateUnknown: b3TOIState = 0;
pub const b3TOIState_b3_toiStateFailed: b3TOIState = 1;
pub const b3TOIState_b3_toiStateOverlapped: b3TOIState = 2;
pub const b3TOIState_b3_toiStateHit: b3TOIState = 3;
pub const b3TOIState_b3_toiStateSeparated: b3TOIState = 4;
pub type b3TOIState = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3TOIOutput {
pub state: b3TOIState,
pub point: b3Vec3,
pub normal: b3Vec3,
pub fraction: f32,
pub distance: f32,
pub distanceIterations: ::std::os::raw::c_int,
pub pushBackIterations: ::std::os::raw::c_int,
pub rootIterations: ::std::os::raw::c_int,
pub usedFallback: bool,
}
pub const b3TreeNodeFlags_b3_allocatedNode: b3TreeNodeFlags = 1;
pub const b3TreeNodeFlags_b3_enlargedNode: b3TreeNodeFlags = 2;
pub const b3TreeNodeFlags_b3_leafNode: b3TreeNodeFlags = 4;
pub type b3TreeNodeFlags = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3TreeNodeChildren {
pub child1: ::std::os::raw::c_int,
pub child2: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct b3TreeNode {
pub aabb: b3AABB,
pub categoryBits: u64,
pub __bindgen_anon_1: b3TreeNode__bindgen_ty_1,
pub __bindgen_anon_2: b3TreeNode__bindgen_ty_2,
pub height: u16,
pub flags: u16,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union b3TreeNode__bindgen_ty_1 {
pub children: b3TreeNodeChildren,
pub userData: u64,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union b3TreeNode__bindgen_ty_2 {
pub parent: ::std::os::raw::c_int,
pub next: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3DynamicTree {
pub version: u64,
pub nodes: *mut b3TreeNode,
pub root: ::std::os::raw::c_int,
pub nodeCount: ::std::os::raw::c_int,
pub nodeCapacity: ::std::os::raw::c_int,
pub proxyCount: ::std::os::raw::c_int,
pub freeList: ::std::os::raw::c_int,
pub leafIndices: *mut ::std::os::raw::c_int,
pub leafBoxes: *mut b3AABB,
pub leafCenters: *mut b3Vec3,
pub binIndices: *mut ::std::os::raw::c_int,
pub rebuildCapacity: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3TreeStats {
pub nodeVisits: ::std::os::raw::c_int,
pub leafVisits: ::std::os::raw::c_int,
}
pub type b3TreeQueryCallbackFcn = ::std::option::Option<
unsafe extern "C" fn(
proxyId: ::std::os::raw::c_int,
userData: u64,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
pub type b3TreeQueryClosestCallbackFcn = ::std::option::Option<
unsafe extern "C" fn(
distanceSqrMin: f32,
proxyId: ::std::os::raw::c_int,
userData: u64,
context: *mut ::std::os::raw::c_void,
) -> f32,
>;
pub type b3TreeBoxCastCallbackFcn = ::std::option::Option<
unsafe extern "C" fn(
input: *const b3BoxCastInput,
proxyId: ::std::os::raw::c_int,
userData: u64,
context: *mut ::std::os::raw::c_void,
) -> f32,
>;
pub type b3TreeRayCastCallbackFcn = ::std::option::Option<
unsafe extern "C" fn(
input: *const b3RayCastInput,
proxyId: ::std::os::raw::c_int,
userData: u64,
context: *mut ::std::os::raw::c_void,
) -> f32,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3PlaneResult {
pub plane: b3Plane,
pub point: b3Vec3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CollisionPlane {
pub plane: b3Plane,
pub pushLimit: f32,
pub push: f32,
pub clipVelocity: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3PlaneSolverResult {
pub delta: b3Vec3,
pub iterationCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BodyPlaneResult {
pub shapeId: b3ShapeId,
pub result: b3PlaneResult,
}
pub type b3PlaneResultFcn = ::std::option::Option<
unsafe extern "C" fn(
shapeId: b3ShapeId,
plane: *const b3PlaneResult,
planeCount: ::std::os::raw::c_int,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
pub type b3MoverFilterFcn = ::std::option::Option<
unsafe extern "C" fn(
shapeId: b3ShapeId,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MassData {
pub mass: f32,
pub center: b3Vec3,
pub inertia: b3Matrix3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Sphere {
pub center: b3Vec3,
pub radius: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Capsule {
pub center1: b3Vec3,
pub center2: b3Vec3,
pub radius: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3HullVertex {
pub edge: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3HullHalfEdge {
pub next: u8,
pub twin: u8,
pub origin: u8,
pub face: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3HullFace {
pub edge: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3HullData {
pub version: u64,
pub byteCount: ::std::os::raw::c_int,
pub hash: u32,
pub aabb: b3AABB,
pub surfaceArea: f32,
pub volume: f32,
pub innerRadius: f32,
pub center: b3Vec3,
pub centralInertia: b3Matrix3,
pub vertexCount: ::std::os::raw::c_int,
pub vertexOffset: ::std::os::raw::c_int,
pub pointOffset: ::std::os::raw::c_int,
pub edgeCount: ::std::os::raw::c_int,
pub edgeOffset: ::std::os::raw::c_int,
pub faceCount: ::std::os::raw::c_int,
pub planeOffset: ::std::os::raw::c_int,
pub faceOffset: ::std::os::raw::c_int,
pub soaVertexOffset: ::std::os::raw::c_int,
pub soaNormalOffset: ::std::os::raw::c_int,
pub padding: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3BoxHull {
pub base: b3HullData,
pub boxVertices: [b3HullVertex; 8usize],
pub boxPoints: [b3Vec3; 8usize],
pub boxEdges: [b3HullHalfEdge; 24usize],
pub boxPlanes: [b3Plane; 6usize],
pub boxFaces: [b3HullFace; 6usize],
pub padding: [u8; 10usize],
pub vx: [f32; 8usize],
pub vy: [f32; 8usize],
pub vz: [f32; 8usize],
pub nx: [f32; 8usize],
pub ny: [f32; 8usize],
pub nz: [f32; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MeshDef {
pub vertices: *mut b3Vec3,
pub indices: *mut i32,
pub materialIndices: *mut u8,
pub weldTolerance: f32,
pub vertexCount: ::std::os::raw::c_int,
pub triangleCount: ::std::os::raw::c_int,
pub weldVertices: bool,
pub useMedianSplit: bool,
pub identifyEdges: bool,
}
pub const b3MeshEdgeFlags_b3_concaveEdge1: b3MeshEdgeFlags = 1;
pub const b3MeshEdgeFlags_b3_concaveEdge2: b3MeshEdgeFlags = 2;
pub const b3MeshEdgeFlags_b3_concaveEdge3: b3MeshEdgeFlags = 4;
pub const b3MeshEdgeFlags_b3_inverseConcaveEdge1: b3MeshEdgeFlags = 16;
pub const b3MeshEdgeFlags_b3_inverseConcaveEdge2: b3MeshEdgeFlags = 32;
pub const b3MeshEdgeFlags_b3_inverseConcaveEdge3: b3MeshEdgeFlags = 64;
pub const b3MeshEdgeFlags_b3_allConcaveEdges: b3MeshEdgeFlags = 7;
pub const b3MeshEdgeFlags_b3_flatEdge1: b3MeshEdgeFlags = 17;
pub const b3MeshEdgeFlags_b3_flatEdge2: b3MeshEdgeFlags = 34;
pub const b3MeshEdgeFlags_b3_flatEdge3: b3MeshEdgeFlags = 68;
pub const b3MeshEdgeFlags_b3_allFlatEdges: b3MeshEdgeFlags = 119;
pub type b3MeshEdgeFlags = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MeshTriangle {
pub index1: i32,
pub index2: i32,
pub index3: i32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct b3MeshNode {
pub lowerBound: b3Vec3,
pub data: b3MeshNode__bindgen_ty_1,
pub upperBound: b3Vec3,
pub triangleOffset: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union b3MeshNode__bindgen_ty_1 {
pub asNode: b3MeshNode__bindgen_ty_1__bindgen_ty_1,
pub asLeaf: b3MeshNode__bindgen_ty_1__bindgen_ty_2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MeshNode__bindgen_ty_1__bindgen_ty_1 {
pub _bitfield_align_1: [u32; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
}
impl b3MeshNode__bindgen_ty_1__bindgen_ty_1 {
#[inline]
pub fn axis(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
}
#[inline]
pub fn set_axis(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(0usize, 2u8, val as u64)
}
}
#[inline]
pub unsafe fn axis_raw(this: *const Self) -> u32 {
unsafe {
::std::mem::transmute(
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_get(::std::ptr::addr_of!((*this)._bitfield_1), 0usize, 2u8)
as u32,
)
}
}
#[inline]
pub unsafe fn set_axis_raw(this: *mut Self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_set(
::std::ptr::addr_of_mut!((*this)._bitfield_1),
0usize,
2u8,
val as u64,
)
}
}
#[inline]
pub fn childOffset(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
}
#[inline]
pub fn set_childOffset(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(2usize, 30u8, val as u64)
}
}
#[inline]
pub unsafe fn childOffset_raw(this: *const Self) -> u32 {
unsafe {
::std::mem::transmute(
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_get(::std::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8)
as u32,
)
}
}
#[inline]
pub unsafe fn set_childOffset_raw(this: *mut Self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_set(
::std::ptr::addr_of_mut!((*this)._bitfield_1),
2usize,
30u8,
val as u64,
)
}
}
#[inline]
pub fn new_bitfield_1(
axis: u32,
childOffset: u32,
) -> __BindgenBitfieldUnit<[u8; 4usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
__bindgen_bitfield_unit
.set(
0usize,
2u8,
{
let axis: u32 = unsafe { ::std::mem::transmute(axis) };
axis as u64
},
);
__bindgen_bitfield_unit
.set(
2usize,
30u8,
{
let childOffset: u32 = unsafe { ::std::mem::transmute(childOffset) };
childOffset as u64
},
);
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MeshNode__bindgen_ty_1__bindgen_ty_2 {
pub _bitfield_align_1: [u32; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
}
impl b3MeshNode__bindgen_ty_1__bindgen_ty_2 {
#[inline]
pub fn type_(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) }
}
#[inline]
pub fn set_type(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(0usize, 2u8, val as u64)
}
}
#[inline]
pub unsafe fn type__raw(this: *const Self) -> u32 {
unsafe {
::std::mem::transmute(
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_get(::std::ptr::addr_of!((*this)._bitfield_1), 0usize, 2u8)
as u32,
)
}
}
#[inline]
pub unsafe fn set_type_raw(this: *mut Self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_set(
::std::ptr::addr_of_mut!((*this)._bitfield_1),
0usize,
2u8,
val as u64,
)
}
}
#[inline]
pub fn triangleCount(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
}
#[inline]
pub fn set_triangleCount(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(2usize, 30u8, val as u64)
}
}
#[inline]
pub unsafe fn triangleCount_raw(this: *const Self) -> u32 {
unsafe {
::std::mem::transmute(
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_get(::std::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8)
as u32,
)
}
}
#[inline]
pub unsafe fn set_triangleCount_raw(this: *mut Self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
<__BindgenBitfieldUnit<
[u8; 4usize],
>>::raw_set(
::std::ptr::addr_of_mut!((*this)._bitfield_1),
2usize,
30u8,
val as u64,
)
}
}
#[inline]
pub fn new_bitfield_1(
type_: u32,
triangleCount: u32,
) -> __BindgenBitfieldUnit<[u8; 4usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
__bindgen_bitfield_unit
.set(
0usize,
2u8,
{
let type_: u32 = unsafe { ::std::mem::transmute(type_) };
type_ as u64
},
);
__bindgen_bitfield_unit
.set(
2usize,
30u8,
{
let triangleCount: u32 = unsafe {
::std::mem::transmute(triangleCount)
};
triangleCount as u64
},
);
__bindgen_bitfield_unit
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3MeshData {
pub version: u64,
pub byteCount: ::std::os::raw::c_int,
pub hash: u32,
pub bounds: b3AABB,
pub surfaceArea: f32,
pub treeHeight: ::std::os::raw::c_int,
pub degenerateCount: ::std::os::raw::c_int,
pub nodeOffset: ::std::os::raw::c_int,
pub nodeCount: ::std::os::raw::c_int,
pub vertexOffset: ::std::os::raw::c_int,
pub vertexCount: ::std::os::raw::c_int,
pub triangleOffset: ::std::os::raw::c_int,
pub triangleCount: ::std::os::raw::c_int,
pub materialOffset: ::std::os::raw::c_int,
pub materialCount: ::std::os::raw::c_int,
pub flagsOffset: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Mesh {
pub data: *const b3MeshData,
pub scale: b3Vec3,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3HeightFieldDef {
pub heights: *mut f32,
pub materialIndices: *mut u8,
pub scale: b3Vec3,
pub countX: ::std::os::raw::c_int,
pub countZ: ::std::os::raw::c_int,
pub globalMinimumHeight: f32,
pub globalMaximumHeight: f32,
pub clockwiseWinding: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3HeightFieldData {
pub version: u64,
pub byteCount: ::std::os::raw::c_int,
pub hash: u32,
pub aabb: b3AABB,
pub minHeight: f32,
pub maxHeight: f32,
pub heightScale: f32,
pub scale: b3Vec3,
pub columnCount: ::std::os::raw::c_int,
pub rowCount: ::std::os::raw::c_int,
pub heightsOffset: ::std::os::raw::c_int,
pub materialOffset: ::std::os::raw::c_int,
pub flagsOffset: ::std::os::raw::c_int,
pub clockwise: bool,
pub padding: [u8; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundCapsuleDef {
pub capsule: b3Capsule,
pub material: b3SurfaceMaterial,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundHullDef {
pub hull: *const b3HullData,
pub transform: b3Transform,
pub material: b3SurfaceMaterial,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundMeshDef {
pub meshData: *const b3MeshData,
pub transform: b3Transform,
pub scale: b3Vec3,
pub materials: *const b3SurfaceMaterial,
pub materialCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundSphereDef {
pub sphere: b3Sphere,
pub material: b3SurfaceMaterial,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundDef {
pub capsules: *mut b3CompoundCapsuleDef,
pub capsuleCount: ::std::os::raw::c_int,
pub hulls: *mut b3CompoundHullDef,
pub hullCount: ::std::os::raw::c_int,
pub meshes: *mut b3CompoundMeshDef,
pub meshCount: ::std::os::raw::c_int,
pub spheres: *mut b3CompoundSphereDef,
pub sphereCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundData {
pub version: u64,
pub byteCount: ::std::os::raw::c_int,
pub nodeOffset: ::std::os::raw::c_int,
pub tree: b3DynamicTree,
pub materialOffset: ::std::os::raw::c_int,
pub materialCount: ::std::os::raw::c_int,
pub capsuleOffset: ::std::os::raw::c_int,
pub capsuleCount: ::std::os::raw::c_int,
pub hullOffset: ::std::os::raw::c_int,
pub hullCount: ::std::os::raw::c_int,
pub sharedHullCount: ::std::os::raw::c_int,
pub meshOffset: ::std::os::raw::c_int,
pub meshCount: ::std::os::raw::c_int,
pub sharedMeshCount: ::std::os::raw::c_int,
pub sphereOffset: ::std::os::raw::c_int,
pub sphereCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundCapsule {
pub capsule: b3Capsule,
pub materialIndex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundHull {
pub hull: *const b3HullData,
pub transform: b3Transform,
pub materialIndex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundMesh {
pub meshData: *const b3MeshData,
pub transform: b3Transform,
pub scale: b3Vec3,
pub materialIndices: [::std::os::raw::c_int; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3CompoundSphere {
pub sphere: b3Sphere,
pub materialIndex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct b3ChildShape {
pub __bindgen_anon_1: b3ChildShape__bindgen_ty_1,
pub transform: b3Transform,
pub materialIndices: [::std::os::raw::c_int; 4usize],
pub type_: b3ShapeType,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union b3ChildShape__bindgen_ty_1 {
pub capsule: b3Capsule,
pub hull: *const b3HullData,
pub mesh: b3Mesh,
pub sphere: b3Sphere,
}
pub type b3CompoundQueryFcn = ::std::option::Option<
unsafe extern "C" fn(
compound: *const b3CompoundData,
childIndex: ::std::os::raw::c_int,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3ManifoldPoint {
pub anchorA: b3Vec3,
pub anchorB: b3Vec3,
pub separation: f32,
pub baseSeparation: f32,
pub normalImpulse: f32,
pub totalNormalImpulse: f32,
pub normalVelocity: f32,
pub featureId: u32,
pub triangleIndex: ::std::os::raw::c_int,
pub persisted: bool,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Manifold {
pub points: [b3ManifoldPoint; 4usize],
pub normal: b3Vec3,
pub twistImpulse: f32,
pub frictionImpulse: b3Vec3,
pub rollingImpulse: b3Vec3,
pub pointCount: ::std::os::raw::c_int,
}
pub const b3SeparatingFeature_b3_invalidAxis: b3SeparatingFeature = 0;
pub const b3SeparatingFeature_b3_backsideAxis: b3SeparatingFeature = 1;
pub const b3SeparatingFeature_b3_faceAxisA: b3SeparatingFeature = 2;
pub const b3SeparatingFeature_b3_faceAxisB: b3SeparatingFeature = 3;
pub const b3SeparatingFeature_b3_edgePairAxis: b3SeparatingFeature = 4;
pub const b3SeparatingFeature_b3_closestPointsAxis: b3SeparatingFeature = 5;
pub const b3SeparatingFeature_b3_manualFaceAxisA: b3SeparatingFeature = 6;
pub const b3SeparatingFeature_b3_manualFaceAxisB: b3SeparatingFeature = 7;
pub const b3SeparatingFeature_b3_manualEdgePairAxis: b3SeparatingFeature = 8;
pub type b3SeparatingFeature = ::std::os::raw::c_uint;
pub const b3TriangleFeature_b3_featureNone: b3TriangleFeature = 0;
pub const b3TriangleFeature_b3_featureTriangleFace: b3TriangleFeature = 1;
pub const b3TriangleFeature_b3_featureHullFace: b3TriangleFeature = 2;
pub const b3TriangleFeature_b3_featureEdge1: b3TriangleFeature = 3;
pub const b3TriangleFeature_b3_featureEdge2: b3TriangleFeature = 4;
pub const b3TriangleFeature_b3_featureEdge3: b3TriangleFeature = 5;
pub const b3TriangleFeature_b3_featureVertex1: b3TriangleFeature = 6;
pub const b3TriangleFeature_b3_featureVertex2: b3TriangleFeature = 7;
pub const b3TriangleFeature_b3_featureVertex3: b3TriangleFeature = 8;
pub type b3TriangleFeature = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3SATCache {
pub separation: f32,
pub type_: u8,
pub indexA: u8,
pub indexB: u8,
pub hit: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3FeaturePair {
pub owner1: u8,
pub index1: u8,
pub owner2: u8,
pub index2: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3LocalManifoldPoint {
pub point: b3Vec3,
pub separation: f32,
pub pair: b3FeaturePair,
pub triangleIndex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3LocalManifold {
pub normal: b3Vec3,
pub triangleNormal: b3Vec3,
pub points: *mut b3LocalManifoldPoint,
pub pointCount: ::std::os::raw::c_int,
pub triangleIndex: ::std::os::raw::c_int,
pub i1: ::std::os::raw::c_int,
pub i2: ::std::os::raw::c_int,
pub i3: ::std::os::raw::c_int,
pub squaredDistance: f32,
pub feature: b3TriangleFeature,
pub triangleFlags: ::std::os::raw::c_int,
}
pub const b3HexColor_b3_colorAliceBlue: b3HexColor = 15792383;
pub const b3HexColor_b3_colorAntiqueWhite: b3HexColor = 16444375;
pub const b3HexColor_b3_colorAqua: b3HexColor = 65535;
pub const b3HexColor_b3_colorAquamarine: b3HexColor = 8388564;
pub const b3HexColor_b3_colorAzure: b3HexColor = 15794175;
pub const b3HexColor_b3_colorBeige: b3HexColor = 16119260;
pub const b3HexColor_b3_colorBisque: b3HexColor = 16770244;
pub const b3HexColor_b3_colorBlack: b3HexColor = 0;
pub const b3HexColor_b3_colorBlanchedAlmond: b3HexColor = 16772045;
pub const b3HexColor_b3_colorBlue: b3HexColor = 255;
pub const b3HexColor_b3_colorBlueViolet: b3HexColor = 9055202;
pub const b3HexColor_b3_colorBrown: b3HexColor = 10824234;
pub const b3HexColor_b3_colorBurlywood: b3HexColor = 14596231;
pub const b3HexColor_b3_colorCadetBlue: b3HexColor = 6266528;
pub const b3HexColor_b3_colorChartreuse: b3HexColor = 8388352;
pub const b3HexColor_b3_colorChocolate: b3HexColor = 13789470;
pub const b3HexColor_b3_colorCoral: b3HexColor = 16744272;
pub const b3HexColor_b3_colorCornflowerBlue: b3HexColor = 6591981;
pub const b3HexColor_b3_colorCornsilk: b3HexColor = 16775388;
pub const b3HexColor_b3_colorCrimson: b3HexColor = 14423100;
pub const b3HexColor_b3_colorCyan: b3HexColor = 65535;
pub const b3HexColor_b3_colorDarkBlue: b3HexColor = 139;
pub const b3HexColor_b3_colorDarkCyan: b3HexColor = 35723;
pub const b3HexColor_b3_colorDarkGoldenRod: b3HexColor = 12092939;
pub const b3HexColor_b3_colorDarkGray: b3HexColor = 11119017;
pub const b3HexColor_b3_colorDarkGreen: b3HexColor = 25600;
pub const b3HexColor_b3_colorDarkKhaki: b3HexColor = 12433259;
pub const b3HexColor_b3_colorDarkMagenta: b3HexColor = 9109643;
pub const b3HexColor_b3_colorDarkOliveGreen: b3HexColor = 5597999;
pub const b3HexColor_b3_colorDarkOrange: b3HexColor = 16747520;
pub const b3HexColor_b3_colorDarkOrchid: b3HexColor = 10040012;
pub const b3HexColor_b3_colorDarkRed: b3HexColor = 9109504;
pub const b3HexColor_b3_colorDarkSalmon: b3HexColor = 15308410;
pub const b3HexColor_b3_colorDarkSeaGreen: b3HexColor = 9419919;
pub const b3HexColor_b3_colorDarkSlateBlue: b3HexColor = 4734347;
pub const b3HexColor_b3_colorDarkSlateGray: b3HexColor = 3100495;
pub const b3HexColor_b3_colorDarkTurquoise: b3HexColor = 52945;
pub const b3HexColor_b3_colorDarkViolet: b3HexColor = 9699539;
pub const b3HexColor_b3_colorDeepPink: b3HexColor = 16716947;
pub const b3HexColor_b3_colorDeepSkyBlue: b3HexColor = 49151;
pub const b3HexColor_b3_colorDimGray: b3HexColor = 6908265;
pub const b3HexColor_b3_colorDodgerBlue: b3HexColor = 2003199;
pub const b3HexColor_b3_colorFireBrick: b3HexColor = 11674146;
pub const b3HexColor_b3_colorFloralWhite: b3HexColor = 16775920;
pub const b3HexColor_b3_colorForestGreen: b3HexColor = 2263842;
pub const b3HexColor_b3_colorFuchsia: b3HexColor = 16711935;
pub const b3HexColor_b3_colorGainsboro: b3HexColor = 14474460;
pub const b3HexColor_b3_colorGhostWhite: b3HexColor = 16316671;
pub const b3HexColor_b3_colorGold: b3HexColor = 16766720;
pub const b3HexColor_b3_colorGoldenRod: b3HexColor = 14329120;
pub const b3HexColor_b3_colorGray: b3HexColor = 8421504;
pub const b3HexColor_b3_colorGreen: b3HexColor = 32768;
pub const b3HexColor_b3_colorGreenYellow: b3HexColor = 11403055;
pub const b3HexColor_b3_colorHoneyDew: b3HexColor = 15794160;
pub const b3HexColor_b3_colorHotPink: b3HexColor = 16738740;
pub const b3HexColor_b3_colorIndianRed: b3HexColor = 13458524;
pub const b3HexColor_b3_colorIndigo: b3HexColor = 4915330;
pub const b3HexColor_b3_colorIvory: b3HexColor = 16777200;
pub const b3HexColor_b3_colorKhaki: b3HexColor = 15787660;
pub const b3HexColor_b3_colorLavender: b3HexColor = 15132410;
pub const b3HexColor_b3_colorLavenderBlush: b3HexColor = 16773365;
pub const b3HexColor_b3_colorLawnGreen: b3HexColor = 8190976;
pub const b3HexColor_b3_colorLemonChiffon: b3HexColor = 16775885;
pub const b3HexColor_b3_colorLightBlue: b3HexColor = 11393254;
pub const b3HexColor_b3_colorLightCoral: b3HexColor = 15761536;
pub const b3HexColor_b3_colorLightCyan: b3HexColor = 14745599;
pub const b3HexColor_b3_colorLightGoldenRodYellow: b3HexColor = 16448210;
pub const b3HexColor_b3_colorLightGray: b3HexColor = 13882323;
pub const b3HexColor_b3_colorLightGreen: b3HexColor = 9498256;
pub const b3HexColor_b3_colorLightPink: b3HexColor = 16758465;
pub const b3HexColor_b3_colorLightSalmon: b3HexColor = 16752762;
pub const b3HexColor_b3_colorLightSeaGreen: b3HexColor = 2142890;
pub const b3HexColor_b3_colorLightSkyBlue: b3HexColor = 8900346;
pub const b3HexColor_b3_colorLightSlateGray: b3HexColor = 7833753;
pub const b3HexColor_b3_colorLightSteelBlue: b3HexColor = 11584734;
pub const b3HexColor_b3_colorLightYellow: b3HexColor = 16777184;
pub const b3HexColor_b3_colorLime: b3HexColor = 65280;
pub const b3HexColor_b3_colorLimeGreen: b3HexColor = 3329330;
pub const b3HexColor_b3_colorLinen: b3HexColor = 16445670;
pub const b3HexColor_b3_colorMagenta: b3HexColor = 16711935;
pub const b3HexColor_b3_colorMaroon: b3HexColor = 8388608;
pub const b3HexColor_b3_colorMediumAquaMarine: b3HexColor = 6737322;
pub const b3HexColor_b3_colorMediumBlue: b3HexColor = 205;
pub const b3HexColor_b3_colorMediumOrchid: b3HexColor = 12211667;
pub const b3HexColor_b3_colorMediumPurple: b3HexColor = 9662683;
pub const b3HexColor_b3_colorMediumSeaGreen: b3HexColor = 3978097;
pub const b3HexColor_b3_colorMediumSlateBlue: b3HexColor = 8087790;
pub const b3HexColor_b3_colorMediumSpringGreen: b3HexColor = 64154;
pub const b3HexColor_b3_colorMediumTurquoise: b3HexColor = 4772300;
pub const b3HexColor_b3_colorMediumVioletRed: b3HexColor = 13047173;
pub const b3HexColor_b3_colorMidnightBlue: b3HexColor = 1644912;
pub const b3HexColor_b3_colorMintCream: b3HexColor = 16121850;
pub const b3HexColor_b3_colorMistyRose: b3HexColor = 16770273;
pub const b3HexColor_b3_colorMoccasin: b3HexColor = 16770229;
pub const b3HexColor_b3_colorNavajoWhite: b3HexColor = 16768685;
pub const b3HexColor_b3_colorNavy: b3HexColor = 128;
pub const b3HexColor_b3_colorOldLace: b3HexColor = 16643558;
pub const b3HexColor_b3_colorOlive: b3HexColor = 8421376;
pub const b3HexColor_b3_colorOliveDrab: b3HexColor = 7048739;
pub const b3HexColor_b3_colorOrange: b3HexColor = 16753920;
pub const b3HexColor_b3_colorOrangeRed: b3HexColor = 16729344;
pub const b3HexColor_b3_colorOrchid: b3HexColor = 14315734;
pub const b3HexColor_b3_colorPaleGoldenRod: b3HexColor = 15657130;
pub const b3HexColor_b3_colorPaleGreen: b3HexColor = 10025880;
pub const b3HexColor_b3_colorPaleTurquoise: b3HexColor = 11529966;
pub const b3HexColor_b3_colorPaleVioletRed: b3HexColor = 14381203;
pub const b3HexColor_b3_colorPapayaWhip: b3HexColor = 16773077;
pub const b3HexColor_b3_colorPeachPuff: b3HexColor = 16767673;
pub const b3HexColor_b3_colorPeru: b3HexColor = 13468991;
pub const b3HexColor_b3_colorPink: b3HexColor = 16761035;
pub const b3HexColor_b3_colorPlum: b3HexColor = 14524637;
pub const b3HexColor_b3_colorPowderBlue: b3HexColor = 11591910;
pub const b3HexColor_b3_colorPurple: b3HexColor = 8388736;
pub const b3HexColor_b3_colorRebeccaPurple: b3HexColor = 6697881;
pub const b3HexColor_b3_colorRed: b3HexColor = 16711680;
pub const b3HexColor_b3_colorRosyBrown: b3HexColor = 12357519;
pub const b3HexColor_b3_colorRoyalBlue: b3HexColor = 4286945;
pub const b3HexColor_b3_colorSaddleBrown: b3HexColor = 9127187;
pub const b3HexColor_b3_colorSalmon: b3HexColor = 16416882;
pub const b3HexColor_b3_colorSandyBrown: b3HexColor = 16032864;
pub const b3HexColor_b3_colorSeaGreen: b3HexColor = 3050327;
pub const b3HexColor_b3_colorSeaShell: b3HexColor = 16774638;
pub const b3HexColor_b3_colorSienna: b3HexColor = 10506797;
pub const b3HexColor_b3_colorSilver: b3HexColor = 12632256;
pub const b3HexColor_b3_colorSkyBlue: b3HexColor = 8900331;
pub const b3HexColor_b3_colorSlateBlue: b3HexColor = 6970061;
pub const b3HexColor_b3_colorSlateGray: b3HexColor = 7372944;
pub const b3HexColor_b3_colorSnow: b3HexColor = 16775930;
pub const b3HexColor_b3_colorSpringGreen: b3HexColor = 65407;
pub const b3HexColor_b3_colorSteelBlue: b3HexColor = 4620980;
pub const b3HexColor_b3_colorTan: b3HexColor = 13808780;
pub const b3HexColor_b3_colorTeal: b3HexColor = 32896;
pub const b3HexColor_b3_colorThistle: b3HexColor = 14204888;
pub const b3HexColor_b3_colorTomato: b3HexColor = 16737095;
pub const b3HexColor_b3_colorTurquoise: b3HexColor = 4251856;
pub const b3HexColor_b3_colorViolet: b3HexColor = 15631086;
pub const b3HexColor_b3_colorWheat: b3HexColor = 16113331;
pub const b3HexColor_b3_colorWhite: b3HexColor = 16777215;
pub const b3HexColor_b3_colorWhiteSmoke: b3HexColor = 16119285;
pub const b3HexColor_b3_colorYellow: b3HexColor = 16776960;
pub const b3HexColor_b3_colorYellowGreen: b3HexColor = 10145074;
pub const b3HexColor_b3_colorBox2DRed: b3HexColor = 14430514;
pub const b3HexColor_b3_colorBox2DBlue: b3HexColor = 3190463;
pub const b3HexColor_b3_colorBox2DGreen: b3HexColor = 9226532;
pub const b3HexColor_b3_colorBox2DYellow: b3HexColor = 16772748;
pub type b3HexColor = ::std::os::raw::c_uint;
pub const b3DebugMaterial_b3_debugMaterialDefault: b3DebugMaterial = 0;
pub const b3DebugMaterial_b3_debugMaterialMatte: b3DebugMaterial = 1;
pub const b3DebugMaterial_b3_debugMaterialSoft: b3DebugMaterial = 2;
pub const b3DebugMaterial_b3_debugMaterialDead: b3DebugMaterial = 3;
pub const b3DebugMaterial_b3_debugMaterialGlossy: b3DebugMaterial = 4;
pub const b3DebugMaterial_b3_debugMaterialMetallic: b3DebugMaterial = 5;
pub type b3DebugMaterial = ::std::os::raw::c_uint;
unsafe extern "C" {
pub fn b3GetGraphColor(index: ::std::os::raw::c_int) -> b3HexColor;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct b3DebugShape {
pub shapeId: b3ShapeId,
pub type_: b3ShapeType,
pub __bindgen_anon_1: b3DebugShape__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union b3DebugShape__bindgen_ty_1 {
pub capsule: *const b3Capsule,
pub compound: *const b3CompoundData,
pub heightField: *const b3HeightFieldData,
pub hull: *const b3HullData,
pub mesh: *const b3Mesh,
pub sphere: *const b3Sphere,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3DebugDraw {
pub DrawShapeFcn: ::std::option::Option<
unsafe extern "C" fn(
userShape: *mut ::std::os::raw::c_void,
transform: b3WorldTransform,
color: b3HexColor,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawSegmentFcn: ::std::option::Option<
unsafe extern "C" fn(
p1: b3Pos,
p2: b3Pos,
color: b3HexColor,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawTransformFcn: ::std::option::Option<
unsafe extern "C" fn(
transform: b3WorldTransform,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawPointFcn: ::std::option::Option<
unsafe extern "C" fn(
p: b3Pos,
size: f32,
color: b3HexColor,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawSphereFcn: ::std::option::Option<
unsafe extern "C" fn(
p: b3Pos,
radius: f32,
color: b3HexColor,
alpha: f32,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawCapsuleFcn: ::std::option::Option<
unsafe extern "C" fn(
p1: b3Pos,
p2: b3Pos,
radius: f32,
color: b3HexColor,
alpha: f32,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawBoundsFcn: ::std::option::Option<
unsafe extern "C" fn(
aabb: b3AABB,
color: b3HexColor,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawBoxFcn: ::std::option::Option<
unsafe extern "C" fn(
extents: b3Vec3,
transform: b3WorldTransform,
color: b3HexColor,
context: *mut ::std::os::raw::c_void,
),
>,
pub DrawStringFcn: ::std::option::Option<
unsafe extern "C" fn(
p: b3Pos,
s: *const ::std::os::raw::c_char,
color: b3HexColor,
context: *mut ::std::os::raw::c_void,
),
>,
pub drawingBounds: b3AABB,
pub forceScale: f32,
pub jointScale: f32,
pub drawShapes: bool,
pub drawJoints: bool,
pub drawJointExtras: bool,
pub drawBounds: bool,
pub drawMass: bool,
pub drawSleep: bool,
pub drawBodyNames: bool,
pub drawContacts: bool,
pub drawAnchorA: bool,
pub drawGraphColors: bool,
pub drawContactFeatures: bool,
pub drawContactNormals: bool,
pub drawContactForces: bool,
pub drawIslands: bool,
pub context: *mut ::std::os::raw::c_void,
}
unsafe extern "C" {
pub fn b3DefaultDebugDraw() -> b3DebugDraw;
}
unsafe extern "C" {
pub fn b3DynamicTree_Create(proxyCapacity: ::std::os::raw::c_int) -> b3DynamicTree;
}
unsafe extern "C" {
pub fn b3DynamicTree_Destroy(tree: *mut b3DynamicTree);
}
unsafe extern "C" {
pub fn b3DynamicTree_CreateProxy(
tree: *mut b3DynamicTree,
aabb: b3AABB,
categoryBits: u64,
userData: u64,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3DynamicTree_DestroyProxy(
tree: *mut b3DynamicTree,
proxyId: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn b3DynamicTree_MoveProxy(
tree: *mut b3DynamicTree,
proxyId: ::std::os::raw::c_int,
aabb: b3AABB,
);
}
unsafe extern "C" {
pub fn b3DynamicTree_EnlargeProxy(
tree: *mut b3DynamicTree,
proxyId: ::std::os::raw::c_int,
aabb: b3AABB,
);
}
unsafe extern "C" {
pub fn b3DynamicTree_SetCategoryBits(
tree: *mut b3DynamicTree,
proxyId: ::std::os::raw::c_int,
categoryBits: u64,
);
}
unsafe extern "C" {
pub fn b3DynamicTree_GetCategoryBits(
tree: *mut b3DynamicTree,
proxyId: ::std::os::raw::c_int,
) -> u64;
}
unsafe extern "C" {
pub fn b3DynamicTree_Query(
tree: *const b3DynamicTree,
aabb: b3AABB,
maskBits: u64,
requireAllBits: bool,
callback: b3TreeQueryCallbackFcn,
context: *mut ::std::os::raw::c_void,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3DynamicTree_QueryClosest(
tree: *const b3DynamicTree,
point: b3Vec3,
maskBits: u64,
requireAllBits: bool,
callback: b3TreeQueryClosestCallbackFcn,
context: *mut ::std::os::raw::c_void,
minDistanceSqr: *mut f32,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3DynamicTree_RayCast(
tree: *const b3DynamicTree,
input: *const b3RayCastInput,
maskBits: u64,
requireAllBits: bool,
callback: b3TreeRayCastCallbackFcn,
context: *mut ::std::os::raw::c_void,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3DynamicTree_BoxCast(
tree: *const b3DynamicTree,
input: *const b3BoxCastInput,
maskBits: u64,
requireAllBits: bool,
callback: b3TreeBoxCastCallbackFcn,
context: *mut ::std::os::raw::c_void,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3DynamicTree_GetHeight(tree: *const b3DynamicTree) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3DynamicTree_GetAreaRatio(tree: *const b3DynamicTree) -> f32;
}
unsafe extern "C" {
pub fn b3DynamicTree_GetRootBounds(tree: *const b3DynamicTree) -> b3AABB;
}
unsafe extern "C" {
pub fn b3DynamicTree_GetProxyCount(
tree: *const b3DynamicTree,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3DynamicTree_Rebuild(
tree: *mut b3DynamicTree,
fullBuild: bool,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3DynamicTree_GetByteCount(
tree: *const b3DynamicTree,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3DynamicTree_Validate(tree: *const b3DynamicTree);
}
unsafe extern "C" {
pub fn b3DynamicTree_ValidateNoEnlarged(tree: *const b3DynamicTree);
}
unsafe extern "C" {
pub fn b3DynamicTree_Save(
tree: *const b3DynamicTree,
fileName: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn b3DynamicTree_Load(
fileName: *const ::std::os::raw::c_char,
scale: f32,
) -> b3DynamicTree;
}
unsafe extern "C" {
pub fn b3CreateCylinder(
height: f32,
radius: f32,
yOffset: f32,
sides: ::std::os::raw::c_int,
) -> *mut b3HullData;
}
unsafe extern "C" {
pub fn b3CreateCone(
height: f32,
radius1: f32,
radius2: f32,
slices: ::std::os::raw::c_int,
) -> *mut b3HullData;
}
unsafe extern "C" {
pub fn b3CreateRock(radius: f32) -> *mut b3HullData;
}
unsafe extern "C" {
pub fn b3CreateHull(
points: *const b3Vec3,
pointCount: ::std::os::raw::c_int,
maxVertexCount: ::std::os::raw::c_int,
) -> *mut b3HullData;
}
unsafe extern "C" {
pub fn b3CloneHull(hull: *const b3HullData) -> *mut b3HullData;
}
unsafe extern "C" {
pub fn b3CloneAndTransformHull(
original: *const b3HullData,
transform: b3Transform,
scale: b3Vec3,
) -> *mut b3HullData;
}
unsafe extern "C" {
pub fn b3DestroyHull(hull: *mut b3HullData);
}
unsafe extern "C" {
pub fn b3MakeCubeHull(halfWidth: f32) -> b3BoxHull;
}
unsafe extern "C" {
pub fn b3MakeBoxHull(hx: f32, hy: f32, hz: f32) -> b3BoxHull;
}
unsafe extern "C" {
pub fn b3MakeOffsetBoxHull(hx: f32, hy: f32, hz: f32, offset: b3Vec3) -> b3BoxHull;
}
unsafe extern "C" {
pub fn b3MakeTransformedBoxHull(
hx: f32,
hy: f32,
hz: f32,
transform: b3Transform,
) -> b3BoxHull;
}
unsafe extern "C" {
pub fn b3MakeScaledBoxHull(
halfWidths: b3Vec3,
transform: b3Transform,
postScale: b3Vec3,
) -> b3BoxHull;
}
unsafe extern "C" {
pub fn b3ScaleBox(
halfWidths: *mut b3Vec3,
transform: *mut b3Transform,
postScale: b3Vec3,
minHalfWidth: f32,
);
}
unsafe extern "C" {
pub fn b3CreateGridMesh(
xCount: ::std::os::raw::c_int,
zCount: ::std::os::raw::c_int,
cellWidth: f32,
materialCount: ::std::os::raw::c_int,
identifyEdges: bool,
) -> *mut b3MeshData;
}
unsafe extern "C" {
pub fn b3CreateWaveMesh(
xCount: ::std::os::raw::c_int,
zCount: ::std::os::raw::c_int,
cellWidth: f32,
amplitude: f32,
rowFrequency: f32,
columnFrequency: f32,
) -> *mut b3MeshData;
}
unsafe extern "C" {
pub fn b3CreateTorusMesh(
radialResolution: ::std::os::raw::c_int,
tubularResolution: ::std::os::raw::c_int,
radius: f32,
thickness: f32,
) -> *mut b3MeshData;
}
unsafe extern "C" {
pub fn b3CreateBoxMesh(
center: b3Vec3,
extent: b3Vec3,
identifyEdges: bool,
) -> *mut b3MeshData;
}
unsafe extern "C" {
pub fn b3CreateHollowBoxMesh(center: b3Vec3, extent: b3Vec3) -> *mut b3MeshData;
}
unsafe extern "C" {
pub fn b3CreatePlatformMesh(
center: b3Vec3,
height: f32,
topWidth: f32,
bottomWidth: f32,
) -> *mut b3MeshData;
}
unsafe extern "C" {
pub fn b3CreateMesh(
def: *const b3MeshDef,
degenerateTriangleIndices: *mut ::std::os::raw::c_int,
degenerateCapacity: ::std::os::raw::c_int,
) -> *mut b3MeshData;
}
unsafe extern "C" {
pub fn b3DestroyMesh(mesh: *mut b3MeshData);
}
unsafe extern "C" {
pub fn b3GetHeight(mesh: *const b3MeshData) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3CreateHeightField(data: *const b3HeightFieldDef) -> *mut b3HeightFieldData;
}
unsafe extern "C" {
pub fn b3CreateGrid(
rowCount: ::std::os::raw::c_int,
columnCount: ::std::os::raw::c_int,
scale: b3Vec3,
makeHoles: bool,
) -> *mut b3HeightFieldData;
}
unsafe extern "C" {
pub fn b3CreateWave(
rowCount: ::std::os::raw::c_int,
columnCount: ::std::os::raw::c_int,
scale: b3Vec3,
rowFrequency: f32,
columnFrequency: f32,
makeHoles: bool,
) -> *mut b3HeightFieldData;
}
unsafe extern "C" {
pub fn b3DestroyHeightField(heightField: *mut b3HeightFieldData);
}
unsafe extern "C" {
pub fn b3DumpHeightData(
data: *const b3HeightFieldDef,
fileName: *const ::std::os::raw::c_char,
);
}
unsafe extern "C" {
pub fn b3LoadHeightField(
fileName: *const ::std::os::raw::c_char,
) -> *mut b3HeightFieldData;
}
unsafe extern "C" {
pub fn b3GetCompoundChild(
compound: *const b3CompoundData,
childIndex: ::std::os::raw::c_int,
) -> b3ChildShape;
}
unsafe extern "C" {
pub fn b3QueryCompound(
compound: *const b3CompoundData,
aabb: b3AABB,
fcn: b3CompoundQueryFcn,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3GetCompoundCapsule(
compound: *const b3CompoundData,
index: ::std::os::raw::c_int,
) -> b3CompoundCapsule;
}
unsafe extern "C" {
pub fn b3GetCompoundHull(
compound: *const b3CompoundData,
index: ::std::os::raw::c_int,
) -> b3CompoundHull;
}
unsafe extern "C" {
pub fn b3GetCompoundMesh(
compound: *const b3CompoundData,
index: ::std::os::raw::c_int,
) -> b3CompoundMesh;
}
unsafe extern "C" {
pub fn b3GetCompoundSphere(
compound: *const b3CompoundData,
index: ::std::os::raw::c_int,
) -> b3CompoundSphere;
}
unsafe extern "C" {
pub fn b3GetCompoundMaterials(
compound: *const b3CompoundData,
) -> *const b3SurfaceMaterial;
}
unsafe extern "C" {
pub fn b3CreateCompound(def: *const b3CompoundDef) -> *mut b3CompoundData;
}
unsafe extern "C" {
pub fn b3DestroyCompound(compound: *mut b3CompoundData);
}
unsafe extern "C" {
pub fn b3ConvertCompoundToBytes(compound: *mut b3CompoundData) -> *mut u8;
}
unsafe extern "C" {
pub fn b3ConvertBytesToCompound(
bytes: *mut u8,
byteCount: ::std::os::raw::c_int,
) -> *mut b3CompoundData;
}
unsafe extern "C" {
pub fn b3ComputeSphereMass(shape: *const b3Sphere, density: f32) -> b3MassData;
}
unsafe extern "C" {
pub fn b3ComputeCapsuleMass(shape: *const b3Capsule, density: f32) -> b3MassData;
}
unsafe extern "C" {
pub fn b3ComputeHullMass(shape: *const b3HullData, density: f32) -> b3MassData;
}
unsafe extern "C" {
pub fn b3ComputeSphereAABB(shape: *const b3Sphere, transform: b3Transform) -> b3AABB;
}
unsafe extern "C" {
pub fn b3ComputeCapsuleAABB(
shape: *const b3Capsule,
transform: b3Transform,
) -> b3AABB;
}
unsafe extern "C" {
pub fn b3ComputeHullAABB(shape: *const b3HullData, transform: b3Transform) -> b3AABB;
}
unsafe extern "C" {
pub fn b3ComputeMeshAABB(
shape: *const b3MeshData,
transform: b3Transform,
scale: b3Vec3,
) -> b3AABB;
}
unsafe extern "C" {
pub fn b3ComputeHeightFieldAABB(
shape: *const b3HeightFieldData,
transform: b3Transform,
) -> b3AABB;
}
unsafe extern "C" {
pub fn b3ComputeCompoundAABB(
shape: *const b3CompoundData,
transform: b3Transform,
) -> b3AABB;
}
unsafe extern "C" {
pub fn b3IsValidRay(input: *const b3RayCastInput) -> bool;
}
unsafe extern "C" {
pub fn b3OverlapCapsule(
shape: *const b3Capsule,
shapeTransform: b3Transform,
proxy: *const b3ShapeProxy,
) -> bool;
}
unsafe extern "C" {
pub fn b3OverlapCompound(
shape: *const b3CompoundData,
shapeTransform: b3Transform,
proxy: *const b3ShapeProxy,
) -> bool;
}
unsafe extern "C" {
pub fn b3OverlapHeightField(
shape: *const b3HeightFieldData,
shapeTransform: b3Transform,
proxy: *const b3ShapeProxy,
) -> bool;
}
unsafe extern "C" {
pub fn b3OverlapHull(
shape: *const b3HullData,
shapeTransform: b3Transform,
proxy: *const b3ShapeProxy,
) -> bool;
}
unsafe extern "C" {
pub fn b3OverlapMesh(
shape: *const b3Mesh,
shapeTransform: b3Transform,
proxy: *const b3ShapeProxy,
) -> bool;
}
unsafe extern "C" {
pub fn b3OverlapSphere(
shape: *const b3Sphere,
shapeTransform: b3Transform,
proxy: *const b3ShapeProxy,
) -> bool;
}
unsafe extern "C" {
pub fn b3RayCastSphere(
shape: *const b3Sphere,
input: *const b3RayCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3RayCastHollowSphere(
shape: *const b3Sphere,
input: *const b3RayCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3RayCastCapsule(
shape: *const b3Capsule,
input: *const b3RayCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3RayCastCompound(
shape: *const b3CompoundData,
input: *const b3RayCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3RayCastHull(
shape: *const b3HullData,
input: *const b3RayCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3RayCastMesh(
shape: *const b3Mesh,
input: *const b3RayCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3RayCastHeightField(
shape: *const b3HeightFieldData,
input: *const b3RayCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3ShapeCastSphere(
shape: *const b3Sphere,
input: *const b3ShapeCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3ShapeCastCapsule(
shape: *const b3Capsule,
input: *const b3ShapeCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3ShapeCastCompound(
shape: *const b3CompoundData,
input: *const b3ShapeCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3ShapeCastHull(
shape: *const b3HullData,
input: *const b3ShapeCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3ShapeCastMesh(
shape: *const b3Mesh,
input: *const b3ShapeCastInput,
) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3ShapeCastHeightField(
shape: *const b3HeightFieldData,
input: *const b3ShapeCastInput,
) -> b3CastOutput;
}
pub type b3MeshQueryFcn = ::std::option::Option<
unsafe extern "C" fn(
a: b3Vec3,
b: b3Vec3,
c: b3Vec3,
triangleIndex: ::std::os::raw::c_int,
context: *mut ::std::os::raw::c_void,
) -> bool,
>;
unsafe extern "C" {
pub fn b3QueryMesh(
mesh: *const b3Mesh,
bounds: b3AABB,
fcn: b3MeshQueryFcn,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3QueryHeightField(
heightField: *const b3HeightFieldData,
bounds: b3AABB,
fcn: b3MeshQueryFcn,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3ShapeDistance(
input: *const b3DistanceInput,
cache: *mut b3SimplexCache,
simplexes: *mut b3Simplex,
simplexCapacity: ::std::os::raw::c_int,
) -> b3DistanceOutput;
}
unsafe extern "C" {
pub fn b3ShapeCast(input: *const b3ShapeCastPairInput) -> b3CastOutput;
}
unsafe extern "C" {
pub fn b3GetSweepTransform(sweep: *const b3Sweep, time: f32) -> b3Transform;
}
unsafe extern "C" {
pub fn b3TimeOfImpact(input: *const b3TOIInput) -> b3TOIOutput;
}
unsafe extern "C" {
pub fn b3CollideSpheres(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
sphereA: *const b3Sphere,
sphereB: *const b3Sphere,
transformBtoA: b3Transform,
);
}
unsafe extern "C" {
pub fn b3CollideCapsuleAndSphere(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
capsuleA: *const b3Capsule,
sphereB: *const b3Sphere,
transformBtoA: b3Transform,
);
}
unsafe extern "C" {
pub fn b3CollideHullAndSphere(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
hullA: *const b3HullData,
sphereB: *const b3Sphere,
transformBtoA: b3Transform,
cache: *mut b3SimplexCache,
);
}
unsafe extern "C" {
pub fn b3CollideCapsules(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
capsuleA: *const b3Capsule,
capsuleB: *const b3Capsule,
transformBtoA: b3Transform,
);
}
unsafe extern "C" {
pub fn b3CollideHullAndCapsule(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
hullA: *const b3HullData,
capsuleB: *const b3Capsule,
transformBtoA: b3Transform,
cache: *mut b3SimplexCache,
);
}
unsafe extern "C" {
pub fn b3CollideHulls(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
hullA: *const b3HullData,
hullB: *const b3HullData,
transformBtoA: b3Transform,
cache: *mut b3SATCache,
);
}
unsafe extern "C" {
pub fn b3CollideTriangleAndCapsule(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
triangleA: *const b3Vec3,
capsuleB: *const b3Capsule,
cache: *mut b3SimplexCache,
);
}
unsafe extern "C" {
pub fn b3CollideTriangleAndHull(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
v1: b3Vec3,
v2: b3Vec3,
v3: b3Vec3,
triangleFlags: ::std::os::raw::c_int,
hullB: *const b3HullData,
cache: *mut b3SATCache,
enableSpeculative: bool,
);
}
unsafe extern "C" {
pub fn b3CollideTriangleAndSphere(
manifold: *mut b3LocalManifold,
capacity: ::std::os::raw::c_int,
triangleA: *const b3Vec3,
sphereB: *const b3Sphere,
);
}
unsafe extern "C" {
pub fn b3SolvePlanes(
targetDelta: b3Vec3,
planes: *mut b3CollisionPlane,
count: ::std::os::raw::c_int,
) -> b3PlaneSolverResult;
}
unsafe extern "C" {
pub fn b3ClipVector(
vector: b3Vec3,
planes: *const b3CollisionPlane,
count: ::std::os::raw::c_int,
) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3DestroyWorld(worldId: b3WorldId);
}
unsafe extern "C" {
pub fn b3GetWorldCount() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3GetMaxWorldCount() -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3World_IsValid(id: b3WorldId) -> bool;
}
unsafe extern "C" {
pub fn b3World_Step(
worldId: b3WorldId,
timeStep: f32,
subStepCount: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn b3World_Draw(worldId: b3WorldId, draw: *mut b3DebugDraw, maskBits: u64);
}
unsafe extern "C" {
pub fn b3World_GetBounds(worldId: b3WorldId) -> b3AABB;
}
unsafe extern "C" {
pub fn b3World_GetBodyEvents(worldId: b3WorldId) -> b3BodyEvents;
}
unsafe extern "C" {
pub fn b3World_GetSensorEvents(worldId: b3WorldId) -> b3SensorEvents;
}
unsafe extern "C" {
pub fn b3World_GetContactEvents(worldId: b3WorldId) -> b3ContactEvents;
}
unsafe extern "C" {
pub fn b3World_GetJointEvents(worldId: b3WorldId) -> b3JointEvents;
}
unsafe extern "C" {
pub fn b3World_OverlapAABB(
worldId: b3WorldId,
aabb: b3AABB,
filter: b3QueryFilter,
fcn: b3OverlapResultFcn,
context: *mut ::std::os::raw::c_void,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3World_OverlapShape(
worldId: b3WorldId,
origin: b3Pos,
proxy: *const b3ShapeProxy,
filter: b3QueryFilter,
fcn: b3OverlapResultFcn,
context: *mut ::std::os::raw::c_void,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3World_CastRay(
worldId: b3WorldId,
origin: b3Pos,
translation: b3Vec3,
filter: b3QueryFilter,
fcn: b3CastResultFcn,
context: *mut ::std::os::raw::c_void,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3World_CastRayClosest(
worldId: b3WorldId,
origin: b3Pos,
translation: b3Vec3,
filter: b3QueryFilter,
) -> b3RayResult;
}
unsafe extern "C" {
pub fn b3World_CastShape(
worldId: b3WorldId,
origin: b3Pos,
proxy: *const b3ShapeProxy,
translation: b3Vec3,
filter: b3QueryFilter,
fcn: b3CastResultFcn,
context: *mut ::std::os::raw::c_void,
) -> b3TreeStats;
}
unsafe extern "C" {
pub fn b3World_CastMover(
worldId: b3WorldId,
origin: b3Pos,
mover: *const b3Capsule,
translation: b3Vec3,
filter: b3QueryFilter,
fcn: b3MoverFilterFcn,
context: *mut ::std::os::raw::c_void,
) -> f32;
}
unsafe extern "C" {
pub fn b3World_CollideMover(
worldId: b3WorldId,
origin: b3Pos,
mover: *const b3Capsule,
filter: b3QueryFilter,
fcn: b3PlaneResultFcn,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3World_EnableSleeping(worldId: b3WorldId, flag: bool);
}
unsafe extern "C" {
pub fn b3World_IsSleepingEnabled(worldId: b3WorldId) -> bool;
}
unsafe extern "C" {
pub fn b3World_EnableContinuous(worldId: b3WorldId, flag: bool);
}
unsafe extern "C" {
pub fn b3World_IsContinuousEnabled(worldId: b3WorldId) -> bool;
}
unsafe extern "C" {
pub fn b3World_SetRestitutionThreshold(worldId: b3WorldId, value: f32);
}
unsafe extern "C" {
pub fn b3World_GetRestitutionThreshold(worldId: b3WorldId) -> f32;
}
unsafe extern "C" {
pub fn b3World_SetHitEventThreshold(worldId: b3WorldId, value: f32);
}
unsafe extern "C" {
pub fn b3World_GetHitEventThreshold(worldId: b3WorldId) -> f32;
}
unsafe extern "C" {
pub fn b3World_SetCustomFilterCallback(
worldId: b3WorldId,
fcn: b3CustomFilterFcn,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3World_SetPreSolveCallback(
worldId: b3WorldId,
fcn: b3PreSolveFcn,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3World_SetGravity(worldId: b3WorldId, gravity: b3Vec3);
}
unsafe extern "C" {
pub fn b3World_GetGravity(worldId: b3WorldId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3World_Explode(worldId: b3WorldId, explosionDef: *const b3ExplosionDef);
}
unsafe extern "C" {
pub fn b3World_SetContactTuning(
worldId: b3WorldId,
hertz: f32,
dampingRatio: f32,
contactSpeed: f32,
);
}
unsafe extern "C" {
pub fn b3World_SetContactRecycleDistance(worldId: b3WorldId, recycleDistance: f32);
}
unsafe extern "C" {
pub fn b3World_GetContactRecycleDistance(worldId: b3WorldId) -> f32;
}
unsafe extern "C" {
pub fn b3World_SetMaximumLinearSpeed(worldId: b3WorldId, maximumLinearSpeed: f32);
}
unsafe extern "C" {
pub fn b3World_GetMaximumLinearSpeed(worldId: b3WorldId) -> f32;
}
unsafe extern "C" {
pub fn b3World_EnableWarmStarting(worldId: b3WorldId, flag: bool);
}
unsafe extern "C" {
pub fn b3World_IsWarmStartingEnabled(worldId: b3WorldId) -> bool;
}
unsafe extern "C" {
pub fn b3World_GetAwakeBodyCount(worldId: b3WorldId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3World_GetProfile(worldId: b3WorldId) -> b3Profile;
}
unsafe extern "C" {
pub fn b3World_GetCounters(worldId: b3WorldId) -> b3Counters;
}
unsafe extern "C" {
pub fn b3World_GetMaxCapacity(worldId: b3WorldId) -> b3Capacity;
}
unsafe extern "C" {
pub fn b3World_SetUserData(
worldId: b3WorldId,
userData: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3World_GetUserData(worldId: b3WorldId) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn b3World_SetFrictionCallback(worldId: b3WorldId, callback: b3FrictionCallback);
}
unsafe extern "C" {
pub fn b3World_SetRestitutionCallback(
worldId: b3WorldId,
callback: b3RestitutionCallback,
);
}
unsafe extern "C" {
pub fn b3World_SetWorkerCount(worldId: b3WorldId, count: ::std::os::raw::c_int);
}
unsafe extern "C" {
pub fn b3World_GetWorkerCount(worldId: b3WorldId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3World_DumpMemoryStats(worldId: b3WorldId);
}
unsafe extern "C" {
pub fn b3World_DumpShapeBounds(worldId: b3WorldId, type_: b3BodyType);
}
unsafe extern "C" {
pub fn b3World_RebuildStaticTree(worldId: b3WorldId);
}
unsafe extern "C" {
pub fn b3World_EnableSpeculative(worldId: b3WorldId, flag: bool);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3Recording {
_unused: [u8; 0],
}
unsafe extern "C" {
pub fn b3CreateRecording(byteCapacity: ::std::os::raw::c_int) -> *mut b3Recording;
}
unsafe extern "C" {
pub fn b3DestroyRecording(recording: *mut b3Recording);
}
unsafe extern "C" {
pub fn b3Recording_GetData(recording: *const b3Recording) -> *const u8;
}
unsafe extern "C" {
pub fn b3Recording_GetSize(recording: *const b3Recording) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3World_StartRecording(worldId: b3WorldId, recording: *mut b3Recording);
}
unsafe extern "C" {
pub fn b3World_StopRecording(worldId: b3WorldId);
}
unsafe extern "C" {
pub fn b3SaveRecordingToFile(
recording: *const b3Recording,
path: *const ::std::os::raw::c_char,
) -> bool;
}
unsafe extern "C" {
pub fn b3LoadRecordingFromFile(
path: *const ::std::os::raw::c_char,
) -> *mut b3Recording;
}
unsafe extern "C" {
pub fn b3ValidateReplay(
data: *const ::std::os::raw::c_void,
size: ::std::os::raw::c_int,
workerCount: ::std::os::raw::c_int,
) -> bool;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3RecPlayer {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3RecPlayerInfo {
pub frameCount: ::std::os::raw::c_int,
pub workerCount: ::std::os::raw::c_int,
pub timeStep: f32,
pub subStepCount: ::std::os::raw::c_int,
pub lengthScale: f32,
pub bounds: b3AABB,
}
unsafe extern "C" {
pub fn b3RecPlayer_Create(
data: *const ::std::os::raw::c_void,
size: ::std::os::raw::c_int,
workerCount: ::std::os::raw::c_int,
) -> *mut b3RecPlayer;
}
unsafe extern "C" {
pub fn b3RecPlayer_Destroy(player: *mut b3RecPlayer);
}
unsafe extern "C" {
pub fn b3RecPlayer_StepFrame(player: *mut b3RecPlayer) -> bool;
}
unsafe extern "C" {
pub fn b3RecPlayer_SubStepFrame(player: *mut b3RecPlayer);
}
unsafe extern "C" {
pub fn b3RecPlayer_Restart(player: *mut b3RecPlayer);
}
unsafe extern "C" {
pub fn b3RecPlayer_SeekFrame(
player: *mut b3RecPlayer,
targetFrame: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn b3RecPlayer_GetWorldId(player: *const b3RecPlayer) -> b3WorldId;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetFrame(player: *const b3RecPlayer) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetFrameCount(
player: *const b3RecPlayer,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3RecPlayer_IsAtEnd(player: *const b3RecPlayer) -> bool;
}
unsafe extern "C" {
pub fn b3RecPlayer_IsAtPreStep(player: *const b3RecPlayer) -> bool;
}
unsafe extern "C" {
pub fn b3RecPlayer_HasDiverged(player: *const b3RecPlayer) -> bool;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetInfo(player: *const b3RecPlayer) -> b3RecPlayerInfo;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetDivergeFrame(
player: *const b3RecPlayer,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3RecPlayer_SetWorkerCount(
player: *mut b3RecPlayer,
count: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn b3RecPlayer_SetKeyframePolicy(
player: *mut b3RecPlayer,
budgetBytes: usize,
minIntervalFrames: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn b3RecPlayer_GetKeyframeBudget(player: *const b3RecPlayer) -> usize;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetKeyframeMinInterval(
player: *const b3RecPlayer,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetKeyframeInterval(
player: *const b3RecPlayer,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetKeyframeBytes(player: *const b3RecPlayer) -> usize;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetBodyCount(player: *const b3RecPlayer) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetBodyId(
player: *const b3RecPlayer,
index: ::std::os::raw::c_int,
) -> b3BodyId;
}
unsafe extern "C" {
pub fn b3RecPlayer_SetDebugShapeCallbacks(
player: *mut b3RecPlayer,
createDebugShape: b3CreateDebugShapeCallback,
destroyDebugShape: b3DestroyDebugShapeCallback,
context: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3RecPlayer_DrawFrameQueries(
player: *mut b3RecPlayer,
draw: *mut b3DebugDraw,
queryIndex: ::std::os::raw::c_int,
selectedIndex: ::std::os::raw::c_int,
);
}
pub const b3RecQueryType_b3_recQueryOverlapAABB: b3RecQueryType = 0;
pub const b3RecQueryType_b3_recQueryOverlapShape: b3RecQueryType = 1;
pub const b3RecQueryType_b3_recQueryCastRay: b3RecQueryType = 2;
pub const b3RecQueryType_b3_recQueryCastShape: b3RecQueryType = 3;
pub const b3RecQueryType_b3_recQueryCastRayClosest: b3RecQueryType = 4;
pub const b3RecQueryType_b3_recQueryCastMover: b3RecQueryType = 5;
pub const b3RecQueryType_b3_recQueryCollideMover: b3RecQueryType = 6;
pub type b3RecQueryType = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3RecQueryInfo {
pub type_: b3RecQueryType,
pub filter: b3QueryFilter,
pub aabb: b3AABB,
pub origin: b3Pos,
pub translation: b3Vec3,
pub hitCount: ::std::os::raw::c_int,
pub key: u64,
pub id: u64,
pub name: *const ::std::os::raw::c_char,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct b3RecQueryHit {
pub shape: b3ShapeId,
pub point: b3Pos,
pub normal: b3Vec3,
pub fraction: f32,
}
unsafe extern "C" {
pub fn b3RecPlayer_GetFrameQueryCount(
player: *const b3RecPlayer,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetFrameQuery(
player: *const b3RecPlayer,
index: ::std::os::raw::c_int,
) -> b3RecQueryInfo;
}
unsafe extern "C" {
pub fn b3RecPlayer_GetFrameQueryHit(
player: *const b3RecPlayer,
queryIndex: ::std::os::raw::c_int,
hitIndex: ::std::os::raw::c_int,
) -> b3RecQueryHit;
}
unsafe extern "C" {
pub fn b3CreateBody(worldId: b3WorldId, def: *const b3BodyDef) -> b3BodyId;
}
unsafe extern "C" {
pub fn b3DestroyBody(bodyId: b3BodyId);
}
unsafe extern "C" {
pub fn b3Body_IsValid(id: b3BodyId) -> bool;
}
unsafe extern "C" {
pub fn b3Body_GetType(bodyId: b3BodyId) -> b3BodyType;
}
unsafe extern "C" {
pub fn b3Body_SetType(bodyId: b3BodyId, type_: b3BodyType);
}
unsafe extern "C" {
pub fn b3Body_SetName(bodyId: b3BodyId, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn b3Body_GetName(bodyId: b3BodyId) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn b3Body_SetUserData(bodyId: b3BodyId, userData: *mut ::std::os::raw::c_void);
}
unsafe extern "C" {
pub fn b3Body_GetUserData(bodyId: b3BodyId) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn b3Body_GetPosition(bodyId: b3BodyId) -> b3Pos;
}
unsafe extern "C" {
pub fn b3Body_GetRotation(bodyId: b3BodyId) -> b3Quat;
}
unsafe extern "C" {
pub fn b3Body_GetTransform(bodyId: b3BodyId) -> b3WorldTransform;
}
unsafe extern "C" {
pub fn b3Body_SetTransform(bodyId: b3BodyId, position: b3Pos, rotation: b3Quat);
}
unsafe extern "C" {
pub fn b3Body_GetLocalPoint(bodyId: b3BodyId, worldPoint: b3Pos) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_GetWorldPoint(bodyId: b3BodyId, localPoint: b3Vec3) -> b3Pos;
}
unsafe extern "C" {
pub fn b3Body_GetLocalVector(bodyId: b3BodyId, worldVector: b3Vec3) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_GetWorldVector(bodyId: b3BodyId, localVector: b3Vec3) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_GetLinearVelocity(bodyId: b3BodyId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_GetAngularVelocity(bodyId: b3BodyId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_SetLinearVelocity(bodyId: b3BodyId, linearVelocity: b3Vec3);
}
unsafe extern "C" {
pub fn b3Body_SetAngularVelocity(bodyId: b3BodyId, angularVelocity: b3Vec3);
}
unsafe extern "C" {
pub fn b3Body_SetTargetTransform(
bodyId: b3BodyId,
target: b3WorldTransform,
timeStep: f32,
wake: bool,
);
}
unsafe extern "C" {
pub fn b3Body_GetLocalPointVelocity(bodyId: b3BodyId, localPoint: b3Vec3) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_GetWorldPointVelocity(bodyId: b3BodyId, worldPoint: b3Pos) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_ApplyForce(bodyId: b3BodyId, force: b3Vec3, point: b3Pos, wake: bool);
}
unsafe extern "C" {
pub fn b3Body_ApplyForceToCenter(bodyId: b3BodyId, force: b3Vec3, wake: bool);
}
unsafe extern "C" {
pub fn b3Body_ApplyTorque(bodyId: b3BodyId, torque: b3Vec3, wake: bool);
}
unsafe extern "C" {
pub fn b3Body_ApplyLinearImpulse(
bodyId: b3BodyId,
impulse: b3Vec3,
point: b3Pos,
wake: bool,
);
}
unsafe extern "C" {
pub fn b3Body_ApplyLinearImpulseToCenter(
bodyId: b3BodyId,
impulse: b3Vec3,
wake: bool,
);
}
unsafe extern "C" {
pub fn b3Body_ApplyAngularImpulse(bodyId: b3BodyId, impulse: b3Vec3, wake: bool);
}
unsafe extern "C" {
pub fn b3Body_GetMass(bodyId: b3BodyId) -> f32;
}
unsafe extern "C" {
pub fn b3Body_GetLocalRotationalInertia(bodyId: b3BodyId) -> b3Matrix3;
}
unsafe extern "C" {
pub fn b3Body_GetInverseMass(bodyId: b3BodyId) -> f32;
}
unsafe extern "C" {
pub fn b3Body_GetWorldInverseRotationalInertia(bodyId: b3BodyId) -> b3Matrix3;
}
unsafe extern "C" {
pub fn b3Body_GetLocalCenter(bodyId: b3BodyId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Body_GetWorldCenter(bodyId: b3BodyId) -> b3Pos;
}
unsafe extern "C" {
pub fn b3Body_SetMassData(bodyId: b3BodyId, massData: b3MassData);
}
unsafe extern "C" {
pub fn b3Body_GetMassData(bodyId: b3BodyId) -> b3MassData;
}
unsafe extern "C" {
pub fn b3Body_ApplyMassFromShapes(bodyId: b3BodyId);
}
unsafe extern "C" {
pub fn b3Body_SetLinearDamping(bodyId: b3BodyId, linearDamping: f32);
}
unsafe extern "C" {
pub fn b3Body_GetLinearDamping(bodyId: b3BodyId) -> f32;
}
unsafe extern "C" {
pub fn b3Body_SetAngularDamping(bodyId: b3BodyId, angularDamping: f32);
}
unsafe extern "C" {
pub fn b3Body_GetAngularDamping(bodyId: b3BodyId) -> f32;
}
unsafe extern "C" {
pub fn b3Body_SetGravityScale(bodyId: b3BodyId, gravityScale: f32);
}
unsafe extern "C" {
pub fn b3Body_GetGravityScale(bodyId: b3BodyId) -> f32;
}
unsafe extern "C" {
pub fn b3Body_IsAwake(bodyId: b3BodyId) -> bool;
}
unsafe extern "C" {
pub fn b3Body_SetAwake(bodyId: b3BodyId, awake: bool);
}
unsafe extern "C" {
pub fn b3Body_EnableSleep(bodyId: b3BodyId, enableSleep: bool);
}
unsafe extern "C" {
pub fn b3Body_IsSleepEnabled(bodyId: b3BodyId) -> bool;
}
unsafe extern "C" {
pub fn b3Body_SetSleepThreshold(bodyId: b3BodyId, sleepThreshold: f32);
}
unsafe extern "C" {
pub fn b3Body_GetSleepThreshold(bodyId: b3BodyId) -> f32;
}
unsafe extern "C" {
pub fn b3Body_IsEnabled(bodyId: b3BodyId) -> bool;
}
unsafe extern "C" {
pub fn b3Body_Disable(bodyId: b3BodyId);
}
unsafe extern "C" {
pub fn b3Body_Enable(bodyId: b3BodyId);
}
unsafe extern "C" {
pub fn b3Body_SetMotionLocks(bodyId: b3BodyId, locks: b3MotionLocks);
}
unsafe extern "C" {
pub fn b3Body_GetMotionLocks(bodyId: b3BodyId) -> b3MotionLocks;
}
unsafe extern "C" {
pub fn b3Body_SetBullet(bodyId: b3BodyId, flag: bool);
}
unsafe extern "C" {
pub fn b3Body_IsBullet(bodyId: b3BodyId) -> bool;
}
unsafe extern "C" {
pub fn b3Body_AllowFastRotation(bodyId: b3BodyId, flag: bool);
}
unsafe extern "C" {
pub fn b3Body_IsFastRotationAllowed(bodyId: b3BodyId) -> bool;
}
unsafe extern "C" {
pub fn b3Body_EnableContactRecycling(bodyId: b3BodyId, flag: bool);
}
unsafe extern "C" {
pub fn b3Body_IsContactRecyclingEnabled(bodyId: b3BodyId) -> bool;
}
unsafe extern "C" {
pub fn b3Body_EnableHitEvents(bodyId: b3BodyId, flag: bool);
}
unsafe extern "C" {
pub fn b3Body_GetWorld(bodyId: b3BodyId) -> b3WorldId;
}
unsafe extern "C" {
pub fn b3Body_GetShapeCount(bodyId: b3BodyId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Body_GetShapes(
bodyId: b3BodyId,
shapeArray: *mut b3ShapeId,
capacity: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Body_GetJointCount(bodyId: b3BodyId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Body_GetJoints(
bodyId: b3BodyId,
jointArray: *mut b3JointId,
capacity: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Body_GetContactCapacity(bodyId: b3BodyId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Body_GetContactData(
bodyId: b3BodyId,
contactData: *mut b3ContactData,
capacity: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Body_ComputeAABB(bodyId: b3BodyId) -> b3AABB;
}
unsafe extern "C" {
pub fn b3Body_GetClosestPoint(
bodyId: b3BodyId,
result: *mut b3Vec3,
target: b3Vec3,
) -> f32;
}
unsafe extern "C" {
pub fn b3Body_CastRay(
bodyId: b3BodyId,
origin: b3Pos,
translation: b3Vec3,
filter: b3QueryFilter,
maxFraction: f32,
bodyTransform: b3WorldTransform,
) -> b3BodyCastResult;
}
unsafe extern "C" {
pub fn b3Body_CastShape(
bodyId: b3BodyId,
origin: b3Pos,
proxy: *const b3ShapeProxy,
translation: b3Vec3,
filter: b3QueryFilter,
maxFraction: f32,
canEncroach: bool,
bodyTransform: b3WorldTransform,
) -> b3BodyCastResult;
}
unsafe extern "C" {
pub fn b3Body_OverlapShape(
bodyId: b3BodyId,
origin: b3Pos,
proxy: *const b3ShapeProxy,
filter: b3QueryFilter,
bodyTransform: b3WorldTransform,
) -> bool;
}
unsafe extern "C" {
pub fn b3Body_CollideMover(
bodyId: b3BodyId,
bodyPlanes: *mut b3BodyPlaneResult,
planeCapacity: ::std::os::raw::c_int,
origin: b3Pos,
mover: *const b3Capsule,
filter: b3QueryFilter,
bodyTransform: b3WorldTransform,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3CreateSphereShape(
bodyId: b3BodyId,
def: *const b3ShapeDef,
sphere: *const b3Sphere,
) -> b3ShapeId;
}
unsafe extern "C" {
pub fn b3CreateCapsuleShape(
bodyId: b3BodyId,
def: *const b3ShapeDef,
capsule: *const b3Capsule,
) -> b3ShapeId;
}
unsafe extern "C" {
pub fn b3CreateHullShape(
bodyId: b3BodyId,
def: *const b3ShapeDef,
hull: *const b3HullData,
) -> b3ShapeId;
}
unsafe extern "C" {
pub fn b3CreateTransformedHullShape(
bodyId: b3BodyId,
def: *const b3ShapeDef,
hull: *const b3HullData,
transform: b3Transform,
scale: b3Vec3,
) -> b3ShapeId;
}
unsafe extern "C" {
pub fn b3CreateMeshShape(
bodyId: b3BodyId,
def: *const b3ShapeDef,
mesh: *const b3MeshData,
scale: b3Vec3,
) -> b3ShapeId;
}
unsafe extern "C" {
pub fn b3CreateHeightFieldShape(
bodyId: b3BodyId,
def: *const b3ShapeDef,
heightField: *const b3HeightFieldData,
) -> b3ShapeId;
}
unsafe extern "C" {
pub fn b3CreateBakedCompoundShape(
bodyId: b3BodyId,
def: *mut b3ShapeDef,
compound: *const b3CompoundData,
) -> b3ShapeId;
}
unsafe extern "C" {
pub fn b3DestroyShape(shapeId: b3ShapeId, updateBodyMass: bool);
}
unsafe extern "C" {
pub fn b3Shape_IsValid(id: b3ShapeId) -> bool;
}
unsafe extern "C" {
pub fn b3Shape_GetType(shapeId: b3ShapeId) -> b3ShapeType;
}
unsafe extern "C" {
pub fn b3Shape_GetBody(shapeId: b3ShapeId) -> b3BodyId;
}
unsafe extern "C" {
pub fn b3Shape_GetWorld(shapeId: b3ShapeId) -> b3WorldId;
}
unsafe extern "C" {
pub fn b3Shape_IsSensor(shapeId: b3ShapeId) -> bool;
}
unsafe extern "C" {
pub fn b3Shape_SetName(shapeId: b3ShapeId, name: *const ::std::os::raw::c_char);
}
unsafe extern "C" {
pub fn b3Shape_GetName(shapeId: b3ShapeId) -> *const ::std::os::raw::c_char;
}
unsafe extern "C" {
pub fn b3Shape_SetUserData(
shapeId: b3ShapeId,
userData: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3Shape_GetUserData(shapeId: b3ShapeId) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn b3Shape_SetDensity(shapeId: b3ShapeId, density: f32, updateBodyMass: bool);
}
unsafe extern "C" {
pub fn b3Shape_GetDensity(shapeId: b3ShapeId) -> f32;
}
unsafe extern "C" {
pub fn b3Shape_SetFriction(shapeId: b3ShapeId, friction: f32);
}
unsafe extern "C" {
pub fn b3Shape_GetFriction(shapeId: b3ShapeId) -> f32;
}
unsafe extern "C" {
pub fn b3Shape_SetRestitution(shapeId: b3ShapeId, restitution: f32);
}
unsafe extern "C" {
pub fn b3Shape_GetRestitution(shapeId: b3ShapeId) -> f32;
}
unsafe extern "C" {
pub fn b3Shape_SetSurfaceMaterial(
shapeId: b3ShapeId,
surfaceMaterial: b3SurfaceMaterial,
);
}
unsafe extern "C" {
pub fn b3Shape_GetSurfaceMaterial(shapeId: b3ShapeId) -> b3SurfaceMaterial;
}
unsafe extern "C" {
pub fn b3Shape_GetMeshMaterialCount(shapeId: b3ShapeId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Shape_SetMeshMaterial(
shapeId: b3ShapeId,
surfaceMaterial: b3SurfaceMaterial,
index: ::std::os::raw::c_int,
);
}
unsafe extern "C" {
pub fn b3Shape_GetMeshSurfaceMaterial(
shapeId: b3ShapeId,
index: ::std::os::raw::c_int,
) -> b3SurfaceMaterial;
}
unsafe extern "C" {
pub fn b3Shape_GetFilter(shapeId: b3ShapeId) -> b3Filter;
}
unsafe extern "C" {
pub fn b3Shape_SetFilter(shapeId: b3ShapeId, filter: b3Filter, invokeContacts: bool);
}
unsafe extern "C" {
pub fn b3Shape_EnableSensorEvents(shapeId: b3ShapeId, flag: bool);
}
unsafe extern "C" {
pub fn b3Shape_AreSensorEventsEnabled(shapeId: b3ShapeId) -> bool;
}
unsafe extern "C" {
pub fn b3Shape_EnableContactEvents(shapeId: b3ShapeId, flag: bool);
}
unsafe extern "C" {
pub fn b3Shape_AreContactEventsEnabled(shapeId: b3ShapeId) -> bool;
}
unsafe extern "C" {
pub fn b3Shape_EnablePreSolveEvents(shapeId: b3ShapeId, flag: bool);
}
unsafe extern "C" {
pub fn b3Shape_ArePreSolveEventsEnabled(shapeId: b3ShapeId) -> bool;
}
unsafe extern "C" {
pub fn b3Shape_EnableHitEvents(shapeId: b3ShapeId, flag: bool);
}
unsafe extern "C" {
pub fn b3Shape_AreHitEventsEnabled(shapeId: b3ShapeId) -> bool;
}
unsafe extern "C" {
pub fn b3Shape_RayCast(
shapeId: b3ShapeId,
origin: b3Pos,
translation: b3Vec3,
) -> b3WorldCastOutput;
}
unsafe extern "C" {
pub fn b3Shape_GetSphere(shapeId: b3ShapeId) -> b3Sphere;
}
unsafe extern "C" {
pub fn b3Shape_GetCapsule(shapeId: b3ShapeId) -> b3Capsule;
}
unsafe extern "C" {
pub fn b3Shape_GetHull(shapeId: b3ShapeId) -> *const b3HullData;
}
unsafe extern "C" {
pub fn b3Shape_GetMesh(shapeId: b3ShapeId) -> b3Mesh;
}
unsafe extern "C" {
pub fn b3Shape_GetHeightField(shapeId: b3ShapeId) -> *const b3HeightFieldData;
}
unsafe extern "C" {
pub fn b3Shape_SetSphere(shapeId: b3ShapeId, sphere: *const b3Sphere);
}
unsafe extern "C" {
pub fn b3Shape_SetCapsule(shapeId: b3ShapeId, capsule: *const b3Capsule);
}
unsafe extern "C" {
pub fn b3Shape_SetHull(shapeId: b3ShapeId, hull: *const b3HullData);
}
unsafe extern "C" {
pub fn b3Shape_SetMesh(
shapeId: b3ShapeId,
meshData: *const b3MeshData,
scale: b3Vec3,
);
}
unsafe extern "C" {
pub fn b3Shape_GetContactCapacity(shapeId: b3ShapeId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Shape_GetContactData(
shapeId: b3ShapeId,
contactData: *mut b3ContactData,
capacity: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Shape_GetSensorCapacity(shapeId: b3ShapeId) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Shape_GetSensorData(
shapeId: b3ShapeId,
visitorIds: *mut b3ShapeId,
capacity: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
pub fn b3Shape_GetAABB(shapeId: b3ShapeId) -> b3AABB;
}
unsafe extern "C" {
pub fn b3Shape_ComputeMassData(shapeId: b3ShapeId) -> b3MassData;
}
unsafe extern "C" {
pub fn b3Shape_GetClosestPoint(shapeId: b3ShapeId, target: b3Vec3) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Shape_ApplyWind(
shapeId: b3ShapeId,
wind: b3Vec3,
drag: f32,
lift: f32,
maxSpeed: f32,
wake: bool,
);
}
unsafe extern "C" {
pub fn b3DestroyJoint(jointId: b3JointId, wakeAttached: bool);
}
unsafe extern "C" {
pub fn b3Joint_IsValid(id: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3Joint_GetType(jointId: b3JointId) -> b3JointType;
}
unsafe extern "C" {
pub fn b3Joint_GetBodyA(jointId: b3JointId) -> b3BodyId;
}
unsafe extern "C" {
pub fn b3Joint_GetBodyB(jointId: b3JointId) -> b3BodyId;
}
unsafe extern "C" {
pub fn b3Joint_GetWorld(jointId: b3JointId) -> b3WorldId;
}
unsafe extern "C" {
pub fn b3Joint_SetLocalFrameA(jointId: b3JointId, localFrame: b3Transform);
}
unsafe extern "C" {
pub fn b3Joint_GetLocalFrameA(jointId: b3JointId) -> b3Transform;
}
unsafe extern "C" {
pub fn b3Joint_SetLocalFrameB(jointId: b3JointId, localFrame: b3Transform);
}
unsafe extern "C" {
pub fn b3Joint_GetLocalFrameB(jointId: b3JointId) -> b3Transform;
}
unsafe extern "C" {
pub fn b3Joint_SetCollideConnected(jointId: b3JointId, shouldCollide: bool);
}
unsafe extern "C" {
pub fn b3Joint_GetCollideConnected(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3Joint_SetUserData(
jointId: b3JointId,
userData: *mut ::std::os::raw::c_void,
);
}
unsafe extern "C" {
pub fn b3Joint_GetUserData(jointId: b3JointId) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
pub fn b3Joint_WakeBodies(jointId: b3JointId);
}
unsafe extern "C" {
pub fn b3Joint_GetConstraintForce(jointId: b3JointId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Joint_GetConstraintTorque(jointId: b3JointId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3Joint_GetLinearSeparation(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3Joint_GetAngularSeparation(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3Joint_SetConstraintTuning(
jointId: b3JointId,
hertz: f32,
dampingRatio: f32,
);
}
unsafe extern "C" {
pub fn b3Joint_GetConstraintTuning(
jointId: b3JointId,
hertz: *mut f32,
dampingRatio: *mut f32,
);
}
unsafe extern "C" {
pub fn b3Joint_SetForceThreshold(jointId: b3JointId, threshold: f32);
}
unsafe extern "C" {
pub fn b3Joint_GetForceThreshold(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3Joint_SetTorqueThreshold(jointId: b3JointId, threshold: f32);
}
unsafe extern "C" {
pub fn b3Joint_GetTorqueThreshold(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateParallelJoint(
worldId: b3WorldId,
def: *const b3ParallelJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3ParallelJoint_SetSpringHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3ParallelJoint_SetSpringDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3ParallelJoint_GetSpringHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3ParallelJoint_GetSpringDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3ParallelJoint_SetMaxTorque(jointId: b3JointId, force: f32);
}
unsafe extern "C" {
pub fn b3ParallelJoint_GetMaxTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateDistanceJoint(
worldId: b3WorldId,
def: *const b3DistanceJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3DistanceJoint_SetLength(jointId: b3JointId, length: f32);
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetLength(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_EnableSpring(jointId: b3JointId, enableSpring: bool);
}
unsafe extern "C" {
pub fn b3DistanceJoint_IsSpringEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3DistanceJoint_SetSpringForceRange(
jointId: b3JointId,
lowerForce: f32,
upperForce: f32,
);
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetSpringForceRange(
jointId: b3JointId,
lowerForce: *mut f32,
upperForce: *mut f32,
);
}
unsafe extern "C" {
pub fn b3DistanceJoint_SetSpringHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3DistanceJoint_SetSpringDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetSpringHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetSpringDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_EnableLimit(jointId: b3JointId, enableLimit: bool);
}
unsafe extern "C" {
pub fn b3DistanceJoint_IsLimitEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3DistanceJoint_SetLengthRange(
jointId: b3JointId,
minLength: f32,
maxLength: f32,
);
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetMinLength(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetMaxLength(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetCurrentLength(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_EnableMotor(jointId: b3JointId, enableMotor: bool);
}
unsafe extern "C" {
pub fn b3DistanceJoint_IsMotorEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3DistanceJoint_SetMotorSpeed(jointId: b3JointId, motorSpeed: f32);
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetMotorSpeed(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_SetMaxMotorForce(jointId: b3JointId, force: f32);
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetMaxMotorForce(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3DistanceJoint_GetMotorForce(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateMotorJoint(
worldId: b3WorldId,
def: *const b3MotorJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetLinearVelocity(jointId: b3JointId, velocity: b3Vec3);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetLinearVelocity(jointId: b3JointId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetAngularVelocity(jointId: b3JointId, velocity: b3Vec3);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetAngularVelocity(jointId: b3JointId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetMaxVelocityForce(jointId: b3JointId, maxForce: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetMaxVelocityForce(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetMaxVelocityTorque(jointId: b3JointId, maxTorque: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetMaxVelocityTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetLinearHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetLinearHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetLinearDampingRatio(jointId: b3JointId, damping: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetLinearDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetAngularHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetAngularHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetAngularDampingRatio(jointId: b3JointId, damping: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetAngularDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetMaxSpringForce(jointId: b3JointId, maxForce: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetMaxSpringForce(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3MotorJoint_SetMaxSpringTorque(jointId: b3JointId, maxTorque: f32);
}
unsafe extern "C" {
pub fn b3MotorJoint_GetMaxSpringTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateFilterJoint(
worldId: b3WorldId,
def: *const b3FilterJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3CreatePrismaticJoint(
worldId: b3WorldId,
def: *const b3PrismaticJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_EnableSpring(jointId: b3JointId, enableSpring: bool);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_IsSpringEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_SetSpringHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetSpringHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_SetSpringDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetSpringDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_SetTargetTranslation(
jointId: b3JointId,
targetTranslation: f32,
);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetTargetTranslation(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_EnableLimit(jointId: b3JointId, enableLimit: bool);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_IsLimitEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetLowerLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetUpperLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_SetLimits(jointId: b3JointId, lower: f32, upper: f32);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_EnableMotor(jointId: b3JointId, enableMotor: bool);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_IsMotorEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_SetMotorSpeed(jointId: b3JointId, motorSpeed: f32);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetMotorSpeed(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_SetMaxMotorForce(jointId: b3JointId, force: f32);
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetMaxMotorForce(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetMotorForce(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetTranslation(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3PrismaticJoint_GetSpeed(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateRevoluteJoint(
worldId: b3WorldId,
def: *const b3RevoluteJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_EnableSpring(jointId: b3JointId, enableSpring: bool);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_IsSpringEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_SetSpringHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetSpringHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_SetSpringDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetSpringDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_SetTargetAngle(jointId: b3JointId, targetRadians: f32);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetTargetAngle(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetAngle(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_EnableLimit(jointId: b3JointId, enableLimit: bool);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_IsLimitEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetLowerLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetUpperLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_SetLimits(
jointId: b3JointId,
lowerLimitRadians: f32,
upperLimitRadians: f32,
);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_EnableMotor(jointId: b3JointId, enableMotor: bool);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_IsMotorEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_SetMotorSpeed(jointId: b3JointId, motorSpeed: f32);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetMotorSpeed(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetMotorTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3RevoluteJoint_SetMaxMotorTorque(jointId: b3JointId, torque: f32);
}
unsafe extern "C" {
pub fn b3RevoluteJoint_GetMaxMotorTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateSphericalJoint(
worldId: b3WorldId,
def: *const b3SphericalJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3SphericalJoint_EnableConeLimit(jointId: b3JointId, enableLimit: bool);
}
unsafe extern "C" {
pub fn b3SphericalJoint_IsConeLimitEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetConeLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3SphericalJoint_SetConeLimit(jointId: b3JointId, angleRadians: f32);
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetConeAngle(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3SphericalJoint_EnableTwistLimit(jointId: b3JointId, enableLimit: bool);
}
unsafe extern "C" {
pub fn b3SphericalJoint_IsTwistLimitEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetLowerTwistLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetUpperTwistLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3SphericalJoint_SetTwistLimits(
jointId: b3JointId,
lowerLimitRadians: f32,
upperLimitRadians: f32,
);
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetTwistAngle(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3SphericalJoint_EnableSpring(jointId: b3JointId, enableSpring: bool);
}
unsafe extern "C" {
pub fn b3SphericalJoint_IsSpringEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3SphericalJoint_SetSpringHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetSpringHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3SphericalJoint_SetSpringDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetSpringDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3SphericalJoint_SetTargetRotation(
jointId: b3JointId,
targetRotation: b3Quat,
);
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetTargetRotation(jointId: b3JointId) -> b3Quat;
}
unsafe extern "C" {
pub fn b3SphericalJoint_EnableMotor(jointId: b3JointId, enableMotor: bool);
}
unsafe extern "C" {
pub fn b3SphericalJoint_IsMotorEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3SphericalJoint_SetMotorVelocity(jointId: b3JointId, motorVelocity: b3Vec3);
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetMotorVelocity(jointId: b3JointId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetMotorTorque(jointId: b3JointId) -> b3Vec3;
}
unsafe extern "C" {
pub fn b3SphericalJoint_SetMaxMotorTorque(jointId: b3JointId, torque: f32);
}
unsafe extern "C" {
pub fn b3SphericalJoint_GetMaxMotorTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateWeldJoint(
worldId: b3WorldId,
def: *const b3WeldJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3WeldJoint_SetLinearHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3WeldJoint_GetLinearHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WeldJoint_SetLinearDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3WeldJoint_GetLinearDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WeldJoint_SetAngularHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3WeldJoint_GetAngularHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WeldJoint_SetAngularDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3WeldJoint_GetAngularDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3CreateWheelJoint(
worldId: b3WorldId,
def: *const b3WheelJointDef,
) -> b3JointId;
}
unsafe extern "C" {
pub fn b3WheelJoint_EnableSuspension(jointId: b3JointId, flag: bool);
}
unsafe extern "C" {
pub fn b3WheelJoint_IsSuspensionEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetSuspensionHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSuspensionHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetSuspensionDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSuspensionDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_EnableSuspensionLimit(jointId: b3JointId, flag: bool);
}
unsafe extern "C" {
pub fn b3WheelJoint_IsSuspensionLimitEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetLowerSuspensionLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetUpperSuspensionLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetSuspensionLimits(jointId: b3JointId, lower: f32, upper: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_EnableSpinMotor(jointId: b3JointId, flag: bool);
}
unsafe extern "C" {
pub fn b3WheelJoint_IsSpinMotorEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetSpinMotorSpeed(jointId: b3JointId, speed: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSpinMotorSpeed(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetMaxSpinTorque(jointId: b3JointId, torque: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetMaxSpinTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSpinSpeed(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSpinTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_EnableSteering(jointId: b3JointId, flag: bool);
}
unsafe extern "C" {
pub fn b3WheelJoint_IsSteeringEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetSteeringHertz(jointId: b3JointId, hertz: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSteeringHertz(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetSteeringDampingRatio(jointId: b3JointId, dampingRatio: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSteeringDampingRatio(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetMaxSteeringTorque(jointId: b3JointId, torque: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetMaxSteeringTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_EnableSteeringLimit(jointId: b3JointId, flag: bool);
}
unsafe extern "C" {
pub fn b3WheelJoint_IsSteeringLimitEnabled(jointId: b3JointId) -> bool;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetLowerSteeringLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetUpperSteeringLimit(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_SetSteeringLimits(
jointId: b3JointId,
lowerRadians: f32,
upperRadians: f32,
);
}
unsafe extern "C" {
pub fn b3WheelJoint_SetTargetSteeringAngle(jointId: b3JointId, radians: f32);
}
unsafe extern "C" {
pub fn b3WheelJoint_GetTargetSteeringAngle(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSteeringAngle(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3WheelJoint_GetSteeringTorque(jointId: b3JointId) -> f32;
}
unsafe extern "C" {
pub fn b3Contact_IsValid(id: b3ContactId) -> bool;
}
unsafe extern "C" {
pub fn b3Contact_GetData(contactId: b3ContactId) -> b3ContactData;
}