00001 #import "ObjectiveChipmunk.h" 00002 #import "ChipmunkAutoGeometry.h" 00003 00004 00005 @class ChipmunkCachedTile; 00006 00010 @interface ChipmunkAbstractTileCache : NSObject { 00011 @private 00012 ChipmunkAbstractSampler *_sampler; 00013 ChipmunkSpace *_space; 00014 00015 cpFloat _tileSize; 00016 cpFloat _samplesPerTile; 00017 cpVect _tileOffset; 00018 00019 NSUInteger _tileCount, _cacheSize; 00020 cpSpatialIndex *_tileIndex; 00021 ChipmunkCachedTile *_cacheHead, *_cacheTail; 00022 00023 cpBB _ensuredBB; 00024 bool _ensuredDirty; 00025 00026 bool _marchHard; 00027 } 00028 00031 @property(nonatomic, assign) bool marchHard; 00032 00034 @property(nonatomic, assign) cpVect tileOffset; 00035 00037 @property(readonly) ChipmunkAbstractSampler *sampler; 00038 00041 -(id)initWithSampler:(ChipmunkAbstractSampler *)sampler space:(ChipmunkSpace *)space tileSize:(cpFloat)tileSize samplesPerTile:(NSUInteger)samplesPerTile cacheSize:(NSUInteger)cacheSize; 00042 00044 -(void)resetCache; 00045 00048 -(void)markDirtyRect:(cpBB)bounds; 00049 00051 -(void)ensureRect:(cpBB)bounds; 00052 00055 -(cpPolyline)simplify:(cpPolyline)polyline; 00056 00059 -(ChipmunkSegmentShape *)makeSegmentFor:(ChipmunkBody *)staticBody from:(cpVect)a to:(cpVect)b; 00060 00061 @end 00062 00063 00065 @interface ChipmunkBasicTileCache : ChipmunkAbstractTileCache { 00066 @private 00067 cpFloat _simplifyThreshold; 00068 00069 cpFloat _segmentRadius; 00070 00071 cpFloat _segmentFriction; 00072 cpFloat _segmentElasticity; 00073 00074 cpGroup _segmentGroup; 00075 cpLayers _segmentLayers; 00076 00077 id _segmentCollisionType; 00078 } 00079 00081 @property(nonatomic, assign) cpFloat simplifyThreshold; 00082 00084 @property(nonatomic, assign) cpFloat segmentRadius; 00085 00087 @property(nonatomic, assign) cpFloat segmentFriction; 00088 00090 @property(nonatomic, assign) cpFloat segmentElasticity; 00091 00093 @property(nonatomic, assign) cpGroup segmentGroup; 00094 00096 @property(nonatomic, assign) cpLayers segmentLayers; 00097 00099 @property(nonatomic, retain) id segmentCollisionType; 00100 00101 @end