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)target
00117 begin:(SEL)begin
00118 preSolve:(SEL)preSolve
00119 postSolve:(SEL)postSolve
00120 separate:(SEL)separate;
00121
00137 - (void)addCollisionHandler:(id)target
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
00145
00146
00147
00148
00149
00150
00152 - (void)addShapeAHandler:(Class)klass
00153 typeA:(id)a typeB:(id)b
00154 begin:(SEL)begin
00155 preSolve:(SEL)preSolve
00156 postSolve:(SEL)postSolve
00157 separate:(SEL)separate
00158 __attribute__((deprecated));
00159
00161 - (void)addShapeBHandler:(Class)klass
00162 typeA:(id)a typeB:(id)b
00163 begin:(SEL)begin
00164 preSolve:(SEL)preSolve
00165 postSolve:(SEL)postSolve
00166 separate:(SEL)separate
00167 __attribute__((deprecated));
00168
00170 - (void)removeCollisionHandlerForTypeA:(id)a andB:(id)b;
00171
00178 - (id)add:(NSObject<ChipmunkObject> *)obj;
00179
00185 - (void)addBaseObjects:(id <NSFastEnumeration>)objects;
00186
00193 - (id)remove:(NSObject<ChipmunkObject> *)obj;
00194
00200 - (void)removeBaseObjects:(id <NSFastEnumeration>)objects;
00201
00222 - (void)addPostStepCallback:(id)target selector:(SEL)selector key:(id)key;
00223
00225 - (void)addPostStepRemoval:(id <ChipmunkObject>)obj;
00226
00228 - (NSArray *)pointQueryAll:(cpVect)point layers:(cpLayers)layers group:(id)group;
00229
00230
00231
00232
00234 - (ChipmunkShape *)pointQueryFirst:(cpVect)point layers:(cpLayers)layers group:(id)group;
00235
00237 - (NSArray *)segmentQueryAllFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(id)group;
00238
00239
00240
00241
00243 - (ChipmunkSegmentQueryInfo *)segmentQueryFirstFrom:(cpVect)start to:(cpVect)end layers:(cpLayers)layers group:(id)group;
00244
00246 - (NSArray *)bbQueryAll:(cpBB)bb layers:(cpLayers)layers group:(id)group;
00247
00248
00249
00250
00252 - (NSArray *)shapeQueryAll:(ChipmunkShape *)shape;
00253
00255 - (BOOL)shapeTest:shape;
00256
00258 - (void)activateShapesTouchingShape:(ChipmunkShape *)shape;
00259
00261 - (NSArray *)bodies;
00262
00264 - (NSArray *)shapes;
00265
00267 - (NSArray *)constraints;
00268
00270 - (void)reindexStatic;
00271
00274 - (void)reindexShape:(ChipmunkShape *)shape;
00275
00277 - (void)reindexShapesForBody:(ChipmunkBody *)body;
00278
00280 - (void)step:(cpFloat)dt;
00281
00282 @end