#import "ObjectiveChipmunk/ObjectiveChipmunk.h"
#import "ChipmunkAutoGeometry.h"
@class ChipmunkCachedTile;
@interface ChipmunkAbstractTileCache : NSObject {
@private
ChipmunkAbstractSampler *_sampler;
ChipmunkSpace *_space;
cpFloat _tileSize;
cpFloat _samplesPerTile;
cpVect _tileOffset;
NSUInteger _tileCount, _cacheSize;
cpSpatialIndex *_tileIndex;
ChipmunkCachedTile *_cacheHead, *_cacheTail;
cpBB _ensuredBB;
bool _ensuredDirty;
bool _marchHard;
}
@property(nonatomic, assign) bool marchHard;
@property(nonatomic, assign) cpVect tileOffset;
@property(nonatomic, readonly) ChipmunkAbstractSampler *sampler;
-(id)initWithSampler:(ChipmunkAbstractSampler *)sampler space:(ChipmunkSpace *)space tileSize:(cpFloat)tileSize samplesPerTile:(NSUInteger)samplesPerTile cacheSize:(NSUInteger)cacheSize;
-(void)resetCache;
-(void)markDirtyRect:(cpBB)bounds;
-(void)ensureRect:(cpBB)bounds;
-(cpPolyline *)simplify:(cpPolyline *)polyline;
-(ChipmunkSegmentShape *)makeSegmentFor:(ChipmunkBody *)staticBody from:(cpVect)a to:(cpVect)b;
@end
@interface ChipmunkBasicTileCache : ChipmunkAbstractTileCache {
@private
cpFloat _simplifyThreshold;
cpFloat _segmentRadius;
cpFloat _segmentFriction;
cpFloat _segmentElasticity;
cpShapeFilter _segmentFilter;
cpCollisionType _segmentCollisionType;
}
@property(nonatomic, assign) cpFloat simplifyThreshold;
@property(nonatomic, assign) cpFloat segmentRadius;
@property(nonatomic, assign) cpFloat segmentFriction;
@property(nonatomic, assign) cpFloat segmentElasticity;
@property(nonatomic, assign) cpShapeFilter segmentFilter;
@property(nonatomic, assign) cpCollisionType segmentCollisionType;
@end