90#define B2_ID_INLINE inline
93#define B2_NULL_ID { 0 }
95#define B2_ID_INLINE static inline
108#define B2_IS_NULL( id ) ( ( id ).index1 == 0 )
111#define B2_IS_NON_NULL( id ) ( ( id ).index1 != 0 )
114#define B2_ID_EQUALS( id1, id2 ) \
115 ( ( id1 ).index1 == ( id2 ).index1 && ( id1 ).world0 == ( id2 ).world0 && \
116 ( id1 ).generation == ( id2 ).generation )
121 return ( (uint32_t)
id.index1 << 16 ) | (uint32_t)
id.generation;
127 b2WorldId id = { (uint16_t)( x >> 16 ), (uint16_t)( x ) };
134 return ( (uint64_t)
id.index1 << 32 ) | ( (uint64_t)
id.world0 ) << 16 | (uint64_t)
id.generation;
140 b2BodyId id = { (int32_t)( x >> 32 ), (uint16_t)( x >> 16 ), (uint16_t)( x ) };
147 return ( (uint64_t)
id.index1 << 32 ) | ( (uint64_t)
id.world0 ) << 16 | (uint64_t)
id.generation;
153 b2ShapeId id = { (int32_t)( x >> 32 ), (uint16_t)( x >> 16 ), (uint16_t)( x ) };
160 return ( (uint64_t)
id.index1 << 32 ) | ( (uint64_t)
id.world0 ) << 16 | (uint64_t)
id.generation;
166 b2ChainId id = { (int32_t)( x >> 32 ), (uint16_t)( x >> 16 ), (uint16_t)( x ) };
173 return ( (uint64_t)
id.index1 << 32 ) | ( (uint64_t)
id.world0 ) << 16 | (uint64_t)
id.generation;
179 b2JointId id = { (int32_t)( x >> 32 ), (uint16_t)( x >> 16 ), (uint16_t)( x ) };
186 values[0] = (uint32_t)
id.index1;
187 values[1] = (uint32_t)
id.world0;
188 values[2] = (uint32_t)
id.generation;
195 id.index1 = (int32_t)values[0];
196 id.world0 = (uint16_t)values[1];
198 id.generation = (uint32_t)values[2];
#define B2_NULL_ID
A null id. Works for any id type.
Definition id.h:93
#define B2_ID_INLINE
Inline function.
Definition id.h:95
Body id references a body instance. This should be treated as an opaque handle.
Definition id.h:46
Chain id references a chain instance. This should be treated as an opaque handle.
Definition id.h:62
Joint id references a joint instance. This should be treated as an opaque handle.
Definition id.h:70
Shape id references a shape instance. This should be treated as an opaque handle.
Definition id.h:54
World id references a world instance. This should be treated as an opaque handle.
Definition id.h:39