00001
00004 @interface ChipmunkSpace : NSObject {
00005 @private
00006 cpSpace _space;
00007 ChipmunkBody *_staticBody;
00008
00009 NSMutableSet *_children;
00010 NSMutableArray *_handlers;
00011
00012 id _data;
00013 }
00014
00019 @property int iterations;
00020
00022 @property cpVect gravity;
00023
00029 @property cpFloat damping;
00030
00032 @property cpFloat idleSpeedThreshold;
00033
00038 @property cpFloat sleepTimeThreshold;
00039
00040
00041
00042
00043
00044
00045
00046 @property cpFloat collisionSlop;
00047
00048
00049
00050
00051
00052
00053 @property cpFloat collisionBias;
00054
00055
00056
00057
00058
00059 @property cpTimestamp collisionPersistence;
00060
00061
00062
00063
00064
00065 @property bool enableContactGraph;
00066
00068 @property (readonly) cpSpace *space;
00069
00074 @property (readonly) ChipmunkBody *staticBody;
00075
00079 @property (readonly) cpFloat currentTimeStep;
00080
00085 @property (assign) id data;
00086
00098 #define CHIPMUNK_ARBITER_GET_SHAPES(arb, a, b) ChipmunkShape *a, *b; { \
00099 cpShape *shapeA, *shapeB; \
00100 cpArbiterGetShapes(arb, &shapeA, &shapeB); \
00101 a = shapeA->data; b = shapeB->data; \
00102 }
00103
00116 - (void)setDefaultCollisionHandler:(id)delegate
00117 begin:(SEL)begin
00118 preSolve:(SEL)preSolve
00119 postSolve:(SEL)postSolve
00120 separate:(SEL)separate;
00121
00137 - (void)addCollisionHandler:(id)delegate
00138 typeA:(id)a typeB:(id)b
00139 begin:(SEL)begin
00140 preSolve:(SEL)preSolve
00141 postSolve:(SEL)postSolve
00142 separate:(SEL)separate;
00143
00144
00146 - (void)removeCollisionHandlerForTypeA:(id)a andB:(id)b;
00147
00154 - (id)add:(id <ChipmunkObject>)obj;
00155
00162 - (id)remove:(id <ChipmunkObject>)obj;
00163
00165 - (id <ChipmunkObject>)smartAdd:(id <ChipmunkObject>)obj;
00166
00168 - (id <ChipmunkObject>)smartRemove:(id <ChipmunkObject>)obj;
00169
00170
00191 - (void)addPostStepCallback:(id)target selector:(SEL)selector key:(id)key;
00192
00194 typedef void (^ChipmunkPostStepBlock)();
00195
00197 - (void)addPostStepBlock:(ChipmunkPostStepBlock)block key:(id)key;
00198
00200 - (void)addPostStepAddition:(id <ChipmunkObject>)obj;
00201
00203 - (void)addPostStepRemoval:(id <ChipmunkObject>)obj;
00204
00206 - (NSArray *)pointQueryAll:(cpVect)point layers:(cpLayers)layers group:(id)group;
00207
00208
00209
00210
00212 - (ChipmunkShape *)pointQueryFirst:(cpVect)point layers:(cpLayers)layers group:(id)group;
00213
00215 - (NSArray *)segmentQueryAllFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(id)group;
00216
00217
00218
00219
00221 - (ChipmunkSegmentQueryInfo *)segmentQueryFirstFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(id)group;
00222
00224 - (NSArray *)bbQueryAll:(cpBB)bb layers:(cpLayers)layers group:(id)group;
00225
00226
00227
00228
00230 - (NSArray *)shapeQueryAll:(ChipmunkShape *)shape;
00231
00233 - (BOOL)shapeTest:shape;
00234
00236 - (void)activateShapesTouchingShape:(ChipmunkShape *)shape;
00237
00239 - (NSArray *)bodies;
00240
00242 - (NSArray *)shapes;
00243
00245 - (NSArray *)constraints;
00246
00248 - (void)reindexStatic;
00249
00252 - (void)reindexShape:(ChipmunkShape *)shape;
00253
00255 - (void)reindexShapesForBody:(ChipmunkBody *)body;
00256
00258 - (void)step:(cpFloat)dt;
00259
00260 @end