@class ChipmunkPointQueryInfo;
@class ChipmunkSegmentQueryInfo;
@interface ChipmunkShape : NSObject <ChipmunkBaseObject> {
@private
id _userData;
}
+(ChipmunkShape *)shapeFromCPShape:(cpShape *)shape;
@property(nonatomic, readonly) cpShape *shape;
@property(nonatomic, retain) ChipmunkBody *body;
@property(nonatomic, assign) cpFloat mass;
@property(nonatomic, assign) cpFloat density;
@property(nonatomic, readonly) cpFloat moment;
@property(nonatomic, readonly) cpFloat area;
@property(nonatomic, readonly) cpVect centerOfGravity;
@property(nonatomic, readonly) cpBB bb;
@property(nonatomic, assign) BOOL sensor;
@property(nonatomic, assign) cpFloat elasticity;
@property(nonatomic, assign) cpFloat friction;
@property(nonatomic, assign) cpVect surfaceVelocity;
@property(nonatomic, assign) cpCollisionType collisionType;
@property(nonatomic, assign) cpShapeFilter filter;
@property(nonatomic, readonly) ChipmunkSpace *space;
@property(nonatomic, assign) id userData;
- (cpBB)cacheBB;
- (ChipmunkPointQueryInfo *)pointQuery:(cpVect)point;
- (ChipmunkSegmentQueryInfo *)segmentQueryFrom:(cpVect)start to:(cpVect)end radius:(cpFloat)radius;
@end
@interface ChipmunkPointQueryInfo : NSObject {
@private
cpPointQueryInfo _info;
}
- (id)initWithInfo:(cpPointQueryInfo *)info;
@property(nonatomic, readonly) cpPointQueryInfo *info;
@property(nonatomic, readonly) ChipmunkShape *shape;
@property(nonatomic, readonly) cpVect point;
@property(nonatomic, readonly) cpFloat distance;
@property(nonatomic, readonly) cpVect gradient;
@end
@interface ChipmunkSegmentQueryInfo : NSObject {
@private
cpSegmentQueryInfo _info;
cpVect _start, _end;
}
- (id)initWithInfo:(cpSegmentQueryInfo *)info start:(cpVect)start end:(cpVect)end;
@property(nonatomic, readonly) cpSegmentQueryInfo *info;
@property(nonatomic, readonly) ChipmunkShape *shape;
@property(nonatomic, readonly) cpFloat t;
@property(nonatomic, readonly) cpVect normal;
@property(nonatomic, readonly) cpVect point;
@property(nonatomic, readonly) cpFloat dist;
@property(nonatomic, readonly) cpVect start;
@property(nonatomic, readonly) cpVect end;
@end
@interface ChipmunkShapeQueryInfo : NSObject {
@private
ChipmunkShape *_shape;
cpContactPointSet _contactPoints;
}
- (id)initWithShape:(ChipmunkShape *)shape andPoints:(cpContactPointSet *)set;
@property(nonatomic, readonly) ChipmunkShape *shape;
@property(nonatomic, readonly) cpContactPointSet *contactPoints;
@end
@interface ChipmunkCircleShape : ChipmunkShape
+ (id)circleWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset;
- (id)initWithBody:(ChipmunkBody *)body radius:(cpFloat)radius offset:(cpVect)offset;
@property(nonatomic, readonly) cpFloat radius;
@property(nonatomic, readonly) cpVect offset;
@end
@interface ChipmunkSegmentShape : ChipmunkShape
+ (id)segmentWithBody:(ChipmunkBody *)body from:(cpVect)a to:(cpVect)b radius:(cpFloat)radius;
- (id)initWithBody:(ChipmunkBody *)body from:(cpVect)a to:(cpVect)b radius:(cpFloat)radius;
- (void)setPrevNeighbor:(cpVect)prev nextNeighbor:(cpVect)next;
@property(nonatomic, readonly) cpVect a;
@property(nonatomic, readonly) cpVect b;
@property(nonatomic, readonly) cpVect normal;
@property(nonatomic, readonly) cpFloat radius;
@end
@interface ChipmunkPolyShape : ChipmunkShape
+ (id)polyWithBody:(ChipmunkBody *)body count:(int)count verts:(const cpVect *)verts transform:(cpTransform)transform radius:(cpFloat)radius;
+ (id)boxWithBody:(ChipmunkBody *)body width:(cpFloat)width height:(cpFloat)height radius:(cpFloat)radius;
+ (id)boxWithBody:(ChipmunkBody *)body bb:(cpBB)bb radius:(cpFloat)radius;
- (id)initWithBody:(ChipmunkBody *)body count:(int)count verts:(const cpVect *)verts transform:(cpTransform)transform radius:(cpFloat)radius;
- (id)initBoxWithBody:(ChipmunkBody *)body width:(cpFloat)width height:(cpFloat)height radius:(cpFloat)radius;
- (id)initBoxWithBody:(ChipmunkBody *)body bb:(cpBB)bb radius:(cpFloat)radius;
@property(nonatomic, readonly) int count;
@property(nonatomic, readonly) cpFloat radius;
- (cpVect)getVertex:(int)index;
@end