00001 00002 @interface ChipmunkShape : NSObject <ChipmunkBaseObject> { 00003 @public 00004 id data; 00005 } 00006 00009 +(ChipmunkShape *)shapeFromCPShape:(cpShape *)shape; 00010 00012 @property (readonly) cpShape *shape; 00013 00015 @property (retain) ChipmunkBody *body; 00016 00018 @property (readonly) cpBB bb; 00019 00021 @property BOOL sensor; 00022 00024 @property cpFloat elasticity; 00025 00027 @property cpFloat friction; 00028 00033 @property cpVect surfaceVel; 00034 00039 @property (assign) id collisionType; 00040 00045 @property (assign) id group; 00046 00048 @property (assign) cpLayers layers; 00049 00054 @property (assign) id data; 00055 00057 - (cpBB)cacheBB; 00058 00060 - (bool)pointQuery:(cpVect)point; 00061 00062 @end 00063 00064 00066 @interface ChipmunkSegmentQueryInfo : NSObject { 00067 @private 00068 cpSegmentQueryInfo _info; 00069 cpVect _start, _end; 00070 } 00071 00072 - (id)initWithStart:(cpVect)start end:(cpVect)end; 00073 00075 @property (readonly) cpSegmentQueryInfo *info; 00076 00078 @property (readonly) ChipmunkShape *shape; 00079 00081 @property (readonly) cpFloat t; 00082 00084 @property (readonly) cpVect normal; 00085 00087 @property (readonly) cpVect point; 00088 00090 @property (readonly) cpFloat dist; 00091 00093 @property (readonly) cpVect start; 00094 00096 @property (readonly) cpVect end; 00097 00098 @end 00099 00100 00102 @interface ChipmunkShapeQueryInfo : NSObject { 00103 @private 00104 ChipmunkShape *_shape; 00105 cpContactPointSet _contactPoints; 00106 } 00107 00108 - (id)initWithShape:(ChipmunkShape *)shape andPoints:(cpContactPointSet *)set; 00109 00110 @property (readonly) ChipmunkShape *shape; 00111 @property (readonly) cpContactPointSet *contactPoints; 00112 00113 @end 00114 00115 00117 @interface ChipmunkCircleShape : ChipmunkShape { 00118 @private 00119 cpCircleShape _shape; 00120 } 00121 00123 + (id)circleWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset; 00124 00126 - (id)initWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset; 00127 00129 @property (readonly) cpFloat radius; 00130 00132 @property (readonly) cpVect offset; 00133 00134 @end 00135 00136 00138 @interface ChipmunkSegmentShape : ChipmunkShape { 00139 @private 00140 cpSegmentShape _shape; 00141 } 00142 00144 + (id)segmentWithBody:(ChipmunkBody *)body from:(cpVect)a to:(cpVect)b radius:(cpFloat)radius; 00145 00147 - (id)initWithBody:(ChipmunkBody *)body from:(cpVect)a to:(cpVect)b radius:(cpFloat)radius; 00148 00150 @property (readonly) cpVect a; 00151 00153 @property (readonly) cpVect b; 00154 00156 @property (readonly) cpVect normal; 00157 00159 @property (readonly) cpFloat radius; 00160 00161 @end 00162 00163 00165 @interface ChipmunkPolyShape : ChipmunkShape { 00166 @private 00167 cpPolyShape _shape; 00168 } 00169 00171 + (id)polyWithBody:(ChipmunkBody *)body count:(int)count verts:(cpVect *)verts offset:(cpVect)offset; 00172 00174 + (id)boxWithBody:(ChipmunkBody *)body width:(cpFloat)width height:(cpFloat)height; 00175 00177 - (id)initWithBody:(ChipmunkBody *)body count:(int)count verts:(cpVect *)verts offset:(cpVect)offset; 00178 00180 - (id)initBoxWithBody:(ChipmunkBody *)body width:(cpFloat)width height:(cpFloat)height; 00181 00183 @property (readonly) int count; 00184 00186 - (cpVect)getVertex:(int)index; 00187 00188 @end 00189 00191 @interface ChipmunkStaticCircleShape : ChipmunkCircleShape 00192 @end 00193 00194 00196 @interface ChipmunkStaticSegmentShape : ChipmunkSegmentShape 00197 @end 00198 00200 @interface ChipmunkStaticPolyShape : ChipmunkPolyShape 00201 @end