Chipmunk2D Pro API Reference  6.1.5
 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 
168 - (NSArray *)addBounds:(CGRect)bounds thickness:(cpFloat)radius
169  elasticity:(cpFloat)elasticity friction:(cpFloat)friction
170  layers:(cpLayers)layers group:(id)group
171  collisionType:(id)collisionType;
172 
173 
194 - (BOOL)addPostStepCallback:(id)target selector:(SEL)selector key:(id)key;
195 
197 typedef void (^ChipmunkPostStepBlock)(void);
198 
200 - (BOOL)addPostStepBlock:(ChipmunkPostStepBlock)block key:(id)key;
201 
203 - (void)addPostStepAddition:(NSObject<ChipmunkObject> *)obj;
204 
206 - (void)addPostStepRemoval:(NSObject<ChipmunkObject> *)obj;
207 
210 - (NSArray *)nearestPointQueryAll:(cpVect)point maxDistance:(cpFloat)maxDistance layers:(cpLayers)layers group:(cpGroup)group;
211 
214 - (ChipmunkNearestPointQueryInfo *)nearestPointQueryNearest:(cpVect)point maxDistance:(cpFloat)maxDistance layers:(cpLayers)layers group:(cpGroup)group;
215 
218 - (NSArray *)pointQueryAll:(cpVect)point layers:(cpLayers)layers group:(cpGroup)group __attribute__((__deprecated__));
219 
222 - (ChipmunkShape *)pointQueryFirst:(cpVect)point layers:(cpLayers)layers group:(cpGroup)group __attribute__((__deprecated__));
223 
225 - (NSArray *)segmentQueryAllFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(cpGroup)group;
226 
228 - (ChipmunkSegmentQueryInfo *)segmentQueryFirstFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(cpGroup)group;
229 
231 - (NSArray *)bbQueryAll:(cpBB)bb layers:(cpLayers)layers group:(cpGroup)group;
232 
234 - (NSArray *)shapeQueryAll:(ChipmunkShape *)shape;
235 
237 - (BOOL)shapeTest:(ChipmunkShape *)shape;
238 
240 - (void)activateShapesTouchingShape:(ChipmunkShape *)shape;
241 
243 - (NSArray *)bodies;
244 
246 - (NSArray *)shapes;
247 
249 - (NSArray *)constraints;
250 
252 - (void)reindexStatic;
253 
256 - (void)reindexShape:(ChipmunkShape *)shape;
257 
259 - (void)reindexShapesForBody:(ChipmunkBody *)body;
260 
262 - (void)step:(cpFloat)dt;
263 
264 @end
265 
266 //MARK: Misc
267 
279 #define CHIPMUNK_ARBITER_GET_SHAPES(__arb__, __a__, __b__) ChipmunkShape *__a__, *__b__; { \
280  cpShape *__shapeA__, *__shapeB__; \
281  cpArbiterGetShapes(__arb__, &__shapeA__, &__shapeB__); \
282  __a__ = __shapeA__->data; __b__ = __shapeB__->data; \
283 }
284 
285 #define CHIPMUNK_ARBITER_GET_BODIES(__arb__, __a__, __b__) ChipmunkBody *__a__, *__b__; { \
286  cpBody *__bodyA__, *__bodyB__; \
287  cpArbiterGetBodies(__arb__, &__bodyA__, &__bodyB__); \
288  __a__ = __bodyA__->data; __b__ = __bodyB__->data; \
289 }
290 
291