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(nonatomic, readonly) bool isLooped; 00020 00023 @property(nonatomic, readonly) cpFloat area; 00024 00027 @property(nonatomic, readonly) cpVect centroid; 00028 00030 -(cpFloat)momentForMass:(cpFloat)mass offset:(cpVect)offset; 00031 00032 00034 @property(nonatomic, readonly) NSUInteger count; 00035 00037 @property(nonatomic, 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(nonatomic, readonly) NSUInteger count; 00080 00081 -(ChipmunkPolyline *)lineAtIndex:(NSUInteger)index; 00082 00083 @end 00084 00085 00090 @interface ChipmunkAbstractSampler : NSObject { 00091 @protected 00092 cpFloat _marchThreshold; 00093 cpMarchSampleFunc _sampleFunc; 00094 } 00095 00098 @property(nonatomic, assign) cpFloat marchThreshold; 00099 00101 @property(nonatomic, readonly) cpMarchSampleFunc sampleFunc; 00102 00104 -(id)initWithSamplingFunction:(cpMarchSampleFunc)sampleFunc; 00105 00107 -(cpFloat)sample:(cpVect)pos; 00108 00110 -(ChipmunkPolylineSet *)march:(cpBB)bb xSamples:(NSUInteger)xSamples ySamples:(NSUInteger)ySamples hard:(bool)hard; 00111 00112 @end 00113 00114 00115 00117 typedef cpFloat (^ChipmunkMarchSampleBlock)(cpVect point); 00118 00119 @interface ChipmunkBlockSampler : ChipmunkAbstractSampler { 00120 ChipmunkMarchSampleBlock _block; 00121 } 00122 00124 -(id)initWithBlock:(ChipmunkMarchSampleBlock)block; 00125 +(ChipmunkBlockSampler *)samplerWithBlock:(ChipmunkMarchSampleBlock)block; 00126 00127 @end 00128 00129 00130 00131 #import "ChipmunkImageSampler.h" 00132 #import "ChipmunkPointCloudSampler.h" 00133 #import "ChipmunkTileCache.h"