Chipmunk Pro API Reference  6.1.3
 All Classes Functions Variables Typedefs Properties Groups Pages
ChipmunkSpace.h
1 
7 struct cpSpace;
8 
9 @interface ChipmunkSpace : NSObject {
10 @protected
11  struct cpSpace *_space;
12  ChipmunkBody *_staticBody;
13 
14  NSMutableSet *_children;
15  NSMutableArray *_handlers;
16 
17  id _data;
18 }
19 
24 @property(nonatomic, assign) int iterations;
25 
27 @property(nonatomic, assign) cpVect gravity;
28 
34 @property(nonatomic, assign) cpFloat damping;
35 
37 @property(nonatomic, assign) cpFloat idleSpeedThreshold;
38 
43 @property(nonatomic, assign) cpFloat sleepTimeThreshold;
44 
51 @property(nonatomic, assign) cpFloat collisionSlop;
52 
58 @property(nonatomic, assign) cpFloat collisionBias;
59 
64 @property(nonatomic, assign) cpTimestamp collisionPersistence;
65 
70 @property(nonatomic, assign) bool enableContactGraph
71 __attribute__((__deprecated__));
72 
74 @property(nonatomic, readonly) cpSpace *space;
75 
80 @property(nonatomic, readonly) ChipmunkBody *staticBody;
81 
85 @property(nonatomic, readonly) cpFloat currentTimeStep;
86 
91 @property(nonatomic, assign) id data;
92 
95 +(ChipmunkSpace *)spaceFromCPSpace:(cpSpace *)space;
96 
109 - (void)setDefaultCollisionHandler:(id)delegate
110  begin:(SEL)begin
111  preSolve:(SEL)preSolve
112  postSolve:(SEL)postSolve
113  separate:(SEL)separate;
114 
130 - (void)addCollisionHandler:(id)delegate
131  typeA:(cpCollisionType)a typeB:(cpCollisionType)b
132  begin:(SEL)begin
133  preSolve:(SEL)preSolve
134  postSolve:(SEL)postSolve
135  separate:(SEL)separate;
136 
137 
139 - (void)removeCollisionHandlerForTypeA:(cpCollisionType)a andB:(cpCollisionType)b;
140 
147 -(id)add:(NSObject<ChipmunkObject> *)obj;
148 
155 -(id)remove:(NSObject<ChipmunkObject> *)obj;
156 
158 -(BOOL)contains:(NSObject<ChipmunkObject> *)obj;
159 
161 - (id)smartAdd:(NSObject<ChipmunkObject> *)obj;
162 
164 - (id)smartRemove:(NSObject<ChipmunkObject> *)obj;
165 
166 
187 - (BOOL)addPostStepCallback:(id)target selector:(SEL)selector key:(id)key;
188 
190 typedef void (^ChipmunkPostStepBlock)(void);
191 
193 - (BOOL)addPostStepBlock:(ChipmunkPostStepBlock)block key:(id)key;
194 
196 - (void)addPostStepAddition:(NSObject<ChipmunkObject> *)obj;
197 
199 - (void)addPostStepRemoval:(NSObject<ChipmunkObject> *)obj;
200 
203 - (NSArray *)nearestPointQueryAll:(cpVect)point maxDistance:(cpFloat)maxDistance layers:(cpLayers)layers group:(cpGroup)group;
204 
207 - (ChipmunkNearestPointQueryInfo *)nearestPointQueryNearest:(cpVect)point maxDistance:(cpFloat)maxDistance layers:(cpLayers)layers group:(cpGroup)group;
208 
211 - (NSArray *)pointQueryAll:(cpVect)point layers:(cpLayers)layers group:(cpGroup)group __attribute__((__deprecated__));
212 
215 - (ChipmunkShape *)pointQueryFirst:(cpVect)point layers:(cpLayers)layers group:(cpGroup)group __attribute__((__deprecated__));
216 
218 - (NSArray *)segmentQueryAllFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(cpGroup)group;
219 
221 - (ChipmunkSegmentQueryInfo *)segmentQueryFirstFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(cpGroup)group;
222 
224 - (NSArray *)bbQueryAll:(cpBB)bb layers:(cpLayers)layers group:(cpGroup)group;
225 
227 - (NSArray *)shapeQueryAll:(ChipmunkShape *)shape;
228 
230 - (BOOL)shapeTest:(ChipmunkShape *)shape;
231 
233 - (void)activateShapesTouchingShape:(ChipmunkShape *)shape;
234 
236 - (NSArray *)bodies;
237 
239 - (NSArray *)shapes;
240 
242 - (NSArray *)constraints;
243 
245 - (void)reindexStatic;
246 
249 - (void)reindexShape:(ChipmunkShape *)shape;
250 
252 - (void)reindexShapesForBody:(ChipmunkBody *)body;
253 
255 - (void)step:(cpFloat)dt;
256 
257 @end
258 
259 //MARK: Misc
260 
272 #define CHIPMUNK_ARBITER_GET_SHAPES(arb, a, b) ChipmunkShape *a, *b; { \
273  cpShape *shapeA, *shapeB; \
274  cpArbiterGetShapes(arb, &shapeA, &shapeB); \
275  a = shapeA->data; b = shapeB->data; \
276 }
277 
278 #define CHIPMUNK_ARBITER_GET_BODIES(arb, a, b) ChipmunkBody *a, *b; { \
279  cpBody *bodyA, *bodyB; \
280  cpArbiterGetBodies(arb, &bodyA, &bodyB); \
281  a = bodyA->data; b = bodyB->data; \
282 }
283 
284