00001 #import "ObjectiveChipmunk.h"
00002
00003 #import "cpMarch.h"
00004 #import "cpPolyline.h"
00005
00007 @interface ChipmunkPolyline : NSObject {
00008 @private
00009 cpPolyline _line;
00010 cpFloat _area;
00011 }
00012
00013 -(id)initWithPolyline:(cpPolyline)line;
00014 +(ChipmunkPolyline *)fromPolyline:(cpPolyline)line;
00015
00017 @property(readonly) bool isLooped;
00018
00021 @property(readonly) cpFloat area;
00022
00025 @property(readonly) cpVect centroid;
00026
00028 -(cpFloat)momentForMass:(cpFloat)mass offset:(cpVect)offset;
00029
00030
00032 @property(readonly) NSUInteger count;
00033
00035 @property(readonly) const cpVect *verts;
00036
00041 -(ChipmunkPolyline *)simplifyCurves:(cpFloat)tolerance;
00042
00047 -(ChipmunkPolyline *)simplifyVertexes:(cpFloat)tolerance;
00048
00049
00050 -(ChipmunkPolyline *)toConvexHull;
00051
00053 -(NSArray *)asChipmunkSegmentsWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset;
00054
00056 -(ChipmunkPolyShape *)asChipmunkPolyShapeWithBody:(ChipmunkBody *)body offset:(cpVect)offset;
00057
00058 @end
00059
00060
00062 @interface ChipmunkPolylineSet : NSObject<NSFastEnumeration> {
00063 @private
00064 NSMutableArray *_lines;
00065 }
00066
00067 -(id)initWithPolylineSet:(cpPolylineSet *)set;
00068 +(ChipmunkPolylineSet *)fromPolylineSet:(cpPolylineSet *)set;
00069
00070 @property(readonly) NSUInteger count;
00071
00072 -(ChipmunkPolyline *)lineAtIndex:(NSUInteger)index;
00073
00074 @end
00075
00076
00081 @interface ChipmunkAbstractSampler : NSObject {
00082 @protected
00083 cpMarchSampleFunc _sampleFunc;
00084 }
00085
00087 @property(readonly) cpMarchSampleFunc sampleFunc;
00088
00090 -(id)initWithSamplingFunction:(cpMarchSampleFunc)sampleFunc;
00091
00093 -(cpFloat)sample:(cpVect)pos;
00094
00096 -(ChipmunkPolylineSet *)march:(cpBB)bb xSamples:(NSUInteger)xSamples ySamples:(NSUInteger)ySamples hard:(bool)hard;
00097
00098 @end
00099
00100
00101
00103 typedef cpFloat (^ChipmunkMarchSampleBlock)(cpVect point);
00104
00105 @interface ChipmunkBlockSampler : ChipmunkAbstractSampler {
00106 ChipmunkMarchSampleBlock _block;
00107 }
00108
00110 -(id)initWithBlock:(ChipmunkMarchSampleBlock)block;
00111 +(ChipmunkBlockSampler *)samplerWithBlock:(ChipmunkMarchSampleBlock)block;
00112
00113 @end
00114
00115
00116
00117 #import "ChipmunkImageSampler.h"
00118 #import "ChipmunkPointCloudSampler.h"
00119 #import "ChipmunkTileCache.h"