00001 #import "ObjectiveChipmunk.h" 00002 00003 #import "cpMarch.h" 00004 #import "cpPolyline.h" 00005 00006 @class ChipmunkPolylineSet; 00007 00009 @interface ChipmunkPolyline : NSObject { 00010 @private 00011 cpPolyline _line; 00012 cpFloat _area; 00013 } 00014 00015 -(id)initWithPolyline:(cpPolyline)line; 00016 +(ChipmunkPolyline *)fromPolyline:(cpPolyline)line; 00017 00019 @property(readonly) bool isLooped; 00020 00023 @property(readonly) cpFloat area; 00024 00027 @property(readonly) cpVect centroid; 00028 00030 -(cpFloat)momentForMass:(cpFloat)mass offset:(cpVect)offset; 00031 00032 00034 @property(readonly) NSUInteger count; 00035 00037 @property(readonly) const cpVect *verts; 00038 00043 -(ChipmunkPolyline *)simplifyCurves:(cpFloat)tolerance; 00044 00049 -(ChipmunkPolyline *)simplifyVertexes:(cpFloat)tolerance; 00050 00052 -(ChipmunkPolyline *)toConvexHull; 00053 00055 -(ChipmunkPolyline *)toConvexHull:(cpFloat)tolerance; 00056 00059 -(ChipmunkPolylineSet *)toConvexHulls_BETA:(cpFloat)tolerance; 00060 00062 -(NSArray *)asChipmunkSegmentsWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset; 00063 00065 -(ChipmunkPolyShape *)asChipmunkPolyShapeWithBody:(ChipmunkBody *)body offset:(cpVect)offset; 00066 00067 @end 00068 00069 00071 @interface ChipmunkPolylineSet : NSObject<NSFastEnumeration> { 00072 @private 00073 NSMutableArray *_lines; 00074 } 00075 00076 -(id)initWithPolylineSet:(cpPolylineSet *)set; 00077 +(ChipmunkPolylineSet *)fromPolylineSet:(cpPolylineSet *)set; 00078 00079 @property(readonly) NSUInteger count; 00080 00081 -(ChipmunkPolyline *)lineAtIndex:(NSUInteger)index; 00082 00083 @end 00084 00085 00090 @interface ChipmunkAbstractSampler : NSObject { 00091 @protected 00092 cpMarchSampleFunc _sampleFunc; 00093 } 00094 00096 @property(readonly) cpMarchSampleFunc sampleFunc; 00097 00099 -(id)initWithSamplingFunction:(cpMarchSampleFunc)sampleFunc; 00100 00102 -(cpFloat)sample:(cpVect)pos; 00103 00105 -(ChipmunkPolylineSet *)march:(cpBB)bb xSamples:(NSUInteger)xSamples ySamples:(NSUInteger)ySamples hard:(bool)hard; 00106 00107 @end 00108 00109 00110 00112 typedef cpFloat (^ChipmunkMarchSampleBlock)(cpVect point); 00113 00114 @interface ChipmunkBlockSampler : ChipmunkAbstractSampler { 00115 ChipmunkMarchSampleBlock _block; 00116 } 00117 00119 -(id)initWithBlock:(ChipmunkMarchSampleBlock)block; 00120 +(ChipmunkBlockSampler *)samplerWithBlock:(ChipmunkMarchSampleBlock)block; 00121 00122 @end 00123 00124 00125 00126 #import "ChipmunkImageSampler.h" 00127 #import "ChipmunkPointCloudSampler.h" 00128 #import "ChipmunkTileCache.h"