25 typedef struct cpContactBufferHeader cpContactBufferHeader;
26 typedef void (*cpSpaceArbiterApplyImpulseFunc)(
cpArbiter *arb);
83 CP_PRIVATE(cpArray *bodies);
84 CP_PRIVATE(cpArray *rousedBodies);
85 CP_PRIVATE(cpArray *sleepingComponents);
87 CP_PRIVATE(cpSpatialIndex *staticShapes);
88 CP_PRIVATE(cpSpatialIndex *activeShapes);
90 CP_PRIVATE(cpArray *arbiters);
91 CP_PRIVATE(cpContactBufferHeader *contactBuffersHead);
92 CP_PRIVATE(cpHashSet *cachedArbiters);
93 CP_PRIVATE(cpArray *pooledArbiters);
94 CP_PRIVATE(cpArray *constraints);
96 CP_PRIVATE(cpArray *allocatedBuffers);
97 CP_PRIVATE(
int locked);
99 CP_PRIVATE(cpHashSet *collisionHandlers);
100 CP_PRIVATE(cpCollisionHandler defaultHandler);
102 CP_PRIVATE(
cpBool skipPostStep);
103 CP_PRIVATE(cpArray *postStepCallbacks);
105 CP_PRIVATE(
cpBody _staticBody);
120 #define CP_DefineSpaceStructGetter(type, member, name) \
121 static inline type cpSpaceGet##name(const cpSpace *space){return space->member;}
123 #define CP_DefineSpaceStructSetter(type, member, name) \
124 static inline void cpSpaceSet##name(cpSpace *space, type value){space->member = value;}
126 #define CP_DefineSpaceStructProperty(type, member, name) \
127 CP_DefineSpaceStructGetter(type, member, name) \
128 CP_DefineSpaceStructSetter(type, member, name)
130 CP_DefineSpaceStructProperty(
int, iterations, Iterations)
131 CP_DefineSpaceStructProperty(
cpVect, gravity, Gravity)
132 CP_DefineSpaceStructProperty(
cpFloat, damping, Damping)
133 CP_DefineSpaceStructProperty(cpFloat, idleSpeedThreshold, IdleSpeedThreshold)
134 CP_DefineSpaceStructProperty(cpFloat, sleepTimeThreshold, SleepTimeThreshold)
135 CP_DefineSpaceStructProperty(cpFloat, collisionSlop, CollisionSlop)
136 CP_DefineSpaceStructProperty(cpFloat, collisionBias, CollisionBias)
137 CP_DefineSpaceStructProperty(
cpTimestamp, collisionPersistence, CollisionPersistence)
138 CP_DefineSpaceStructProperty(
cpBool, enableContactGraph, EnableContactGraph)
140 CP_DefineSpaceStructGetter(
cpBody*, staticBody, StaticBody)
141 CP_DefineSpaceStructGetter(cpFloat, CP_PRIVATE(curr_dt), CurrentTimeStep)
147 return space->CP_PRIVATE(locked);