Chipmunk2D Pro API Reference  6.2.1
 All Classes Functions Variables Typedefs Properties Groups Pages
ChipmunkShape.h
1 // Copyright 2013 Howling Moon Software. All rights reserved.
2 // See http://chipmunk2d.net/legal.php for more information.
3 
6 
7 
9 @interface ChipmunkShape : NSObject <ChipmunkBaseObject> {
10 @public
11  id data;
12 }
13 
16 +(ChipmunkShape *)shapeFromCPShape:(cpShape *)shape;
17 
19 @property(nonatomic, readonly) cpShape *shape;
20 
22 @property(nonatomic, retain) ChipmunkBody *body;
23 
25 @property(nonatomic, readonly) cpBB bb;
26 
28 @property(nonatomic, assign) BOOL sensor;
29 
31 @property(nonatomic, assign) cpFloat elasticity;
32 
34 @property(nonatomic, assign) cpFloat friction;
35 
40 @property(nonatomic, assign) cpVect surfaceVel;
41 
46 @property(nonatomic, assign) cpCollisionType collisionType;
47 
52 @property(nonatomic, assign) cpGroup group;
53 
55 @property(nonatomic, assign) cpLayers layers;
56 
58 @property(nonatomic, readonly) ChipmunkSpace *space;
59 
64 @property(nonatomic, assign) id data;
65 
67 - (cpBB)cacheBB;
68 
71 - (bool)pointQuery:(cpVect)point __attribute__((__deprecated__));
72 
73 - (ChipmunkNearestPointQueryInfo *)nearestPointQuery:(cpVect)point;
74 - (ChipmunkSegmentQueryInfo *)segmentQueryFrom:(cpVect)start to:(cpVect)end;
75 
76 @end
77 
78 
79 @interface ChipmunkNearestPointQueryInfo : NSObject {
80  @private
82 }
83 
84 - (id)initWithInfo:(cpNearestPointQueryInfo *)info;
85 
87 @property(nonatomic, readonly) cpNearestPointQueryInfo *info;
88 
90 @property(nonatomic, readonly) ChipmunkShape *shape;
91 
94 @property(nonatomic, readonly) cpFloat dist;
95 
97 @property(nonatomic, readonly) cpVect point;
98 
101 @property(nonatomic, readonly) cpVect gradient;
102 
103 @end
104 
105 
107 @interface ChipmunkSegmentQueryInfo : NSObject {
108 @private
109  cpSegmentQueryInfo _info;
110  cpVect _start, _end;
111 }
112 
113 - (id)initWithInfo:(cpSegmentQueryInfo *)info start:(cpVect)start end:(cpVect)end;
114 
116 @property(nonatomic, readonly) cpSegmentQueryInfo *info;
117 
119 @property(nonatomic, readonly) ChipmunkShape *shape;
120 
122 @property(nonatomic, readonly) cpFloat t;
123 
125 @property(nonatomic, readonly) cpVect normal;
126 
128 @property(nonatomic, readonly) cpVect point;
129 
131 @property(nonatomic, readonly) cpFloat dist;
132 
134 @property(nonatomic, readonly) cpVect start;
135 
137 @property(nonatomic, readonly) cpVect end;
138 
139 @end
140 
141 
143 @interface ChipmunkShapeQueryInfo : NSObject {
144 @private
145  ChipmunkShape *_shape;
146  cpContactPointSet _contactPoints;
147 }
148 
149 - (id)initWithShape:(ChipmunkShape *)shape andPoints:(cpContactPointSet *)set;
150 
151 @property(nonatomic, readonly) ChipmunkShape *shape;
152 @property(nonatomic, readonly) cpContactPointSet *contactPoints;
153 
154 @end
155 
156 
159 @private
160  cpCircleShape _shape;
161 }
162 
164 + (id)circleWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset;
165 
167 - (id)initWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset;
168 
170 @property(nonatomic, readonly) cpFloat radius;
171 
173 @property(nonatomic, readonly) cpVect offset;
174 
175 @end
176 
177 
180 @private
181  cpSegmentShape _shape;
182 }
183 
185 + (id)segmentWithBody:(ChipmunkBody *)body from:(cpVect)a to:(cpVect)b radius:(cpFloat)radius;
186 
188 - (id)initWithBody:(ChipmunkBody *)body from:(cpVect)a to:(cpVect)b radius:(cpFloat)radius;
189 
191 - (void)setPrevNeighbor:(cpVect)prev nextNeighbor:(cpVect)next;
192 
194 @property(nonatomic, readonly) cpVect a;
195 
197 @property(nonatomic, readonly) cpVect b;
198 
200 @property(nonatomic, readonly) cpVect normal;
201 
203 @property(nonatomic, readonly) cpFloat radius;
204 
205 @end
206 
207 
210 @private
211  cpPolyShape _shape;
212 }
213 
215 + (id)polyWithBody:(ChipmunkBody *)body count:(int)count verts:(const cpVect *)verts offset:(cpVect)offset;
216 
218 + (id)polyWithBody:(ChipmunkBody *)body count:(int)count verts:(const cpVect *)verts offset:(cpVect)offset radius:(cpFloat)radius;
219 
221 + (id)boxWithBody:(ChipmunkBody *)body width:(cpFloat)width height:(cpFloat)height;
222 
224 + (id)boxWithBody:(ChipmunkBody *)body bb:(cpBB)bb;
225 
227 + (id)boxWithBody:(ChipmunkBody *)body bb:(cpBB)bb radius:(cpFloat)radius;
228 
230 - (id)initWithBody:(ChipmunkBody *)body count:(int)count verts:(const cpVect *)verts offset:(cpVect)offset;
231 
233 - (id)initWithBody:(ChipmunkBody *)body count:(int)count verts:(const cpVect *)verts offset:(cpVect)offset radius:(cpFloat)radius;
234 
236 - (id)initBoxWithBody:(ChipmunkBody *)body width:(cpFloat)width height:(cpFloat)height;
237 
239 - (id)initBoxWithBody:(ChipmunkBody *)body bb:(cpBB)bb;
240 
242 - (id)initBoxWithBody:(ChipmunkBody *)body bb:(cpBB)bb radius:(cpFloat)radius;
243 
245 @property(nonatomic, readonly) int count;
246 
248 @property(nonatomic, readonly) cpFloat radius;
249 
251 - (cpVect)getVertex:(int)index;
252 
253 @end
254 
257 @end
258 
259 
262 @end
263 
266 @end