Skip to content

Instantly share code, notes, and snippets.

@tomaka
Created June 23, 2014 12:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomaka/a98e0ddcb81e16b3a913 to your computer and use it in GitHub Desktop.
Save tomaka/a98e0ddcb81e16b3a913 to your computer and use it in GitHub Desktop.
Rust FFI for Chipmunk2D
/* automatically generated by rust-bindgen */
#![crate_id = "chipmunk-rs"]
#![crate_type = "lib"]
extern crate libc;
pub type size_t = ::libc::c_ulong;
pub type wchar_t = ::libc::c_int;
pub type idtype_t = ::libc::c_uint;
pub static P_ALL: ::libc::c_uint = 0;
pub static P_PID: ::libc::c_uint = 1;
pub static P_PGID: ::libc::c_uint = 2;
pub type __u_char = ::libc::c_uchar;
pub type __u_short = ::libc::c_ushort;
pub type __u_int = ::libc::c_uint;
pub type __u_long = ::libc::c_ulong;
pub type __int8_t = ::libc::c_char;
pub type __uint8_t = ::libc::c_uchar;
pub type __int16_t = ::libc::c_short;
pub type __uint16_t = ::libc::c_ushort;
pub type __int32_t = ::libc::c_int;
pub type __uint32_t = ::libc::c_uint;
pub type __int64_t = ::libc::c_long;
pub type __uint64_t = ::libc::c_ulong;
pub type __quad_t = ::libc::c_long;
pub type __u_quad_t = ::libc::c_ulong;
pub type __dev_t = ::libc::c_ulong;
pub type __uid_t = ::libc::c_uint;
pub type __gid_t = ::libc::c_uint;
pub type __ino_t = ::libc::c_ulong;
pub type __ino64_t = ::libc::c_ulong;
pub type __mode_t = ::libc::c_uint;
pub type __nlink_t = ::libc::c_ulong;
pub type __off_t = ::libc::c_long;
pub type __off64_t = ::libc::c_long;
pub type __pid_t = ::libc::c_int;
pub struct __fsid_t {
pub __val: [::libc::c_int, ..2u],
}
pub type __clock_t = ::libc::c_long;
pub type __rlim_t = ::libc::c_ulong;
pub type __rlim64_t = ::libc::c_ulong;
pub type __id_t = ::libc::c_uint;
pub type __time_t = ::libc::c_long;
pub type __useconds_t = ::libc::c_uint;
pub type __suseconds_t = ::libc::c_long;
pub type __daddr_t = ::libc::c_int;
pub type __key_t = ::libc::c_int;
pub type __clockid_t = ::libc::c_int;
pub type __timer_t = *mut ::libc::c_void;
pub type __blksize_t = ::libc::c_long;
pub type __blkcnt_t = ::libc::c_long;
pub type __blkcnt64_t = ::libc::c_long;
pub type __fsblkcnt_t = ::libc::c_ulong;
pub type __fsblkcnt64_t = ::libc::c_ulong;
pub type __fsfilcnt_t = ::libc::c_ulong;
pub type __fsfilcnt64_t = ::libc::c_ulong;
pub type __fsword_t = ::libc::c_long;
pub type __ssize_t = ::libc::c_long;
pub type __syscall_slong_t = ::libc::c_long;
pub type __syscall_ulong_t = ::libc::c_ulong;
pub type __loff_t = __off64_t;
pub type __qaddr_t = *mut __quad_t;
pub type __caddr_t = *mut ::libc::c_char;
pub type __intptr_t = ::libc::c_long;
pub type __socklen_t = ::libc::c_uint;
pub struct Union_wait {
pub data: [u32, ..1u],
}
impl Union_wait {
pub fn w_status(&mut self) -> *mut ::libc::c_int {
unsafe { ::std::mem::transmute(self) }
}
pub fn __wait_terminated(&mut self) -> *mut Struct_Unnamed1 {
unsafe { ::std::mem::transmute(self) }
}
pub fn __wait_stopped(&mut self) -> *mut Struct_Unnamed2 {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct Struct_Unnamed1 {
pub __w_termsig: ::libc::c_uint,
pub __w_coredump: ::libc::c_uint,
pub __w_retcode: ::libc::c_uint,
pub unnamed_field1: ::libc::c_uint,
}
pub struct Struct_Unnamed2 {
pub __w_stopval: ::libc::c_uint,
pub __w_stopsig: ::libc::c_uint,
pub unnamed_field1: ::libc::c_uint,
}
pub struct __WAIT_STATUS {
pub data: [u64, ..1u],
}
impl __WAIT_STATUS {
pub fn __uptr(&mut self) -> *mut *mut Union_wait {
unsafe { ::std::mem::transmute(self) }
}
pub fn __iptr(&mut self) -> *mut *mut ::libc::c_int {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct div_t {
pub quot: ::libc::c_int,
pub rem: ::libc::c_int,
}
pub struct ldiv_t {
pub quot: ::libc::c_long,
pub rem: ::libc::c_long,
}
pub struct lldiv_t {
pub quot: ::libc::c_longlong,
pub rem: ::libc::c_longlong,
}
pub type u_char = __u_char;
pub type u_short = __u_short;
pub type u_int = __u_int;
pub type u_long = __u_long;
pub type quad_t = __quad_t;
pub type u_quad_t = __u_quad_t;
pub type fsid_t = __fsid_t;
pub type loff_t = __loff_t;
pub type ino_t = __ino_t;
pub type dev_t = __dev_t;
pub type gid_t = __gid_t;
pub type mode_t = __mode_t;
pub type nlink_t = __nlink_t;
pub type uid_t = __uid_t;
pub type off_t = __off_t;
pub type pid_t = __pid_t;
pub type id_t = __id_t;
pub type ssize_t = __ssize_t;
pub type daddr_t = __daddr_t;
pub type caddr_t = __caddr_t;
pub type key_t = __key_t;
pub type clock_t = __clock_t;
pub type time_t = __time_t;
pub type clockid_t = __clockid_t;
pub type timer_t = __timer_t;
pub type ulong = ::libc::c_ulong;
pub type ushort = ::libc::c_ushort;
pub type _uint = ::libc::c_uint;
pub type int8_t = ::libc::c_char;
pub type int16_t = ::libc::c_short;
pub type int32_t = ::libc::c_int;
pub type int64_t = ::libc::c_long;
pub type u_int8_t = ::libc::c_uchar;
pub type u_int16_t = ::libc::c_ushort;
pub type u_int32_t = ::libc::c_uint;
pub type u_int64_t = ::libc::c_ulong;
pub type register_t = ::libc::c_long;
pub type __sig_atomic_t = ::libc::c_int;
pub struct __sigset_t {
pub __val: [::libc::c_ulong, ..16u],
}
pub type sigset_t = __sigset_t;
pub struct Struct_timespec {
pub tv_sec: __time_t,
pub tv_nsec: __syscall_slong_t,
}
pub struct Struct_timeval {
pub tv_sec: __time_t,
pub tv_usec: __suseconds_t,
}
pub type suseconds_t = __suseconds_t;
pub type __fd_mask = ::libc::c_long;
pub struct fd_set {
pub __fds_bits: [__fd_mask, ..16u],
}
pub type fd_mask = __fd_mask;
pub type blksize_t = __blksize_t;
pub type blkcnt_t = __blkcnt_t;
pub type fsblkcnt_t = __fsblkcnt_t;
pub type fsfilcnt_t = __fsfilcnt_t;
pub type pthread_t = ::libc::c_ulong;
pub struct Union_pthread_attr_t {
pub data: [u64, ..7u],
}
impl Union_pthread_attr_t {
pub fn __size(&mut self) -> *mut [::libc::c_char, ..56u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_long {
unsafe { ::std::mem::transmute(self) }
}
}
pub type pthread_attr_t = Union_pthread_attr_t;
pub struct Struct___pthread_internal_list {
pub __prev: *mut Struct___pthread_internal_list,
pub __next: *mut Struct___pthread_internal_list,
}
pub type __pthread_list_t = Struct___pthread_internal_list;
pub struct Struct___pthread_mutex_s {
pub __lock: ::libc::c_int,
pub __count: ::libc::c_uint,
pub __owner: ::libc::c_int,
pub __nusers: ::libc::c_uint,
pub __kind: ::libc::c_int,
pub __spins: ::libc::c_short,
pub __elision: ::libc::c_short,
pub __list: __pthread_list_t,
}
pub struct pthread_mutex_t {
pub data: [u64, ..5u],
}
impl pthread_mutex_t {
pub fn __data(&mut self) -> *mut Struct___pthread_mutex_s {
unsafe { ::std::mem::transmute(self) }
}
pub fn __size(&mut self) -> *mut [::libc::c_char, ..40u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_long {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct pthread_mutexattr_t {
pub data: [u32, ..1u],
}
impl pthread_mutexattr_t {
pub fn __size(&mut self) -> *mut [::libc::c_char, ..4u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_int {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct Struct_Unnamed3 {
pub __lock: ::libc::c_int,
pub __futex: ::libc::c_uint,
pub __total_seq: ::libc::c_ulonglong,
pub __wakeup_seq: ::libc::c_ulonglong,
pub __woken_seq: ::libc::c_ulonglong,
pub __mutex: *mut ::libc::c_void,
pub __nwaiters: ::libc::c_uint,
pub __broadcast_seq: ::libc::c_uint,
}
pub struct pthread_cond_t {
pub data: [u64, ..6u],
}
impl pthread_cond_t {
pub fn __data(&mut self) -> *mut Struct_Unnamed3 {
unsafe { ::std::mem::transmute(self) }
}
pub fn __size(&mut self) -> *mut [::libc::c_char, ..48u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_longlong {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct pthread_condattr_t {
pub data: [u32, ..1u],
}
impl pthread_condattr_t {
pub fn __size(&mut self) -> *mut [::libc::c_char, ..4u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_int {
unsafe { ::std::mem::transmute(self) }
}
}
pub type pthread_key_t = ::libc::c_uint;
pub type pthread_once_t = ::libc::c_int;
pub struct Struct_Unnamed4 {
pub __lock: ::libc::c_int,
pub __nr_readers: ::libc::c_uint,
pub __readers_wakeup: ::libc::c_uint,
pub __writer_wakeup: ::libc::c_uint,
pub __nr_readers_queued: ::libc::c_uint,
pub __nr_writers_queued: ::libc::c_uint,
pub __writer: ::libc::c_int,
pub __shared: ::libc::c_int,
pub __pad1: ::libc::c_ulong,
pub __pad2: ::libc::c_ulong,
pub __flags: ::libc::c_uint,
}
pub struct pthread_rwlock_t {
pub data: [u64, ..7u],
}
impl pthread_rwlock_t {
pub fn __data(&mut self) -> *mut Struct_Unnamed4 {
unsafe { ::std::mem::transmute(self) }
}
pub fn __size(&mut self) -> *mut [::libc::c_char, ..56u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_long {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct pthread_rwlockattr_t {
pub data: [u64, ..1u],
}
impl pthread_rwlockattr_t {
pub fn __size(&mut self) -> *mut [::libc::c_char, ..8u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_long {
unsafe { ::std::mem::transmute(self) }
}
}
pub type pthread_spinlock_t = ::libc::c_int;
pub struct pthread_barrier_t {
pub data: [u64, ..4u],
}
impl pthread_barrier_t {
pub fn __size(&mut self) -> *mut [::libc::c_char, ..32u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_long {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct pthread_barrierattr_t {
pub data: [u32, ..1u],
}
impl pthread_barrierattr_t {
pub fn __size(&mut self) -> *mut [::libc::c_char, ..4u] {
unsafe { ::std::mem::transmute(self) }
}
pub fn __align(&mut self) -> *mut ::libc::c_int {
unsafe { ::std::mem::transmute(self) }
}
}
pub struct Struct_random_data {
pub fptr: *mut int32_t,
pub rptr: *mut int32_t,
pub state: *mut int32_t,
pub rand_type: ::libc::c_int,
pub rand_deg: ::libc::c_int,
pub rand_sep: ::libc::c_int,
pub end_ptr: *mut int32_t,
}
pub struct Struct_drand48_data {
pub __x: [::libc::c_ushort, ..3u],
pub __old_x: [::libc::c_ushort, ..3u],
pub __c: ::libc::c_ushort,
pub __init: ::libc::c_ushort,
pub __a: ::libc::c_ulonglong,
}
pub type __compar_fn_t =
::std::option::Option<extern "C" fn
(arg1: *::libc::c_void, arg2: *::libc::c_void)
-> ::libc::c_int>;
pub type float_t = ::libc::c_float;
pub type double_t = ::libc::c_double;
pub type Enum_Unnamed5 = ::libc::c_uint;
pub static FP_NAN: ::libc::c_uint = 0;
pub static FP_INFINITE: ::libc::c_uint = 1;
pub static FP_ZERO: ::libc::c_uint = 2;
pub static FP_SUBNORMAL: ::libc::c_uint = 3;
pub static FP_NORMAL: ::libc::c_uint = 4;
pub type _LIB_VERSION_TYPE = ::libc::c_int;
pub static _IEEE_: ::libc::c_int = -1;
pub static _SVID_: ::libc::c_int = 0;
pub static _XOPEN_: ::libc::c_int = 1;
pub static _POSIX_: ::libc::c_int = 2;
pub static _ISOC_: ::libc::c_int = 3;
pub struct Struct_exception {
pub _type: ::libc::c_int,
pub name: *mut ::libc::c_char,
pub arg1: ::libc::c_double,
pub arg2: ::libc::c_double,
pub retval: ::libc::c_double,
}
pub type uint8_t = ::libc::c_uchar;
pub type uint16_t = ::libc::c_ushort;
pub type uint32_t = ::libc::c_uint;
pub type uint64_t = ::libc::c_ulong;
pub type int_least8_t = ::libc::c_char;
pub type int_least16_t = ::libc::c_short;
pub type int_least32_t = ::libc::c_int;
pub type int_least64_t = ::libc::c_long;
pub type uint_least8_t = ::libc::c_uchar;
pub type uint_least16_t = ::libc::c_ushort;
pub type uint_least32_t = ::libc::c_uint;
pub type uint_least64_t = ::libc::c_ulong;
pub type int_fast8_t = ::libc::c_char;
pub type int_fast16_t = ::libc::c_long;
pub type int_fast32_t = ::libc::c_long;
pub type int_fast64_t = ::libc::c_long;
pub type uint_fast8_t = ::libc::c_uchar;
pub type uint_fast16_t = ::libc::c_ulong;
pub type uint_fast32_t = ::libc::c_ulong;
pub type uint_fast64_t = ::libc::c_ulong;
pub type intptr_t = ::libc::c_long;
pub type uintptr_t = ::libc::c_ulong;
pub type intmax_t = ::libc::c_long;
pub type uintmax_t = ::libc::c_ulong;
pub type cpFloat = ::libc::c_double;
pub type cpHashValue = uintptr_t;
pub type cpCollisionID = uint32_t;
pub type cpBool = ::libc::c_uchar;
pub type cpDataPointer = *mut ::libc::c_void;
pub type cpCollisionType = uintptr_t;
pub type cpGroup = uintptr_t;
pub type cpBitmask = ::libc::c_uint;
pub type cpTimestamp = ::libc::c_uint;
pub struct Struct_cpVect {
pub x: cpFloat,
pub y: cpFloat,
}
pub type cpVect = Struct_cpVect;
pub struct Struct_cpTransform {
pub a: cpFloat,
pub b: cpFloat,
pub c: cpFloat,
pub d: cpFloat,
pub tx: cpFloat,
pub ty: cpFloat,
}
pub type cpTransform = Struct_cpTransform;
pub struct Struct_cpMat2x2 {
pub a: cpFloat,
pub b: cpFloat,
pub c: cpFloat,
pub d: cpFloat,
}
pub type cpMat2x2 = Struct_cpMat2x2;
pub enum Struct_cpArray { }
pub type cpArray = Struct_cpArray;
pub enum Struct_cpHashSet { }
pub type cpHashSet = Struct_cpHashSet;
pub enum Struct_cpBody { }
pub type cpBody = Struct_cpBody;
pub enum Struct_cpShape { }
pub type cpShape = Struct_cpShape;
pub enum Struct_cpCircleShape { }
pub type cpCircleShape = Struct_cpCircleShape;
pub enum Struct_cpSegmentShape { }
pub type cpSegmentShape = Struct_cpSegmentShape;
pub enum Struct_cpPolyShape { }
pub type cpPolyShape = Struct_cpPolyShape;
pub enum Struct_cpConstraint { }
pub type cpConstraint = Struct_cpConstraint;
pub enum Struct_cpPinJoint { }
pub type cpPinJoint = Struct_cpPinJoint;
pub enum Struct_cpSlideJoint { }
pub type cpSlideJoint = Struct_cpSlideJoint;
pub enum Struct_cpPivotJoint { }
pub type cpPivotJoint = Struct_cpPivotJoint;
pub enum Struct_cpGrooveJoint { }
pub type cpGrooveJoint = Struct_cpGrooveJoint;
pub enum Struct_cpDampedSpring { }
pub type cpDampedSpring = Struct_cpDampedSpring;
pub enum Struct_cpDampedRotarySpring { }
pub type cpDampedRotarySpring = Struct_cpDampedRotarySpring;
pub enum Struct_cpRotaryLimitJoint { }
pub type cpRotaryLimitJoint = Struct_cpRotaryLimitJoint;
pub enum Struct_cpRatchetJoint { }
pub type cpRatchetJoint = Struct_cpRatchetJoint;
pub enum Struct_cpGearJoint { }
pub type cpGearJoint = Struct_cpGearJoint;
pub enum Struct_cpSimpleMotorJoint { }
pub type cpSimpleMotorJoint = Struct_cpSimpleMotorJoint;
pub type cpCollisionHandler = Struct_cpCollisionHandler;
pub type cpContactPointSet = Struct_cpContactPointSet;
pub enum Struct_cpArbiter { }
pub type cpArbiter = Struct_cpArbiter;
pub enum Struct_cpSpace { }
pub type cpSpace = Struct_cpSpace;
pub struct Struct_cpBB {
pub l: cpFloat,
pub b: cpFloat,
pub r: cpFloat,
pub t: cpFloat,
}
pub type cpBB = Struct_cpBB;
pub type cpSpatialIndexBBFunc =
::std::option::Option<extern "C" fn(arg1: *mut ::libc::c_void) -> cpBB>;
pub type cpSpatialIndexIteratorFunc =
::std::option::Option<extern "C" fn
(arg1: *mut ::libc::c_void,
arg2: *mut ::libc::c_void)>;
pub type cpSpatialIndexQueryFunc =
::std::option::Option<extern "C" fn
(arg1: *mut ::libc::c_void,
arg2: *mut ::libc::c_void, arg3: cpCollisionID,
arg4: *mut ::libc::c_void) -> cpCollisionID>;
pub type cpSpatialIndexSegmentQueryFunc =
::std::option::Option<extern "C" fn
(arg1: *mut ::libc::c_void,
arg2: *mut ::libc::c_void,
arg3: *mut ::libc::c_void) -> cpFloat>;
pub type cpSpatialIndexClass = Struct_cpSpatialIndexClass;
pub type cpSpatialIndex = Struct_cpSpatialIndex;
pub struct Struct_cpSpatialIndex {
pub klass: *mut cpSpatialIndexClass,
pub bbfunc: cpSpatialIndexBBFunc,
pub staticIndex: *mut cpSpatialIndex,
pub dynamicIndex: *mut cpSpatialIndex,
}
pub enum Struct_cpSpaceHash { }
pub type cpSpaceHash = Struct_cpSpaceHash;
pub enum Struct_cpBBTree { }
pub type cpBBTree = Struct_cpBBTree;
pub type cpBBTreeVelocityFunc =
::std::option::Option<extern "C" fn(arg1: *mut ::libc::c_void) -> cpVect>;
pub enum Struct_cpSweep1D { }
pub type cpSweep1D = Struct_cpSweep1D;
pub type cpSpatialIndexDestroyImpl =
::std::option::Option<extern "C" fn(arg1: *mut cpSpatialIndex)>;
pub type cpSpatialIndexCountImpl =
::std::option::Option<extern "C" fn(arg1: *mut cpSpatialIndex)
-> ::libc::c_int>;
pub type cpSpatialIndexEachImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: cpSpatialIndexIteratorFunc,
arg3: *mut ::libc::c_void)>;
pub type cpSpatialIndexContainsImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: *mut ::libc::c_void, arg3: cpHashValue)
-> cpBool>;
pub type cpSpatialIndexInsertImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: *mut ::libc::c_void, arg3: cpHashValue)>;
pub type cpSpatialIndexRemoveImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: *mut ::libc::c_void, arg3: cpHashValue)>;
pub type cpSpatialIndexReindexImpl =
::std::option::Option<extern "C" fn(arg1: *mut cpSpatialIndex)>;
pub type cpSpatialIndexReindexObjectImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: *mut ::libc::c_void, arg3: cpHashValue)>;
pub type cpSpatialIndexReindexQueryImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: cpSpatialIndexQueryFunc,
arg3: *mut ::libc::c_void)>;
pub type cpSpatialIndexQueryImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: *mut ::libc::c_void, arg3: cpBB,
arg4: cpSpatialIndexQueryFunc,
arg5: *mut ::libc::c_void)>;
pub type cpSpatialIndexSegmentQueryImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpatialIndex,
arg2: *mut ::libc::c_void, arg3: cpVect,
arg4: cpVect, arg5: cpFloat,
arg6: cpSpatialIndexSegmentQueryFunc,
arg7: *mut ::libc::c_void)>;
pub struct Struct_cpSpatialIndexClass {
pub destroy: cpSpatialIndexDestroyImpl,
pub count: cpSpatialIndexCountImpl,
pub each: cpSpatialIndexEachImpl,
pub contains: cpSpatialIndexContainsImpl,
pub insert: cpSpatialIndexInsertImpl,
pub remove: cpSpatialIndexRemoveImpl,
pub reindex: cpSpatialIndexReindexImpl,
pub reindexObject: cpSpatialIndexReindexObjectImpl,
pub reindexQuery: cpSpatialIndexReindexQueryImpl,
pub query: cpSpatialIndexQueryImpl,
pub segmentQuery: cpSpatialIndexSegmentQueryImpl,
}
pub struct Struct_cpContactPointSet {
pub count: ::libc::c_int,
pub normal: cpVect,
pub points: [Struct_Unnamed6, ..2u],
}
pub struct Struct_Unnamed6 {
pub pointA: cpVect,
pub pointB: cpVect,
pub distance: cpFloat,
}
pub type Enum_cpBodyType = ::libc::c_uint;
pub static CP_BODY_TYPE_DYNAMIC: ::libc::c_uint = 0;
pub static CP_BODY_TYPE_KINEMATIC: ::libc::c_uint = 1;
pub static CP_BODY_TYPE_STATIC: ::libc::c_uint = 2;
pub type cpBodyType = Enum_cpBodyType;
pub type cpBodyVelocityFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpBody, arg2: cpVect, arg3: cpFloat,
arg4: cpFloat)>;
pub type cpBodyPositionFunc =
::std::option::Option<extern "C" fn(arg1: *mut cpBody, arg2: cpFloat)>;
pub type cpBodyShapeIteratorFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpBody, arg2: *mut cpShape,
arg3: *mut ::libc::c_void)>;
pub type cpBodyConstraintIteratorFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpBody, arg2: *mut cpConstraint,
arg3: *mut ::libc::c_void)>;
pub type cpBodyArbiterIteratorFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpBody, arg2: *mut cpArbiter,
arg3: *mut ::libc::c_void)>;
pub struct Struct_cpPointQueryInfo {
pub shape: *cpShape,
pub point: cpVect,
pub distance: cpFloat,
pub gradient: cpVect,
}
pub type cpPointQueryInfo = Struct_cpPointQueryInfo;
pub struct Struct_cpSegmentQueryInfo {
pub shape: *cpShape,
pub point: cpVect,
pub normal: cpVect,
pub alpha: cpFloat,
}
pub type cpSegmentQueryInfo = Struct_cpSegmentQueryInfo;
pub struct Struct_cpShapeFilter {
pub group: cpGroup,
pub categories: cpBitmask,
pub mask: cpBitmask,
}
pub type cpShapeFilter = Struct_cpShapeFilter;
pub type cpConstraintPreSolveFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpConstraint, arg2: *mut cpSpace)>;
pub type cpConstraintPostSolveFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpConstraint, arg2: *mut cpSpace)>;
pub type cpDampedSpringForceFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpConstraint, arg2: cpFloat)
-> cpFloat>;
pub type cpDampedRotarySpringTorqueFunc =
::std::option::Option<extern "C" fn
(arg1: *mut Struct_cpConstraint, arg2: cpFloat)
-> cpFloat>;
pub enum Struct_cpSimpleMotor { }
pub type cpSimpleMotor = Struct_cpSimpleMotor;
pub enum Struct_cpContactBufferHeader { }
pub type cpContactBufferHeader = Struct_cpContactBufferHeader;
pub type cpSpaceArbiterApplyImpulseFunc =
::std::option::Option<extern "C" fn(arg1: *mut cpArbiter)>;
pub type cpCollisionBeginFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpArbiter, arg2: *mut cpSpace,
arg3: cpDataPointer) -> cpBool>;
pub type cpCollisionPreSolveFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpArbiter, arg2: *mut cpSpace,
arg3: cpDataPointer) -> cpBool>;
pub type cpCollisionPostSolveFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpArbiter, arg2: *mut cpSpace,
arg3: cpDataPointer)>;
pub type cpCollisionSeparateFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpArbiter, arg2: *mut cpSpace,
arg3: cpDataPointer)>;
pub struct Struct_cpCollisionHandler {
pub typeA: cpCollisionType,
pub typeB: cpCollisionType,
pub beginFunc: cpCollisionBeginFunc,
pub preSolveFunc: cpCollisionPreSolveFunc,
pub postSolveFunc: cpCollisionPostSolveFunc,
pub separateFunc: cpCollisionSeparateFunc,
pub userData: cpDataPointer,
}
pub type cpPostStepFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpSpace, arg2: *mut ::libc::c_void,
arg3: *mut ::libc::c_void)>;
pub type cpSpacePointQueryFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpShape, arg2: cpVect,
arg3: cpFloat, arg4: cpVect,
arg5: *mut ::libc::c_void)>;
pub type cpSpaceSegmentQueryFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpShape, arg2: cpVect, arg3: cpVect,
arg4: cpFloat, arg5: *mut ::libc::c_void)>;
pub type cpSpaceBBQueryFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpShape,
arg2: *mut ::libc::c_void)>;
pub type cpSpaceShapeQueryFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpShape,
arg2: *mut cpContactPointSet,
arg3: *mut ::libc::c_void)>;
pub type cpSpaceBodyIteratorFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpBody, arg2: *mut ::libc::c_void)>;
pub type cpSpaceShapeIteratorFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpShape,
arg2: *mut ::libc::c_void)>;
pub type cpSpaceConstraintIteratorFunc =
::std::option::Option<extern "C" fn
(arg1: *mut cpConstraint,
arg2: *mut ::libc::c_void)>;
pub struct Struct_cpSpaceDebugColor {
pub r: ::libc::c_float,
pub g: ::libc::c_float,
pub b: ::libc::c_float,
pub a: ::libc::c_float,
}
pub type cpSpaceDebugColor = Struct_cpSpaceDebugColor;
pub type cpSpaceDebugDrawCircleImpl =
::std::option::Option<extern "C" fn
(arg1: cpVect, arg2: cpFloat, arg3: cpFloat,
arg4: cpSpaceDebugColor,
arg5: cpSpaceDebugColor,
arg6: *mut cpDataPointer)>;
pub type cpSpaceDebugDrawSegmentImpl =
::std::option::Option<extern "C" fn
(arg1: cpVect, arg2: cpVect,
arg3: cpSpaceDebugColor,
arg4: *mut cpDataPointer)>;
pub type cpSpaceDebugDrawFatSegmentImpl =
::std::option::Option<extern "C" fn
(arg1: cpVect, arg2: cpVect, arg3: cpFloat,
arg4: cpSpaceDebugColor,
arg5: cpSpaceDebugColor,
arg6: *mut cpDataPointer)>;
pub type cpSpaceDebugDrawPolygonImpl =
::std::option::Option<extern "C" fn
(arg1: ::libc::c_int, arg2: *cpVect,
arg3: cpFloat, arg4: cpSpaceDebugColor,
arg5: cpSpaceDebugColor,
arg6: *mut cpDataPointer)>;
pub type cpSpaceDebugDrawDotImpl =
::std::option::Option<extern "C" fn
(arg1: cpFloat, arg2: cpVect,
arg3: cpSpaceDebugColor,
arg4: *mut cpDataPointer)>;
pub type cpSpaceDebugDrawColorForShapeImpl =
::std::option::Option<extern "C" fn
(arg1: *mut cpShape, arg2: *mut cpDataPointer)
-> cpSpaceDebugColor>;
pub type Enum_cpSpaceDebugDrawFlags = ::libc::c_uint;
pub static CP_SPACE_DEBUG_DRAW_SHAPES: ::libc::c_uint = 1;
pub static CP_SPACE_DEBUG_DRAW_CONSTRAINTS: ::libc::c_uint = 2;
pub static CP_SPACE_DEBUG_DRAW_COLLISION_POINTS: ::libc::c_uint = 4;
pub type cpSpaceDebugDrawFlags = Enum_cpSpaceDebugDrawFlags;
pub struct Struct_cpSpaceDebugDrawOptions {
pub drawCircle: cpSpaceDebugDrawCircleImpl,
pub drawSegment: cpSpaceDebugDrawSegmentImpl,
pub drawFatSegment: cpSpaceDebugDrawFatSegmentImpl,
pub drawPolygon: cpSpaceDebugDrawPolygonImpl,
pub drawDot: cpSpaceDebugDrawDotImpl,
pub flags: cpSpaceDebugDrawFlags,
pub shapeOutlineColor: cpSpaceDebugColor,
pub colorForShape: cpSpaceDebugDrawColorForShapeImpl,
pub constraintColor: cpSpaceDebugColor,
pub collisionPointColor: cpSpaceDebugColor,
pub data: cpDataPointer,
}
pub type cpSpaceDebugDrawOptions = Struct_cpSpaceDebugDrawOptions;
extern "C" {
pub static mut signgam: ::libc::c_int;
pub static mut _LIB_VERSION: _LIB_VERSION_TYPE;
pub static mut cpVersionString: *::libc::c_char;
pub fn __ctype_get_mb_cur_max() -> size_t;
pub fn atof(__nptr: *::libc::c_char) -> ::libc::c_double;
pub fn atoi(__nptr: *::libc::c_char) -> ::libc::c_int;
pub fn atol(__nptr: *::libc::c_char) -> ::libc::c_long;
pub fn atoll(__nptr: *::libc::c_char) -> ::libc::c_longlong;
pub fn strtod(__nptr: *::libc::c_char, __endptr: *mut *mut ::libc::c_char)
-> ::libc::c_double;
pub fn strtof(__nptr: *::libc::c_char, __endptr: *mut *mut ::libc::c_char)
-> ::libc::c_float;
pub fn strtold(__nptr: *::libc::c_char,
__endptr: *mut *mut ::libc::c_char) -> ::libc::c_double;
pub fn strtol(__nptr: *::libc::c_char, __endptr: *mut *mut ::libc::c_char,
__base: ::libc::c_int) -> ::libc::c_long;
pub fn strtoul(__nptr: *::libc::c_char,
__endptr: *mut *mut ::libc::c_char, __base: ::libc::c_int)
-> ::libc::c_ulong;
pub fn strtoq(__nptr: *::libc::c_char, __endptr: *mut *mut ::libc::c_char,
__base: ::libc::c_int) -> ::libc::c_longlong;
pub fn strtouq(__nptr: *::libc::c_char,
__endptr: *mut *mut ::libc::c_char, __base: ::libc::c_int)
-> ::libc::c_ulonglong;
pub fn strtoll(__nptr: *::libc::c_char,
__endptr: *mut *mut ::libc::c_char, __base: ::libc::c_int)
-> ::libc::c_longlong;
pub fn strtoull(__nptr: *::libc::c_char,
__endptr: *mut *mut ::libc::c_char, __base: ::libc::c_int)
-> ::libc::c_ulonglong;
pub fn l64a(__n: ::libc::c_long) -> *mut ::libc::c_char;
pub fn a64l(__s: *::libc::c_char) -> ::libc::c_long;
pub fn select(__nfds: ::libc::c_int, __readfds: *mut fd_set,
__writefds: *mut fd_set, __exceptfds: *mut fd_set,
__timeout: *mut Struct_timeval) -> ::libc::c_int;
pub fn pselect(__nfds: ::libc::c_int, __readfds: *mut fd_set,
__writefds: *mut fd_set, __exceptfds: *mut fd_set,
__timeout: *Struct_timespec, __sigmask: *__sigset_t) ->
::libc::c_int;
pub fn gnu_dev_major(__dev: ::libc::c_ulonglong) -> ::libc::c_uint;
pub fn gnu_dev_minor(__dev: ::libc::c_ulonglong) -> ::libc::c_uint;
pub fn gnu_dev_makedev(__major: ::libc::c_uint, __minor: ::libc::c_uint)
-> ::libc::c_ulonglong;
pub fn random() -> ::libc::c_long;
pub fn srandom(__seed: ::libc::c_uint);
pub fn initstate(__seed: ::libc::c_uint, __statebuf: *mut ::libc::c_char,
__statelen: size_t) -> *mut ::libc::c_char;
pub fn setstate(__statebuf: *mut ::libc::c_char) -> *mut ::libc::c_char;
pub fn random_r(__buf: *mut Struct_random_data, __result: *mut int32_t) ->
::libc::c_int;
pub fn srandom_r(__seed: ::libc::c_uint, __buf: *mut Struct_random_data)
-> ::libc::c_int;
pub fn initstate_r(__seed: ::libc::c_uint,
__statebuf: *mut ::libc::c_char, __statelen: size_t,
__buf: *mut Struct_random_data) -> ::libc::c_int;
pub fn setstate_r(__statebuf: *mut ::libc::c_char,
__buf: *mut Struct_random_data) -> ::libc::c_int;
pub fn rand() -> ::libc::c_int;
pub fn srand(__seed: ::libc::c_uint);
pub fn rand_r(__seed: *mut ::libc::c_uint) -> ::libc::c_int;
pub fn drand48() -> ::libc::c_double;
pub fn erand48(__xsubi: [::libc::c_ushort, ..3u]) -> ::libc::c_double;
pub fn lrand48() -> ::libc::c_long;
pub fn nrand48(__xsubi: [::libc::c_ushort, ..3u]) -> ::libc::c_long;
pub fn mrand48() -> ::libc::c_long;
pub fn jrand48(__xsubi: [::libc::c_ushort, ..3u]) -> ::libc::c_long;
pub fn srand48(__seedval: ::libc::c_long);
pub fn seed48(__seed16v: [::libc::c_ushort, ..3u]) ->
*mut ::libc::c_ushort;
pub fn lcong48(__param: [::libc::c_ushort, ..7u]);
pub fn drand48_r(__buffer: *mut Struct_drand48_data,
__result: *mut ::libc::c_double) -> ::libc::c_int;
pub fn erand48_r(__xsubi: [::libc::c_ushort, ..3u],
__buffer: *mut Struct_drand48_data,
__result: *mut ::libc::c_double) -> ::libc::c_int;
pub fn lrand48_r(__buffer: *mut Struct_drand48_data,
__result: *mut ::libc::c_long) -> ::libc::c_int;
pub fn nrand48_r(__xsubi: [::libc::c_ushort, ..3u],
__buffer: *mut Struct_drand48_data,
__result: *mut ::libc::c_long) -> ::libc::c_int;
pub fn mrand48_r(__buffer: *mut Struct_drand48_data,
__result: *mut ::libc::c_long) -> ::libc::c_int;
pub fn jrand48_r(__xsubi: [::libc::c_ushort, ..3u],
__buffer: *mut Struct_drand48_data,
__result: *mut ::libc::c_long) -> ::libc::c_int;
pub fn srand48_r(__seedval: ::libc::c_long,
__buffer: *mut Struct_drand48_data) -> ::libc::c_int;
pub fn seed48_r(__seed16v: [::libc::c_ushort, ..3u],
__buffer: *mut Struct_drand48_data) -> ::libc::c_int;
pub fn lcong48_r(__param: [::libc::c_ushort, ..7u],
__buffer: *mut Struct_drand48_data) -> ::libc::c_int;
pub fn malloc(__size: size_t) -> *mut ::libc::c_void;
pub fn calloc(__nmemb: size_t, __size: size_t) -> *mut ::libc::c_void;
pub fn realloc(__ptr: *mut ::libc::c_void, __size: size_t) ->
*mut ::libc::c_void;
pub fn free(__ptr: *mut ::libc::c_void);
pub fn cfree(__ptr: *mut ::libc::c_void);
pub fn alloca(__size: size_t) -> *mut ::libc::c_void;
pub fn valloc(__size: size_t) -> *mut ::libc::c_void;
pub fn posix_memalign(__memptr: *mut *mut ::libc::c_void,
__alignment: size_t, __size: size_t) ->
::libc::c_int;
pub fn abort();
pub fn atexit(__func: ::std::option::Option<extern "C" fn()>) ->
::libc::c_int;
pub fn on_exit(__func:
::std::option::Option<extern "C" fn
(arg1: ::libc::c_int,
arg2: *mut ::libc::c_void)>,
__arg: *mut ::libc::c_void) -> ::libc::c_int;
pub fn exit(__status: ::libc::c_int);
pub fn _Exit(__status: ::libc::c_int);
pub fn getenv(__name: *::libc::c_char) -> *mut ::libc::c_char;
pub fn putenv(__string: *mut ::libc::c_char) -> ::libc::c_int;
pub fn setenv(__name: *::libc::c_char, __value: *::libc::c_char,
__replace: ::libc::c_int) -> ::libc::c_int;
pub fn unsetenv(__name: *::libc::c_char) -> ::libc::c_int;
pub fn clearenv() -> ::libc::c_int;
pub fn mktemp(__template: *mut ::libc::c_char) -> *mut ::libc::c_char;
pub fn mkstemp(__template: *mut ::libc::c_char) -> ::libc::c_int;
pub fn mkstemps(__template: *mut ::libc::c_char,
__suffixlen: ::libc::c_int) -> ::libc::c_int;
pub fn mkdtemp(__template: *mut ::libc::c_char) -> *mut ::libc::c_char;
pub fn system(__command: *::libc::c_char) -> ::libc::c_int;
pub fn realpath(__name: *::libc::c_char, __resolved: *mut ::libc::c_char)
-> *mut ::libc::c_char;
pub fn bsearch(__key: *::libc::c_void, __base: *::libc::c_void,
__nmemb: size_t, __size: size_t, __compar: __compar_fn_t)
-> *mut ::libc::c_void;
pub fn qsort(__base: *mut ::libc::c_void, __nmemb: size_t, __size: size_t,
__compar: __compar_fn_t);
pub fn abs(__x: ::libc::c_int) -> ::libc::c_int;
pub fn labs(__x: ::libc::c_long) -> ::libc::c_long;
pub fn llabs(__x: ::libc::c_longlong) -> ::libc::c_longlong;
pub fn div(__numer: ::libc::c_int, __denom: ::libc::c_int) -> div_t;
pub fn ldiv(__numer: ::libc::c_long, __denom: ::libc::c_long) -> ldiv_t;
pub fn lldiv(__numer: ::libc::c_longlong, __denom: ::libc::c_longlong) ->
lldiv_t;
pub fn ecvt(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int) ->
*mut ::libc::c_char;
pub fn fcvt(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int) ->
*mut ::libc::c_char;
pub fn gcvt(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__buf: *mut ::libc::c_char) -> *mut ::libc::c_char;
pub fn qecvt(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int) ->
*mut ::libc::c_char;
pub fn qfcvt(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int) ->
*mut ::libc::c_char;
pub fn qgcvt(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__buf: *mut ::libc::c_char) -> *mut ::libc::c_char;
pub fn ecvt_r(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int,
__buf: *mut ::libc::c_char, __len: size_t) -> ::libc::c_int;
pub fn fcvt_r(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int,
__buf: *mut ::libc::c_char, __len: size_t) -> ::libc::c_int;
pub fn qecvt_r(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int,
__buf: *mut ::libc::c_char, __len: size_t) ->
::libc::c_int;
pub fn qfcvt_r(__value: ::libc::c_double, __ndigit: ::libc::c_int,
__decpt: *mut ::libc::c_int, __sign: *mut ::libc::c_int,
__buf: *mut ::libc::c_char, __len: size_t) ->
::libc::c_int;
pub fn mblen(__s: *::libc::c_char, __n: size_t) -> ::libc::c_int;
pub fn mbtowc(__pwc: *mut wchar_t, __s: *::libc::c_char, __n: size_t) ->
::libc::c_int;
pub fn wctomb(__s: *mut ::libc::c_char, __wchar: wchar_t) ->
::libc::c_int;
pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *::libc::c_char, __n: size_t)
-> size_t;
pub fn wcstombs(__s: *mut ::libc::c_char, __pwcs: *wchar_t, __n: size_t)
-> size_t;
pub fn rpmatch(__response: *::libc::c_char) -> ::libc::c_int;
pub fn getsubopt(__optionp: *mut *mut ::libc::c_char,
__tokens: **mut ::libc::c_char,
__valuep: *mut *mut ::libc::c_char) -> ::libc::c_int;
pub fn getloadavg(__loadavg: *mut ::libc::c_double,
__nelem: ::libc::c_int) -> ::libc::c_int;
pub fn acos(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __acos(__x: ::libc::c_double) -> ::libc::c_double;
pub fn asin(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __asin(__x: ::libc::c_double) -> ::libc::c_double;
pub fn atan(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __atan(__x: ::libc::c_double) -> ::libc::c_double;
pub fn atan2(__y: ::libc::c_double, __x: ::libc::c_double) ->
::libc::c_double;
pub fn __atan2(__y: ::libc::c_double, __x: ::libc::c_double) ->
::libc::c_double;
pub fn cos(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __cos(__x: ::libc::c_double) -> ::libc::c_double;
pub fn sin(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __sin(__x: ::libc::c_double) -> ::libc::c_double;
pub fn tan(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __tan(__x: ::libc::c_double) -> ::libc::c_double;
pub fn cosh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __cosh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn sinh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __sinh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn tanh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __tanh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn acosh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __acosh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn asinh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __asinh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn atanh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __atanh(__x: ::libc::c_double) -> ::libc::c_double;
pub fn exp(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __exp(__x: ::libc::c_double) -> ::libc::c_double;
pub fn frexp(__x: ::libc::c_double, __exponent: *mut ::libc::c_int) ->
::libc::c_double;
pub fn __frexp(__x: ::libc::c_double, __exponent: *mut ::libc::c_int) ->
::libc::c_double;
pub fn ldexp(__x: ::libc::c_double, __exponent: ::libc::c_int) ->
::libc::c_double;
pub fn __ldexp(__x: ::libc::c_double, __exponent: ::libc::c_int) ->
::libc::c_double;
pub fn log(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __log(__x: ::libc::c_double) -> ::libc::c_double;
pub fn log10(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __log10(__x: ::libc::c_double) -> ::libc::c_double;
pub fn modf(__x: ::libc::c_double, __iptr: *mut ::libc::c_double) ->
::libc::c_double;
pub fn __modf(__x: ::libc::c_double, __iptr: *mut ::libc::c_double) ->
::libc::c_double;
pub fn expm1(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __expm1(__x: ::libc::c_double) -> ::libc::c_double;
pub fn log1p(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __log1p(__x: ::libc::c_double) -> ::libc::c_double;
pub fn logb(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __logb(__x: ::libc::c_double) -> ::libc::c_double;
pub fn exp2(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __exp2(__x: ::libc::c_double) -> ::libc::c_double;
pub fn log2(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __log2(__x: ::libc::c_double) -> ::libc::c_double;
pub fn pow(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __pow(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn sqrt(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __sqrt(__x: ::libc::c_double) -> ::libc::c_double;
pub fn hypot(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __hypot(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn cbrt(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __cbrt(__x: ::libc::c_double) -> ::libc::c_double;
pub fn ceil(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __ceil(__x: ::libc::c_double) -> ::libc::c_double;
pub fn fabs(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __fabs(__x: ::libc::c_double) -> ::libc::c_double;
pub fn floor(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __floor(__x: ::libc::c_double) -> ::libc::c_double;
pub fn fmod(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fmod(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __isinf(__value: ::libc::c_double) -> ::libc::c_int;
pub fn __finite(__value: ::libc::c_double) -> ::libc::c_int;
pub fn isinf(__value: ::libc::c_double) -> ::libc::c_int;
pub fn finite(__value: ::libc::c_double) -> ::libc::c_int;
pub fn drem(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __drem(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn significand(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __significand(__x: ::libc::c_double) -> ::libc::c_double;
pub fn copysign(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __copysign(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn nan(__tagb: *::libc::c_char) -> ::libc::c_double;
pub fn __nan(__tagb: *::libc::c_char) -> ::libc::c_double;
pub fn __isnan(__value: ::libc::c_double) -> ::libc::c_int;
pub fn isnan(__value: ::libc::c_double) -> ::libc::c_int;
pub fn j0(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __j0(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn j1(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __j1(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn jn(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn __jn(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn y0(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __y0(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn y1(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __y1(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn yn(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn __yn(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn erf(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __erf(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn erfc(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __erfc(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn lgamma(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __lgamma(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn tgamma(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __tgamma(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn gamma(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __gamma(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn lgamma_r(arg1: ::libc::c_double, __signgamp: *mut ::libc::c_int) ->
::libc::c_double;
pub fn __lgamma_r(arg1: ::libc::c_double, __signgamp: *mut ::libc::c_int)
-> ::libc::c_double;
pub fn rint(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __rint(__x: ::libc::c_double) -> ::libc::c_double;
pub fn nextafter(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __nextafter(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn nexttoward(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __nexttoward(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn remainder(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __remainder(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn scalbn(__x: ::libc::c_double, __n: ::libc::c_int) ->
::libc::c_double;
pub fn __scalbn(__x: ::libc::c_double, __n: ::libc::c_int) ->
::libc::c_double;
pub fn ilogb(__x: ::libc::c_double) -> ::libc::c_int;
pub fn __ilogb(__x: ::libc::c_double) -> ::libc::c_int;
pub fn scalbln(__x: ::libc::c_double, __n: ::libc::c_long) ->
::libc::c_double;
pub fn __scalbln(__x: ::libc::c_double, __n: ::libc::c_long) ->
::libc::c_double;
pub fn nearbyint(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __nearbyint(__x: ::libc::c_double) -> ::libc::c_double;
pub fn round(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __round(__x: ::libc::c_double) -> ::libc::c_double;
pub fn trunc(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __trunc(__x: ::libc::c_double) -> ::libc::c_double;
pub fn remquo(__x: ::libc::c_double, __y: ::libc::c_double,
__quo: *mut ::libc::c_int) -> ::libc::c_double;
pub fn __remquo(__x: ::libc::c_double, __y: ::libc::c_double,
__quo: *mut ::libc::c_int) -> ::libc::c_double;
pub fn lrint(__x: ::libc::c_double) -> ::libc::c_long;
pub fn __lrint(__x: ::libc::c_double) -> ::libc::c_long;
pub fn llrint(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn __llrint(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn lround(__x: ::libc::c_double) -> ::libc::c_long;
pub fn __lround(__x: ::libc::c_double) -> ::libc::c_long;
pub fn llround(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn __llround(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn fdim(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fdim(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn fmax(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fmax(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn fmin(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fmin(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fpclassify(__value: ::libc::c_double) -> ::libc::c_int;
pub fn __signbit(__value: ::libc::c_double) -> ::libc::c_int;
pub fn fma(__x: ::libc::c_double, __y: ::libc::c_double,
__z: ::libc::c_double) -> ::libc::c_double;
pub fn __fma(__x: ::libc::c_double, __y: ::libc::c_double,
__z: ::libc::c_double) -> ::libc::c_double;
pub fn scalb(__x: ::libc::c_double, __n: ::libc::c_double) ->
::libc::c_double;
pub fn __scalb(__x: ::libc::c_double, __n: ::libc::c_double) ->
::libc::c_double;
pub fn acosf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __acosf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn asinf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __asinf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn atanf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __atanf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn atan2f(__y: ::libc::c_float, __x: ::libc::c_float) ->
::libc::c_float;
pub fn __atan2f(__y: ::libc::c_float, __x: ::libc::c_float) ->
::libc::c_float;
pub fn cosf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __cosf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn sinf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __sinf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn tanf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __tanf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn coshf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __coshf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn sinhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __sinhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn tanhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __tanhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn acoshf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __acoshf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn asinhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __asinhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn atanhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __atanhf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn expf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __expf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn frexpf(__x: ::libc::c_float, __exponent: *mut ::libc::c_int) ->
::libc::c_float;
pub fn __frexpf(__x: ::libc::c_float, __exponent: *mut ::libc::c_int) ->
::libc::c_float;
pub fn ldexpf(__x: ::libc::c_float, __exponent: ::libc::c_int) ->
::libc::c_float;
pub fn __ldexpf(__x: ::libc::c_float, __exponent: ::libc::c_int) ->
::libc::c_float;
pub fn logf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __logf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn log10f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __log10f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn modff(__x: ::libc::c_float, __iptr: *mut ::libc::c_float) ->
::libc::c_float;
pub fn __modff(__x: ::libc::c_float, __iptr: *mut ::libc::c_float) ->
::libc::c_float;
pub fn expm1f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __expm1f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn log1pf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __log1pf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn logbf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __logbf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn exp2f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __exp2f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn log2f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __log2f(__x: ::libc::c_float) -> ::libc::c_float;
pub fn powf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __powf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn sqrtf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __sqrtf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn hypotf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __hypotf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn cbrtf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __cbrtf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn ceilf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __ceilf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn fabsf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __fabsf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn floorf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __floorf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn fmodf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __fmodf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __isinff(__value: ::libc::c_float) -> ::libc::c_int;
pub fn __finitef(__value: ::libc::c_float) -> ::libc::c_int;
pub fn isinff(__value: ::libc::c_float) -> ::libc::c_int;
pub fn finitef(__value: ::libc::c_float) -> ::libc::c_int;
pub fn dremf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __dremf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn significandf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __significandf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn copysignf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __copysignf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn nanf(__tagb: *::libc::c_char) -> ::libc::c_float;
pub fn __nanf(__tagb: *::libc::c_char) -> ::libc::c_float;
pub fn __isnanf(__value: ::libc::c_float) -> ::libc::c_int;
pub fn isnanf(__value: ::libc::c_float) -> ::libc::c_int;
pub fn j0f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __j0f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn j1f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __j1f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn jnf(arg1: ::libc::c_int, arg2: ::libc::c_float) -> ::libc::c_float;
pub fn __jnf(arg1: ::libc::c_int, arg2: ::libc::c_float) ->
::libc::c_float;
pub fn y0f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __y0f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn y1f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __y1f(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn ynf(arg1: ::libc::c_int, arg2: ::libc::c_float) -> ::libc::c_float;
pub fn __ynf(arg1: ::libc::c_int, arg2: ::libc::c_float) ->
::libc::c_float;
pub fn erff(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __erff(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn erfcf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __erfcf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn lgammaf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __lgammaf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn tgammaf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __tgammaf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn gammaf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn __gammaf(arg1: ::libc::c_float) -> ::libc::c_float;
pub fn lgammaf_r(arg1: ::libc::c_float, __signgamp: *mut ::libc::c_int) ->
::libc::c_float;
pub fn __lgammaf_r(arg1: ::libc::c_float, __signgamp: *mut ::libc::c_int)
-> ::libc::c_float;
pub fn rintf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __rintf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn nextafterf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __nextafterf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn nexttowardf(__x: ::libc::c_float, __y: ::libc::c_double) ->
::libc::c_float;
pub fn __nexttowardf(__x: ::libc::c_float, __y: ::libc::c_double) ->
::libc::c_float;
pub fn remainderf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __remainderf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn scalbnf(__x: ::libc::c_float, __n: ::libc::c_int) ->
::libc::c_float;
pub fn __scalbnf(__x: ::libc::c_float, __n: ::libc::c_int) ->
::libc::c_float;
pub fn ilogbf(__x: ::libc::c_float) -> ::libc::c_int;
pub fn __ilogbf(__x: ::libc::c_float) -> ::libc::c_int;
pub fn scalblnf(__x: ::libc::c_float, __n: ::libc::c_long) ->
::libc::c_float;
pub fn __scalblnf(__x: ::libc::c_float, __n: ::libc::c_long) ->
::libc::c_float;
pub fn nearbyintf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __nearbyintf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn roundf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __roundf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn truncf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn __truncf(__x: ::libc::c_float) -> ::libc::c_float;
pub fn remquof(__x: ::libc::c_float, __y: ::libc::c_float,
__quo: *mut ::libc::c_int) -> ::libc::c_float;
pub fn __remquof(__x: ::libc::c_float, __y: ::libc::c_float,
__quo: *mut ::libc::c_int) -> ::libc::c_float;
pub fn lrintf(__x: ::libc::c_float) -> ::libc::c_long;
pub fn __lrintf(__x: ::libc::c_float) -> ::libc::c_long;
pub fn llrintf(__x: ::libc::c_float) -> ::libc::c_longlong;
pub fn __llrintf(__x: ::libc::c_float) -> ::libc::c_longlong;
pub fn lroundf(__x: ::libc::c_float) -> ::libc::c_long;
pub fn __lroundf(__x: ::libc::c_float) -> ::libc::c_long;
pub fn llroundf(__x: ::libc::c_float) -> ::libc::c_longlong;
pub fn __llroundf(__x: ::libc::c_float) -> ::libc::c_longlong;
pub fn fdimf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __fdimf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn fmaxf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __fmaxf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn fminf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __fminf(__x: ::libc::c_float, __y: ::libc::c_float) ->
::libc::c_float;
pub fn __fpclassifyf(__value: ::libc::c_float) -> ::libc::c_int;
pub fn __signbitf(__value: ::libc::c_float) -> ::libc::c_int;
pub fn fmaf(__x: ::libc::c_float, __y: ::libc::c_float,
__z: ::libc::c_float) -> ::libc::c_float;
pub fn __fmaf(__x: ::libc::c_float, __y: ::libc::c_float,
__z: ::libc::c_float) -> ::libc::c_float;
pub fn scalbf(__x: ::libc::c_float, __n: ::libc::c_float) ->
::libc::c_float;
pub fn __scalbf(__x: ::libc::c_float, __n: ::libc::c_float) ->
::libc::c_float;
pub fn acosl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __acosl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn asinl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __asinl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn atanl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __atanl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn atan2l(__y: ::libc::c_double, __x: ::libc::c_double) ->
::libc::c_double;
pub fn __atan2l(__y: ::libc::c_double, __x: ::libc::c_double) ->
::libc::c_double;
pub fn cosl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __cosl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn sinl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __sinl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn tanl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __tanl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn coshl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __coshl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn sinhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __sinhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn tanhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __tanhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn acoshl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __acoshl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn asinhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __asinhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn atanhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __atanhl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn expl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __expl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn frexpl(__x: ::libc::c_double, __exponent: *mut ::libc::c_int) ->
::libc::c_double;
pub fn __frexpl(__x: ::libc::c_double, __exponent: *mut ::libc::c_int) ->
::libc::c_double;
pub fn ldexpl(__x: ::libc::c_double, __exponent: ::libc::c_int) ->
::libc::c_double;
pub fn __ldexpl(__x: ::libc::c_double, __exponent: ::libc::c_int) ->
::libc::c_double;
pub fn logl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __logl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn log10l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __log10l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn modfl(__x: ::libc::c_double, __iptr: *mut ::libc::c_double) ->
::libc::c_double;
pub fn __modfl(__x: ::libc::c_double, __iptr: *mut ::libc::c_double) ->
::libc::c_double;
pub fn expm1l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __expm1l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn log1pl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __log1pl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn logbl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __logbl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn exp2l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __exp2l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn log2l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __log2l(__x: ::libc::c_double) -> ::libc::c_double;
pub fn powl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __powl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn sqrtl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __sqrtl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn hypotl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __hypotl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn cbrtl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __cbrtl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn ceill(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __ceill(__x: ::libc::c_double) -> ::libc::c_double;
pub fn fabsl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __fabsl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn floorl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __floorl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn fmodl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fmodl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __isinfl(__value: ::libc::c_double) -> ::libc::c_int;
pub fn __finitel(__value: ::libc::c_double) -> ::libc::c_int;
pub fn isinfl(__value: ::libc::c_double) -> ::libc::c_int;
pub fn finitel(__value: ::libc::c_double) -> ::libc::c_int;
pub fn dreml(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __dreml(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn significandl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __significandl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn copysignl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __copysignl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn nanl(__tagb: *::libc::c_char) -> ::libc::c_double;
pub fn __nanl(__tagb: *::libc::c_char) -> ::libc::c_double;
pub fn __isnanl(__value: ::libc::c_double) -> ::libc::c_int;
pub fn isnanl(__value: ::libc::c_double) -> ::libc::c_int;
pub fn j0l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __j0l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn j1l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __j1l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn jnl(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn __jnl(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn y0l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __y0l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn y1l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __y1l(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn ynl(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn __ynl(arg1: ::libc::c_int, arg2: ::libc::c_double) ->
::libc::c_double;
pub fn erfl(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __erfl(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn erfcl(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __erfcl(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn lgammal(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __lgammal(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn tgammal(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __tgammal(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn gammal(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn __gammal(arg1: ::libc::c_double) -> ::libc::c_double;
pub fn lgammal_r(arg1: ::libc::c_double, __signgamp: *mut ::libc::c_int)
-> ::libc::c_double;
pub fn __lgammal_r(arg1: ::libc::c_double, __signgamp: *mut ::libc::c_int)
-> ::libc::c_double;
pub fn rintl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __rintl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn nextafterl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __nextafterl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn nexttowardl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __nexttowardl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn remainderl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __remainderl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn scalbnl(__x: ::libc::c_double, __n: ::libc::c_int) ->
::libc::c_double;
pub fn __scalbnl(__x: ::libc::c_double, __n: ::libc::c_int) ->
::libc::c_double;
pub fn ilogbl(__x: ::libc::c_double) -> ::libc::c_int;
pub fn __ilogbl(__x: ::libc::c_double) -> ::libc::c_int;
pub fn scalblnl(__x: ::libc::c_double, __n: ::libc::c_long) ->
::libc::c_double;
pub fn __scalblnl(__x: ::libc::c_double, __n: ::libc::c_long) ->
::libc::c_double;
pub fn nearbyintl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __nearbyintl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn roundl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __roundl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn truncl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn __truncl(__x: ::libc::c_double) -> ::libc::c_double;
pub fn remquol(__x: ::libc::c_double, __y: ::libc::c_double,
__quo: *mut ::libc::c_int) -> ::libc::c_double;
pub fn __remquol(__x: ::libc::c_double, __y: ::libc::c_double,
__quo: *mut ::libc::c_int) -> ::libc::c_double;
pub fn lrintl(__x: ::libc::c_double) -> ::libc::c_long;
pub fn __lrintl(__x: ::libc::c_double) -> ::libc::c_long;
pub fn llrintl(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn __llrintl(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn lroundl(__x: ::libc::c_double) -> ::libc::c_long;
pub fn __lroundl(__x: ::libc::c_double) -> ::libc::c_long;
pub fn llroundl(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn __llroundl(__x: ::libc::c_double) -> ::libc::c_longlong;
pub fn fdiml(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fdiml(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn fmaxl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fmaxl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn fminl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fminl(__x: ::libc::c_double, __y: ::libc::c_double) ->
::libc::c_double;
pub fn __fpclassifyl(__value: ::libc::c_double) -> ::libc::c_int;
pub fn __signbitl(__value: ::libc::c_double) -> ::libc::c_int;
pub fn fmal(__x: ::libc::c_double, __y: ::libc::c_double,
__z: ::libc::c_double) -> ::libc::c_double;
pub fn __fmal(__x: ::libc::c_double, __y: ::libc::c_double,
__z: ::libc::c_double) -> ::libc::c_double;
pub fn scalbl(__x: ::libc::c_double, __n: ::libc::c_double) ->
::libc::c_double;
pub fn __scalbl(__x: ::libc::c_double, __n: ::libc::c_double) ->
::libc::c_double;
pub fn matherr(__exc: *mut Struct_exception) -> ::libc::c_int;
pub fn cpMessage(condition: *::libc::c_char, file: *::libc::c_char,
line: ::libc::c_int, isError: ::libc::c_int,
isHardError: ::libc::c_int,
message: *::libc::c_char, ...);
pub fn cpSpaceHashAlloc() -> *mut cpSpaceHash;
pub fn cpSpaceHashInit(hash: *mut cpSpaceHash, celldim: cpFloat,
numcells: ::libc::c_int,
bbfunc: cpSpatialIndexBBFunc,
staticIndex: *mut cpSpatialIndex) ->
*mut cpSpatialIndex;
pub fn cpSpaceHashNew(celldim: cpFloat, cells: ::libc::c_int,
bbfunc: cpSpatialIndexBBFunc,
staticIndex: *mut cpSpatialIndex) ->
*mut cpSpatialIndex;
pub fn cpSpaceHashResize(hash: *mut cpSpaceHash, celldim: cpFloat,
numcells: ::libc::c_int);
pub fn cpBBTreeAlloc() -> *mut cpBBTree;
pub fn cpBBTreeInit(tree: *mut cpBBTree, bbfunc: cpSpatialIndexBBFunc,
staticIndex: *mut cpSpatialIndex) ->
*mut cpSpatialIndex;
pub fn cpBBTreeNew(bbfunc: cpSpatialIndexBBFunc,
staticIndex: *mut cpSpatialIndex) ->
*mut cpSpatialIndex;
pub fn cpBBTreeOptimize(index: *mut cpSpatialIndex);
pub fn cpBBTreeSetVelocityFunc(index: *mut cpSpatialIndex,
func: cpBBTreeVelocityFunc);
pub fn cpSweep1DAlloc() -> *mut cpSweep1D;
pub fn cpSweep1DInit(sweep: *mut cpSweep1D, bbfunc: cpSpatialIndexBBFunc,
staticIndex: *mut cpSpatialIndex) ->
*mut cpSpatialIndex;
pub fn cpSweep1DNew(bbfunc: cpSpatialIndexBBFunc,
staticIndex: *mut cpSpatialIndex) ->
*mut cpSpatialIndex;
pub fn cpSpatialIndexFree(index: *mut cpSpatialIndex);
pub fn cpSpatialIndexCollideStatic(dynamicIndex: *mut cpSpatialIndex,
staticIndex: *mut cpSpatialIndex,
func: cpSpatialIndexQueryFunc,
data: *mut ::libc::c_void);
pub fn cpArbiterGetRestitution(arb: *cpArbiter) -> cpFloat;
pub fn cpArbiterSetRestitution(arb: *mut cpArbiter, restitution: cpFloat);
pub fn cpArbiterGetFriction(arb: *cpArbiter) -> cpFloat;
pub fn cpArbiterSetFriction(arb: *mut cpArbiter, friction: cpFloat);
pub fn cpArbiterGetSurfaceVelocity(arb: *mut cpArbiter) -> cpVect;
pub fn cpArbiterSetSurfaceVelocity(arb: *mut cpArbiter, vr: cpVect);
pub fn cpArbiterGetUserData(arb: *cpArbiter) -> cpDataPointer;
pub fn cpArbiterSetUserData(arb: *mut cpArbiter, userData: cpDataPointer);
pub fn cpArbiterTotalImpulse(arb: *cpArbiter) -> cpVect;
pub fn cpArbiterTotalKE(arb: *cpArbiter) -> cpFloat;
pub fn cpArbiterIgnore(arb: *mut cpArbiter) -> cpBool;
pub fn cpArbiterGetShapes(arb: *cpArbiter, a: *mut *mut cpShape,
b: *mut *mut cpShape);
pub fn cpArbiterGetBodies(arb: *cpArbiter, a: *mut *mut cpBody,
b: *mut *mut cpBody);
pub fn cpArbiterGetContactPointSet(arb: *cpArbiter) -> cpContactPointSet;
pub fn cpArbiterSetContactPointSet(arb: *mut cpArbiter,
set: *mut cpContactPointSet);
pub fn cpArbiterIsFirstContact(arb: *cpArbiter) -> cpBool;
pub fn cpArbiterIsRemoval(arb: *cpArbiter) -> cpBool;
pub fn cpArbiterGetCount(arb: *cpArbiter) -> ::libc::c_int;
pub fn cpArbiterGetNormal(arb: *cpArbiter) -> cpVect;
pub fn cpArbiterGetPointA(arb: *cpArbiter, i: ::libc::c_int) -> cpVect;
pub fn cpArbiterGetPointB(arb: *cpArbiter, i: ::libc::c_int) -> cpVect;
pub fn cpArbiterGetDepth(arb: *cpArbiter, i: ::libc::c_int) -> cpFloat;
pub fn cpArbiterCallWildcardBeginA(arb: *mut cpArbiter,
space: *mut cpSpace) -> cpBool;
pub fn cpArbiterCallWildcardBeginB(arb: *mut cpArbiter,
space: *mut cpSpace) -> cpBool;
pub fn cpArbiterCallWildcardPreSolveA(arb: *mut cpArbiter,
space: *mut cpSpace) -> cpBool;
pub fn cpArbiterCallWildcardPreSolveB(arb: *mut cpArbiter,
space: *mut cpSpace) -> cpBool;
pub fn cpArbiterCallWildcardPostSolveA(arb: *mut cpArbiter,
space: *mut cpSpace);
pub fn cpArbiterCallWildcardPostSolveB(arb: *mut cpArbiter,
space: *mut cpSpace);
pub fn cpArbiterCallWildcardSeparateA(arb: *mut cpArbiter,
space: *mut cpSpace);
pub fn cpArbiterCallWildcardSeparateB(arb: *mut cpArbiter,
space: *mut cpSpace);
pub fn cpBodyAlloc() -> *mut cpBody;
pub fn cpBodyInit(body: *mut cpBody, mass: cpFloat, moment: cpFloat) ->
*mut cpBody;
pub fn cpBodyNew(mass: cpFloat, moment: cpFloat) -> *mut cpBody;
pub fn cpBodyNewKinematic() -> *mut cpBody;
pub fn cpBodyNewStatic() -> *mut cpBody;
pub fn cpBodyDestroy(body: *mut cpBody);
pub fn cpBodyFree(body: *mut cpBody);
pub fn cpBodyActivate(body: *mut cpBody);
pub fn cpBodyActivateStatic(body: *mut cpBody, filter: *mut cpShape);
pub fn cpBodySleep(body: *mut cpBody);
pub fn cpBodySleepWithGroup(body: *mut cpBody, group: *mut cpBody);
pub fn cpBodyIsSleeping(body: *cpBody) -> cpBool;
pub fn cpBodyGetType(body: *mut cpBody) -> cpBodyType;
pub fn cpBodySetType(body: *mut cpBody, _type: cpBodyType);
pub fn cpBodyGetSpace(body: *cpBody) -> *mut cpSpace;
pub fn cpBodyGetMass(body: *cpBody) -> cpFloat;
pub fn cpBodySetMass(body: *mut cpBody, m: cpFloat);
pub fn cpBodyGetMoment(body: *cpBody) -> cpFloat;
pub fn cpBodySetMoment(body: *mut cpBody, i: cpFloat);
pub fn cpBodyGetPosition(body: *cpBody) -> cpVect;
pub fn cpBodySetPosition(body: *mut cpBody, pos: cpVect);
pub fn cpBodyGetCenterOfGravity(body: *cpBody) -> cpVect;
pub fn cpBodySetCenterOfGravity(body: *mut cpBody, cog: cpVect);
pub fn cpBodyGetVelocity(body: *cpBody) -> cpVect;
pub fn cpBodySetVelocity(body: *mut cpBody, velocity: cpVect);
pub fn cpBodyGetForce(body: *cpBody) -> cpVect;
pub fn cpBodySetForce(body: *mut cpBody, force: cpVect);
pub fn cpBodyGetAngle(body: *cpBody) -> cpFloat;
pub fn cpBodySetAngle(body: *mut cpBody, a: cpFloat);
pub fn cpBodyGetAngularVelocity(body: *cpBody) -> cpFloat;
pub fn cpBodySetAngularVelocity(body: *mut cpBody,
angularVelocity: cpFloat);
pub fn cpBodyGetTorque(body: *cpBody) -> cpFloat;
pub fn cpBodySetTorque(body: *mut cpBody, torque: cpFloat);
pub fn cpBodyGetRotation(body: *cpBody) -> cpVect;
pub fn cpBodyGetUserData(body: *cpBody) -> cpDataPointer;
pub fn cpBodySetUserData(body: *mut cpBody, userData: cpDataPointer);
pub fn cpBodySetVelocityUpdateFunc(body: *mut cpBody,
velocityFunc: cpBodyVelocityFunc);
pub fn cpBodySetPositionUpdateFunc(body: *mut cpBody,
positionFunc: cpBodyPositionFunc);
pub fn cpBodyUpdateVelocity(body: *mut cpBody, gravity: cpVect,
damping: cpFloat, dt: cpFloat);
pub fn cpBodyUpdatePosition(body: *mut cpBody, dt: cpFloat);
pub fn cpBodyLocalToWorld(body: *cpBody, point: cpVect) -> cpVect;
pub fn cpBodyWorldToLocal(body: *cpBody, point: cpVect) -> cpVect;
pub fn cpBodyApplyForceAtWorldPoint(body: *mut cpBody, force: cpVect,
point: cpVect);
pub fn cpBodyApplyForceAtLocalPoint(body: *mut cpBody, force: cpVect,
point: cpVect);
pub fn cpBodyApplyImpulseAtWorldPoint(body: *mut cpBody, impulse: cpVect,
point: cpVect);
pub fn cpBodyApplyImpulseAtLocalPoint(body: *mut cpBody, impulse: cpVect,
point: cpVect);
pub fn cpBodyGetVelocityAtWorldPoint(body: *cpBody, point: cpVect) ->
cpVect;
pub fn cpBodyGetVelocityAtLocalPoint(body: *cpBody, point: cpVect) ->
cpVect;
pub fn cpBodyKineticEnergy(body: *cpBody) -> cpFloat;
pub fn cpBodyEachShape(body: *mut cpBody, func: cpBodyShapeIteratorFunc,
data: *mut ::libc::c_void);
pub fn cpBodyEachConstraint(body: *mut cpBody,
func: cpBodyConstraintIteratorFunc,
data: *mut ::libc::c_void);
pub fn cpBodyEachArbiter(body: *mut cpBody,
func: cpBodyArbiterIteratorFunc,
data: *mut ::libc::c_void);
pub fn cpShapeDestroy(shape: *mut cpShape);
pub fn cpShapeFree(shape: *mut cpShape);
pub fn cpShapeCacheBB(shape: *mut cpShape) -> cpBB;
pub fn cpShapeUpdate(shape: *mut cpShape, transform: cpTransform) -> cpBB;
pub fn cpShapePointQuery(shape: *cpShape, p: cpVect,
out: *mut cpPointQueryInfo) -> cpFloat;
pub fn cpShapeSegmentQuery(shape: *cpShape, a: cpVect, b: cpVect,
radius: cpFloat, info: *mut cpSegmentQueryInfo)
-> cpBool;
pub fn cpShapesCollide(a: *cpShape, b: *cpShape) -> cpContactPointSet;
pub fn cpShapeGetSpace(shape: *cpShape) -> *mut cpSpace;
pub fn cpShapeGetBody(shape: *cpShape) -> *mut cpBody;
pub fn cpShapeSetBody(shape: *mut cpShape, body: *mut cpBody);
pub fn cpShapeGetMass(shape: *mut cpShape) -> cpFloat;
pub fn cpShapeSetMass(shape: *mut cpShape, mass: cpFloat);
pub fn cpShapeGetDensity(shape: *mut cpShape) -> cpFloat;
pub fn cpShapeSetDensity(shape: *mut cpShape, density: cpFloat);
pub fn cpShapeGetMoment(shape: *mut cpShape) -> cpFloat;
pub fn cpShapeGetArea(shape: *mut cpShape) -> cpFloat;
pub fn cpShapeGetCenterOfGravity(shape: *mut cpShape) -> cpVect;
pub fn cpShapeGetBB(shape: *cpShape) -> cpBB;
pub fn cpShapeGetSensor(shape: *cpShape) -> cpBool;
pub fn cpShapeSetSensor(shape: *mut cpShape, sensor: cpBool);
pub fn cpShapeGetElasticity(shape: *cpShape) -> cpFloat;
pub fn cpShapeSetElasticity(shape: *mut cpShape, elasticity: cpFloat);
pub fn cpShapeGetFriction(shape: *cpShape) -> cpFloat;
pub fn cpShapeSetFriction(shape: *mut cpShape, friction: cpFloat);
pub fn cpShapeGetSurfaceVelocity(shape: *cpShape) -> cpVect;
pub fn cpShapeSetSurfaceVelocity(shape: *mut cpShape,
surfaceVelocity: cpVect);
pub fn cpShapeGetUserData(shape: *cpShape) -> cpDataPointer;
pub fn cpShapeSetUserData(shape: *mut cpShape, userData: cpDataPointer);
pub fn cpShapeGetCollisionType(shape: *cpShape) -> cpCollisionType;
pub fn cpShapeSetCollisionType(shape: *mut cpShape,
collisionType: cpCollisionType);
pub fn cpShapeGetFilter(shape: *cpShape) -> cpShapeFilter;
pub fn cpShapeSetFilter(shape: *mut cpShape, filter: cpShapeFilter);
pub fn cpCircleShapeAlloc() -> *mut cpCircleShape;
pub fn cpCircleShapeInit(circle: *mut cpCircleShape, body: *mut cpBody,
radius: cpFloat, offset: cpVect) ->
*mut cpCircleShape;
pub fn cpCircleShapeNew(body: *mut cpBody, radius: cpFloat,
offset: cpVect) -> *mut cpShape;
pub fn cpCircleShapeGetOffset(shape: *cpShape) -> cpVect;
pub fn cpCircleShapeGetRadius(shape: *cpShape) -> cpFloat;
pub fn cpSegmentShapeAlloc() -> *mut cpSegmentShape;
pub fn cpSegmentShapeInit(seg: *mut cpSegmentShape, body: *mut cpBody,
a: cpVect, b: cpVect, radius: cpFloat) ->
*mut cpSegmentShape;
pub fn cpSegmentShapeNew(body: *mut cpBody, a: cpVect, b: cpVect,
radius: cpFloat) -> *mut cpShape;
pub fn cpSegmentShapeSetNeighbors(shape: *mut cpShape, prev: cpVect,
next: cpVect);
pub fn cpSegmentShapeGetA(shape: *cpShape) -> cpVect;
pub fn cpSegmentShapeGetB(shape: *cpShape) -> cpVect;
pub fn cpSegmentShapeGetNormal(shape: *cpShape) -> cpVect;
pub fn cpSegmentShapeGetRadius(shape: *cpShape) -> cpFloat;
pub fn cpPolyShapeAlloc() -> *mut cpPolyShape;
pub fn cpPolyShapeInit(poly: *mut cpPolyShape, body: *mut cpBody,
count: ::libc::c_int, verts: *cpVect,
transform: cpTransform, radius: cpFloat) ->
*mut cpPolyShape;
pub fn cpPolyShapeInitRaw(poly: *mut cpPolyShape, body: *mut cpBody,
count: ::libc::c_int, verts: *cpVect,
radius: cpFloat) -> *mut cpPolyShape;
pub fn cpPolyShapeNew(body: *mut cpBody, count: ::libc::c_int,
verts: *cpVect, transform: cpTransform,
radius: cpFloat) -> *mut cpShape;
pub fn cpPolyShapeNewRaw(body: *mut cpBody, count: ::libc::c_int,
verts: *cpVect, radius: cpFloat) -> *mut cpShape;
pub fn cpBoxShapeInit(poly: *mut cpPolyShape, body: *mut cpBody,
width: cpFloat, height: cpFloat, radius: cpFloat) ->
*mut cpPolyShape;
pub fn cpBoxShapeInit2(poly: *mut cpPolyShape, body: *mut cpBody,
_box: cpBB, radius: cpFloat) -> *mut cpPolyShape;
pub fn cpBoxShapeNew(body: *mut cpBody, width: cpFloat, height: cpFloat,
radius: cpFloat) -> *mut cpShape;
pub fn cpBoxShapeNew2(body: *mut cpBody, _box: cpBB, radius: cpFloat) ->
*mut cpShape;
pub fn cpPolyShapeGetCount(shape: *cpShape) -> ::libc::c_int;
pub fn cpPolyShapeGetVert(shape: *cpShape, index: ::libc::c_int) ->
cpVect;
pub fn cpPolyShapeGetRadius(shape: *cpShape) -> cpFloat;
pub fn cpConstraintDestroy(constraint: *mut cpConstraint);
pub fn cpConstraintFree(constraint: *mut cpConstraint);
pub fn cpConstraintGetSpace(constraint: *cpConstraint) -> *mut cpSpace;
pub fn cpConstraintGetBodyA(constraint: *cpConstraint) -> *mut cpBody;
pub fn cpConstraintGetBodyB(constraint: *cpConstraint) -> *mut cpBody;
pub fn cpConstraintGetMaxForce(constraint: *cpConstraint) -> cpFloat;
pub fn cpConstraintSetMaxForce(constraint: *mut cpConstraint,
maxForce: cpFloat);
pub fn cpConstraintGetErrorBias(constraint: *cpConstraint) -> cpFloat;
pub fn cpConstraintSetErrorBias(constraint: *mut cpConstraint,
errorBias: cpFloat);
pub fn cpConstraintGetMaxBias(constraint: *cpConstraint) -> cpFloat;
pub fn cpConstraintSetMaxBias(constraint: *mut cpConstraint,
maxBias: cpFloat);
pub fn cpConstraintGetCollideBodies(constraint: *cpConstraint) -> cpBool;
pub fn cpConstraintSetCollideBodies(constraint: *mut cpConstraint,
collideBodies: cpBool);
pub fn cpConstraintGetPreSolveFunc(constraint: *cpConstraint) ->
cpConstraintPreSolveFunc;
pub fn cpConstraintSetPreSolveFunc(constraint: *mut cpConstraint,
preSolveFunc:
cpConstraintPreSolveFunc);
pub fn cpConstraintGetPostSolveFunc(constraint: *cpConstraint) ->
cpConstraintPostSolveFunc;
pub fn cpConstraintSetPostSolveFunc(constraint: *mut cpConstraint,
postSolveFunc:
cpConstraintPostSolveFunc);
pub fn cpConstraintGetUserData(constraint: *cpConstraint) ->
cpDataPointer;
pub fn cpConstraintSetUserData(constraint: *mut cpConstraint,
userData: cpDataPointer);
pub fn cpConstraintGetImpulse(constraint: *mut cpConstraint) -> cpFloat;
pub fn cpConstraintIsPinJoint(constraint: *cpConstraint) -> cpBool;
pub fn cpPinJointAlloc() -> *mut cpPinJoint;
pub fn cpPinJointInit(joint: *mut cpPinJoint, a: *mut cpBody,
b: *mut cpBody, anchorA: cpVect, anchorB: cpVect) ->
*mut cpPinJoint;
pub fn cpPinJointNew(a: *mut cpBody, b: *mut cpBody, anchorA: cpVect,
anchorB: cpVect) -> *mut cpConstraint;
pub fn cpPinJointGetAnchorA(constraint: *cpConstraint) -> cpVect;
pub fn cpPinJointSetAnchorA(constraint: *mut cpConstraint,
anchorA: cpVect);
pub fn cpPinJointGetAnchorB(constraint: *cpConstraint) -> cpVect;
pub fn cpPinJointSetAnchorB(constraint: *mut cpConstraint,
anchorB: cpVect);
pub fn cpPinJointGetDist(constraint: *cpConstraint) -> cpFloat;
pub fn cpPinJointSetDist(constraint: *mut cpConstraint, dist: cpFloat);
pub fn cpConstraintIsSlideJoint(constraint: *cpConstraint) -> cpBool;
pub fn cpSlideJointAlloc() -> *mut cpSlideJoint;
pub fn cpSlideJointInit(joint: *mut cpSlideJoint, a: *mut cpBody,
b: *mut cpBody, anchorA: cpVect, anchorB: cpVect,
min: cpFloat, max: cpFloat) -> *mut cpSlideJoint;
pub fn cpSlideJointNew(a: *mut cpBody, b: *mut cpBody, anchorA: cpVect,
anchorB: cpVect, min: cpFloat, max: cpFloat) ->
*mut cpConstraint;
pub fn cpSlideJointGetAnchorA(constraint: *cpConstraint) -> cpVect;
pub fn cpSlideJointSetAnchorA(constraint: *mut cpConstraint,
anchorA: cpVect);
pub fn cpSlideJointGetAnchorB(constraint: *cpConstraint) -> cpVect;
pub fn cpSlideJointSetAnchorB(constraint: *mut cpConstraint,
anchorB: cpVect);
pub fn cpSlideJointGetMin(constraint: *cpConstraint) -> cpFloat;
pub fn cpSlideJointSetMin(constraint: *mut cpConstraint, min: cpFloat);
pub fn cpSlideJointGetMax(constraint: *cpConstraint) -> cpFloat;
pub fn cpSlideJointSetMax(constraint: *mut cpConstraint, max: cpFloat);
pub fn cpConstraintIsPivotJoint(constraint: *cpConstraint) -> cpBool;
pub fn cpPivotJointAlloc() -> *mut cpPivotJoint;
pub fn cpPivotJointInit(joint: *mut cpPivotJoint, a: *mut cpBody,
b: *mut cpBody, anchorA: cpVect, anchorB: cpVect)
-> *mut cpPivotJoint;
pub fn cpPivotJointNew(a: *mut cpBody, b: *mut cpBody, pivot: cpVect) ->
*mut cpConstraint;
pub fn cpPivotJointNew2(a: *mut cpBody, b: *mut cpBody, anchorA: cpVect,
anchorB: cpVect) -> *mut cpConstraint;
pub fn cpPivotJointGetAnchorA(constraint: *cpConstraint) -> cpVect;
pub fn cpPivotJointSetAnchorA(constraint: *mut cpConstraint,
anchorA: cpVect);
pub fn cpPivotJointGetAnchorB(constraint: *cpConstraint) -> cpVect;
pub fn cpPivotJointSetAnchorB(constraint: *mut cpConstraint,
anchorB: cpVect);
pub fn cpConstraintIsGrooveJoint(constraint: *cpConstraint) -> cpBool;
pub fn cpGrooveJointAlloc() -> *mut cpGrooveJoint;
pub fn cpGrooveJointInit(joint: *mut cpGrooveJoint, a: *mut cpBody,
b: *mut cpBody, groove_a: cpVect,
groove_b: cpVect, anchorB: cpVect) ->
*mut cpGrooveJoint;
pub fn cpGrooveJointNew(a: *mut cpBody, b: *mut cpBody, groove_a: cpVect,
groove_b: cpVect, anchorB: cpVect) ->
*mut cpConstraint;
pub fn cpGrooveJointGetGrooveA(constraint: *cpConstraint) -> cpVect;
pub fn cpGrooveJointSetGrooveA(constraint: *mut cpConstraint,
grooveA: cpVect);
pub fn cpGrooveJointGetGrooveB(constraint: *cpConstraint) -> cpVect;
pub fn cpGrooveJointSetGrooveB(constraint: *mut cpConstraint,
grooveB: cpVect);
pub fn cpGrooveJointGetAnchorB(constraint: *cpConstraint) -> cpVect;
pub fn cpGrooveJointSetAnchorB(constraint: *mut cpConstraint,
anchorB: cpVect);
pub fn cpConstraintIsDampedSpring(constraint: *cpConstraint) -> cpBool;
pub fn cpDampedSpringAlloc() -> *mut cpDampedSpring;
pub fn cpDampedSpringInit(joint: *mut cpDampedSpring, a: *mut cpBody,
b: *mut cpBody, anchorA: cpVect,
anchorB: cpVect, restLength: cpFloat,
stiffness: cpFloat, damping: cpFloat) ->
*mut cpDampedSpring;
pub fn cpDampedSpringNew(a: *mut cpBody, b: *mut cpBody, anchorA: cpVect,
anchorB: cpVect, restLength: cpFloat,
stiffness: cpFloat, damping: cpFloat) ->
*mut cpConstraint;
pub fn cpDampedSpringGetAnchorA(constraint: *cpConstraint) -> cpVect;
pub fn cpDampedSpringSetAnchorA(constraint: *mut cpConstraint,
anchorA: cpVect);
pub fn cpDampedSpringGetAnchorB(constraint: *cpConstraint) -> cpVect;
pub fn cpDampedSpringSetAnchorB(constraint: *mut cpConstraint,
anchorB: cpVect);
pub fn cpDampedSpringGetRestLength(constraint: *cpConstraint) -> cpFloat;
pub fn cpDampedSpringSetRestLength(constraint: *mut cpConstraint,
restLength: cpFloat);
pub fn cpDampedSpringGetStiffness(constraint: *cpConstraint) -> cpFloat;
pub fn cpDampedSpringSetStiffness(constraint: *mut cpConstraint,
stiffness: cpFloat);
pub fn cpDampedSpringGetDamping(constraint: *cpConstraint) -> cpFloat;
pub fn cpDampedSpringSetDamping(constraint: *mut cpConstraint,
damping: cpFloat);
pub fn cpDampedSpringGetSpringForceFunc(constraint: *cpConstraint) ->
cpDampedSpringForceFunc;
pub fn cpDampedSpringSetSpringForceFunc(constraint: *mut cpConstraint,
springForceFunc:
cpDampedSpringForceFunc);
pub fn cpConstraintIsDampedRotarySpring(constraint: *cpConstraint) ->
cpBool;
pub fn cpDampedRotarySpringAlloc() -> *mut cpDampedRotarySpring;
pub fn cpDampedRotarySpringInit(joint: *mut cpDampedRotarySpring,
a: *mut cpBody, b: *mut cpBody,
restAngle: cpFloat, stiffness: cpFloat,
damping: cpFloat) ->
*mut cpDampedRotarySpring;
pub fn cpDampedRotarySpringNew(a: *mut cpBody, b: *mut cpBody,
restAngle: cpFloat, stiffness: cpFloat,
damping: cpFloat) -> *mut cpConstraint;
pub fn cpDampedRotarySpringGetRestAngle(constraint: *cpConstraint) ->
cpFloat;
pub fn cpDampedRotarySpringSetRestAngle(constraint: *mut cpConstraint,
restAngle: cpFloat);
pub fn cpDampedRotarySpringGetStiffness(constraint: *cpConstraint) ->
cpFloat;
pub fn cpDampedRotarySpringSetStiffness(constraint: *mut cpConstraint,
stiffness: cpFloat);
pub fn cpDampedRotarySpringGetDamping(constraint: *cpConstraint) ->
cpFloat;
pub fn cpDampedRotarySpringSetDamping(constraint: *mut cpConstraint,
damping: cpFloat);
pub fn cpDampedRotarySpringGetSpringTorqueFunc(constraint: *cpConstraint)
-> cpDampedRotarySpringTorqueFunc;
pub fn cpDampedRotarySpringSetSpringTorqueFunc(constraint:
*mut cpConstraint,
springTorqueFunc:
cpDampedRotarySpringTorqueFunc);
pub fn cpConstraintIsRotaryLimitJoint(constraint: *cpConstraint) ->
cpBool;
pub fn cpRotaryLimitJointAlloc() -> *mut cpRotaryLimitJoint;
pub fn cpRotaryLimitJointInit(joint: *mut cpRotaryLimitJoint,
a: *mut cpBody, b: *mut cpBody,
min: cpFloat, max: cpFloat) ->
*mut cpRotaryLimitJoint;
pub fn cpRotaryLimitJointNew(a: *mut cpBody, b: *mut cpBody, min: cpFloat,
max: cpFloat) -> *mut cpConstraint;
pub fn cpRotaryLimitJointGetMin(constraint: *cpConstraint) -> cpFloat;
pub fn cpRotaryLimitJointSetMin(constraint: *mut cpConstraint,
min: cpFloat);
pub fn cpRotaryLimitJointGetMax(constraint: *cpConstraint) -> cpFloat;
pub fn cpRotaryLimitJointSetMax(constraint: *mut cpConstraint,
max: cpFloat);
pub fn cpConstraintIsRatchetJoint(constraint: *cpConstraint) -> cpBool;
pub fn cpRatchetJointAlloc() -> *mut cpRatchetJoint;
pub fn cpRatchetJointInit(joint: *mut cpRatchetJoint, a: *mut cpBody,
b: *mut cpBody, phase: cpFloat,
ratchet: cpFloat) -> *mut cpRatchetJoint;
pub fn cpRatchetJointNew(a: *mut cpBody, b: *mut cpBody, phase: cpFloat,
ratchet: cpFloat) -> *mut cpConstraint;
pub fn cpRatchetJointGetAngle(constraint: *cpConstraint) -> cpFloat;
pub fn cpRatchetJointSetAngle(constraint: *mut cpConstraint,
angle: cpFloat);
pub fn cpRatchetJointGetPhase(constraint: *cpConstraint) -> cpFloat;
pub fn cpRatchetJointSetPhase(constraint: *mut cpConstraint,
phase: cpFloat);
pub fn cpRatchetJointGetRatchet(constraint: *cpConstraint) -> cpFloat;
pub fn cpRatchetJointSetRatchet(constraint: *mut cpConstraint,
ratchet: cpFloat);
pub fn cpConstraintIsGearJoint(constraint: *cpConstraint) -> cpBool;
pub fn cpGearJointAlloc() -> *mut cpGearJoint;
pub fn cpGearJointInit(joint: *mut cpGearJoint, a: *mut cpBody,
b: *mut cpBody, phase: cpFloat, ratio: cpFloat) ->
*mut cpGearJoint;
pub fn cpGearJointNew(a: *mut cpBody, b: *mut cpBody, phase: cpFloat,
ratio: cpFloat) -> *mut cpConstraint;
pub fn cpGearJointGetPhase(constraint: *cpConstraint) -> cpFloat;
pub fn cpGearJointSetPhase(constraint: *mut cpConstraint, phase: cpFloat);
pub fn cpGearJointGetRatio(constraint: *cpConstraint) -> cpFloat;
pub fn cpGearJointSetRatio(constraint: *mut cpConstraint, ratio: cpFloat);
pub fn cpConstraintIsSimpleMotor(constraint: *cpConstraint) -> cpBool;
pub fn cpSimpleMotorAlloc() -> *mut cpSimpleMotor;
pub fn cpSimpleMotorInit(joint: *mut cpSimpleMotor, a: *mut cpBody,
b: *mut cpBody, rate: cpFloat) ->
*mut cpSimpleMotor;
pub fn cpSimpleMotorNew(a: *mut cpBody, b: *mut cpBody, rate: cpFloat) ->
*mut cpConstraint;
pub fn cpSimpleMotorGetRate(constraint: *cpConstraint) -> cpFloat;
pub fn cpSimpleMotorSetRate(constraint: *mut cpConstraint, rate: cpFloat);
pub fn cpSpaceAlloc() -> *mut cpSpace;
pub fn cpSpaceInit(space: *mut cpSpace) -> *mut cpSpace;
pub fn cpSpaceNew() -> *mut cpSpace;
pub fn cpSpaceDestroy(space: *mut cpSpace);
pub fn cpSpaceFree(space: *mut cpSpace);
pub fn cpSpaceGetIterations(space: *cpSpace) -> ::libc::c_int;
pub fn cpSpaceSetIterations(space: *mut cpSpace,
iterations: ::libc::c_int);
pub fn cpSpaceGetGravity(space: *cpSpace) -> cpVect;
pub fn cpSpaceSetGravity(space: *mut cpSpace, gravity: cpVect);
pub fn cpSpaceGetDamping(space: *cpSpace) -> cpFloat;
pub fn cpSpaceSetDamping(space: *mut cpSpace, damping: cpFloat);
pub fn cpSpaceGetIdleSpeedThreshold(space: *cpSpace) -> cpFloat;
pub fn cpSpaceSetIdleSpeedThreshold(space: *mut cpSpace,
idleSpeedThreshold: cpFloat);
pub fn cpSpaceGetSleepTimeThreshold(space: *cpSpace) -> cpFloat;
pub fn cpSpaceSetSleepTimeThreshold(space: *mut cpSpace,
sleepTimeThreshold: cpFloat);
pub fn cpSpaceGetCollisionSlop(space: *cpSpace) -> cpFloat;
pub fn cpSpaceSetCollisionSlop(space: *mut cpSpace,
collisionSlop: cpFloat);
pub fn cpSpaceGetCollisionBias(space: *cpSpace) -> cpFloat;
pub fn cpSpaceSetCollisionBias(space: *mut cpSpace,
collisionBias: cpFloat);
pub fn cpSpaceGetCollisionPersistence(space: *cpSpace) -> cpTimestamp;
pub fn cpSpaceSetCollisionPersistence(space: *mut cpSpace,
collisionPersistence: cpTimestamp);
pub fn cpSpaceGetUserData(space: *cpSpace) -> cpDataPointer;
pub fn cpSpaceSetUserData(space: *mut cpSpace, userData: cpDataPointer);
pub fn cpSpaceGetStaticBody(space: *cpSpace) -> *mut cpBody;
pub fn cpSpaceGetCurrentTimeStep(space: *cpSpace) -> cpFloat;
pub fn cpSpaceIsLocked(space: *mut cpSpace) -> cpBool;
pub fn cpSpaceAddDefaultCollisionHandler(space: *mut cpSpace) ->
*mut cpCollisionHandler;
pub fn cpSpaceAddCollisionHandler(space: *mut cpSpace, a: cpCollisionType,
b: cpCollisionType) ->
*mut cpCollisionHandler;
pub fn cpSpaceAddWildcardHandler(space: *mut cpSpace,
_type: cpCollisionType) ->
*mut cpCollisionHandler;
pub fn cpSpaceAddShape(space: *mut cpSpace, shape: *mut cpShape) ->
*mut cpShape;
pub fn cpSpaceAddBody(space: *mut cpSpace, body: *mut cpBody) ->
*mut cpBody;
pub fn cpSpaceAddConstraint(space: *mut cpSpace,
constraint: *mut cpConstraint) ->
*mut cpConstraint;
pub fn cpSpaceRemoveShape(space: *mut cpSpace, shape: *mut cpShape);
pub fn cpSpaceRemoveBody(space: *mut cpSpace, body: *mut cpBody);
pub fn cpSpaceRemoveConstraint(space: *mut cpSpace,
constraint: *mut cpConstraint);
pub fn cpSpaceContainsShape(space: *mut cpSpace, shape: *mut cpShape) ->
cpBool;
pub fn cpSpaceContainsBody(space: *mut cpSpace, body: *mut cpBody) ->
cpBool;
pub fn cpSpaceContainsConstraint(space: *mut cpSpace,
constraint: *mut cpConstraint) -> cpBool;
pub fn cpSpaceAddPostStepCallback(space: *mut cpSpace,
func: cpPostStepFunc,
key: *mut ::libc::c_void,
data: *mut ::libc::c_void) -> cpBool;
pub fn cpSpacePointQuery(space: *mut cpSpace, point: cpVect,
maxDistance: cpFloat, filter: cpShapeFilter,
func: cpSpacePointQueryFunc,
data: *mut ::libc::c_void);
pub fn cpSpacePointQueryNearest(space: *mut cpSpace, point: cpVect,
maxDistance: cpFloat,
filter: cpShapeFilter,
out: *mut cpPointQueryInfo) ->
*mut cpShape;
pub fn cpSpaceSegmentQuery(space: *mut cpSpace, start: cpVect,
end: cpVect, radius: cpFloat,
filter: cpShapeFilter,
func: cpSpaceSegmentQueryFunc,
data: *mut ::libc::c_void);
pub fn cpSpaceSegmentQueryFirst(space: *mut cpSpace, start: cpVect,
end: cpVect, radius: cpFloat,
filter: cpShapeFilter,
out: *mut cpSegmentQueryInfo) ->
*mut cpShape;
pub fn cpSpaceBBQuery(space: *mut cpSpace, bb: cpBB,
filter: cpShapeFilter, func: cpSpaceBBQueryFunc,
data: *mut ::libc::c_void);
pub fn cpSpaceShapeQuery(space: *mut cpSpace, shape: *mut cpShape,
func: cpSpaceShapeQueryFunc,
data: *mut ::libc::c_void) -> cpBool;
pub fn cpSpaceEachBody(space: *mut cpSpace, func: cpSpaceBodyIteratorFunc,
data: *mut ::libc::c_void);
pub fn cpSpaceEachShape(space: *mut cpSpace,
func: cpSpaceShapeIteratorFunc,
data: *mut ::libc::c_void);
pub fn cpSpaceEachConstraint(space: *mut cpSpace,
func: cpSpaceConstraintIteratorFunc,
data: *mut ::libc::c_void);
pub fn cpSpaceReindexStatic(space: *mut cpSpace);
pub fn cpSpaceReindexShape(space: *mut cpSpace, shape: *mut cpShape);
pub fn cpSpaceReindexShapesForBody(space: *mut cpSpace,
body: *mut cpBody);
pub fn cpSpaceUseSpatialHash(space: *mut cpSpace, dim: cpFloat,
count: ::libc::c_int);
pub fn cpSpaceStep(space: *mut cpSpace, dt: cpFloat);
pub fn cpSpaceDebugDraw(space: *mut cpSpace,
options: *mut cpSpaceDebugDrawOptions);
pub fn cpMomentForCircle(m: cpFloat, r1: cpFloat, r2: cpFloat,
offset: cpVect) -> cpFloat;
pub fn cpAreaForCircle(r1: cpFloat, r2: cpFloat) -> cpFloat;
pub fn cpMomentForSegment(m: cpFloat, a: cpVect, b: cpVect,
radius: cpFloat) -> cpFloat;
pub fn cpAreaForSegment(a: cpVect, b: cpVect, radius: cpFloat) -> cpFloat;
pub fn cpMomentForPoly(m: cpFloat, count: ::libc::c_int, verts: *cpVect,
offset: cpVect, radius: cpFloat) -> cpFloat;
pub fn cpAreaForPoly(count: ::libc::c_int, verts: *cpVect,
radius: cpFloat) -> cpFloat;
pub fn cpCentroidForPoly(count: ::libc::c_int, verts: *cpVect) -> cpVect;
pub fn cpMomentForBox(m: cpFloat, width: cpFloat, height: cpFloat) ->
cpFloat;
pub fn cpMomentForBox2(m: cpFloat, _box: cpBB) -> cpFloat;
pub fn cpConvexHull(count: ::libc::c_int, verts: *cpVect,
result: *mut cpVect, first: *mut ::libc::c_int,
tol: cpFloat) -> ::libc::c_int;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment