Cocos2d-x  4.0.0
Public Types | Public Member Functions | Static Public Member Functions | List of all members
PhysicsShape Class Referenceabstract

A shape for body. More...

Inherits Ref.

Inherited by PhysicsShapeCircle, PhysicsShapeEdgeChain, PhysicsShapeEdgePolygon, PhysicsShapeEdgeSegment, and PhysicsShapePolygon.

Public Types

enum  Type { , POLYGEN = POLYGON, EDGEPOLYGEN = EDGEPOLYGON }
 

Public Member Functions

PhysicsBodygetBody () const
 Get the body that this shape attaches.
 
Type getType () const
 Return this shape's type.
 
float getArea () const
 Return this shape's area.
 
float getMoment () const
 Get this shape's moment.
 
void setMoment (float moment)
 Set this shape's moment.
 
void setTag (int tag)
 Set this shape's tag.
 
int getTag () const
 Get this shape's tag.
 
float getMass () const
 Get the mass of this shape.
 
void setMass (float mass)
 Set this shape's mass.
 
float getDensity () const
 Get this shape's density.
 
void setDensity (float density)
 Set this shape's density.
 
float getRestitution () const
 Get this shape's restitution.
 
void setRestitution (float restitution)
 Set this shape's restitution.
 
float getFriction () const
 Get this shape's friction.
 
void setFriction (float friction)
 Set this shape's friction.
 
const PhysicsMaterial & getMaterial () const
 Get this shape's PhysicsMaterial object.
 
void setMaterial (const PhysicsMaterial &material)
 Set this shape's material.
 
virtual float calculateDefaultMoment ()
 Calculate the default moment value.
 
virtual Vec2 getOffset ()
 Get this shape's position offset.
 
virtual Vec2 getCenter ()
 Get this shape's center position.
 
bool containsPoint (const Vec2 &point) const
 Test point is inside this shape or not.
 
void setCategoryBitmask (int bitmask)
 Set a mask that defines which categories this physics body belongs to.
 
int getCategoryBitmask () const
 Get a mask that defines which categories this physics body belongs to.
 
void setContactTestBitmask (int bitmask)
 A mask that defines which categories of bodies cause intersection notifications with this physics body.
 
int getContactTestBitmask () const
 Get a mask that defines which categories of bodies cause intersection notifications with this physics body.
 
void setCollisionBitmask (int bitmask)
 A mask that defines which categories of physics bodies can collide with this physics body.
 
int getCollisionBitmask () const
 Get a mask that defines which categories of physics bodies can collide with this physics body.
 
void setGroup (int group)
 Set the group of body.
 
int getGroup ()
 Get the group of body.
 
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership.
 
void release ()
 Releases the ownership immediately.
 
Refautorelease ()
 Releases the ownership sometime soon automatically.
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count.
 
virtual ~Ref ()
 Destructor.
 

Static Public Member Functions

static void recenterPoints (Vec2 *points, int count, const Vec2 &center=Vec2::ZERO)
 Move the points to the center.
 
static Vec2 getPolygonCenter (const Vec2 *points, int count)
 Get center of the polygon points.
 

Additional Inherited Members

- Public Attributes inherited from Ref
unsigned int _ID
 object id, ScriptSupport need public _ID
 
int _luaID
 Lua reference id.
 
void * _scriptObject
 scriptObject, support for swift
 
bool _rooted
 When true, it means that the object was already rooted.
 

Detailed Description

A shape for body.

You do not create PhysicsWorld objects directly, instead, you can view PhysicsBody to see how to create it.

Member Enumeration Documentation

enum Type
Enumerator
POLYGEN 
EDGEPOLYGEN 

Member Function Documentation

PhysicsBody* getBody ( ) const
inline

Get the body that this shape attaches.

Returns
A PhysicsBody object pointer.
Type getType ( ) const
inline

Return this shape's type.

Returns
A Type object.
float getArea ( ) const
inline

Return this shape's area.

Returns
A float number.
float getMoment ( ) const
inline

Get this shape's moment.

Returns
A float number.
void setMoment ( float  moment)

Set this shape's moment.

It will change the body's moment this shape attaches.

Parameters
momentA float number.
void setTag ( int  tag)
inline

Set this shape's tag.

Parameters
tagAn integer number that identifies a shape object.
int getTag ( ) const
inline

Get this shape's tag.

Returns
An integer number.
float getMass ( ) const
inline

Get the mass of this shape.

Returns
A float number.
void setMass ( float  mass)

Set this shape's mass.

It will change the body's mass this shape attaches.

Parameters
massA float number.
float getDensity ( ) const
inline

Get this shape's density.

Returns
A float number.
void setDensity ( float  density)

Set this shape's density.

It will change the body's mass this shape attaches.

Parameters
densityA float number.
float getRestitution ( ) const
inline

Get this shape's restitution.

Returns
A float number.
void setRestitution ( float  restitution)

Set this shape's restitution.

It will change the shape's elasticity.

Parameters
restitutionA float number.
float getFriction ( ) const
inline

Get this shape's friction.

Returns
A float number.
void setFriction ( float  friction)

Set this shape's friction.

It will change the shape's friction.

Parameters
frictionA float number.
const PhysicsMaterial& getMaterial ( ) const
inline

Get this shape's PhysicsMaterial object.

Returns
A PhysicsMaterial object reference.
void setMaterial ( const PhysicsMaterial &  material)

Set this shape's material.

It will change the shape's mass, elasticity and friction.

Parameters
materialA PhysicsMaterial object.
virtual float calculateDefaultMoment ( )
inlinevirtual

Calculate the default moment value.

This function should be overridden in inherit classes.

Returns
A float number, equals 0.0.

Reimplemented in PhysicsShapePolygon, and PhysicsShapeCircle.

virtual Vec2 getOffset ( )
inlinevirtual

Get this shape's position offset.

This function should be overridden in inherit classes.

Returns
A Vec2 object.

Reimplemented in PhysicsShapeEdgeBox, PhysicsShapeBox, and PhysicsShapeCircle.

virtual Vec2 getCenter ( )
inlinevirtual

Get this shape's center position.

This function should be overridden in inherit classes.

Returns
A Vec2 object.

Reimplemented in PhysicsShapeEdgeChain, PhysicsShapeEdgePolygon, PhysicsShapeEdgeSegment, and PhysicsShapePolygon.

bool containsPoint ( const Vec2 point) const

Test point is inside this shape or not.

Parameters
pointA Vec2 object.
Returns
A bool object.
static void recenterPoints ( Vec2 points,
int  count,
const Vec2 center = Vec2::ZERO 
)
static

Move the points to the center.

Parameters
pointsA Vec2 object pointer.
countAn integer number.
centerA Vec2 object, default value is Vec2(0,0).
static Vec2 getPolygonCenter ( const Vec2 points,
int  count 
)
static

Get center of the polygon points.

Parameters
pointsA Vec2 object pointer.
countAn integer number.
Returns
A Vec2 object.
void setCategoryBitmask ( int  bitmask)
inline

Set a mask that defines which categories this physics body belongs to.

Every physics body in a scene can be assigned to up to 32 different categories, each corresponding to a bit in the bit mask. You define the mask values used in your game. In conjunction with the collisionBitMask and contactTestBitMask properties, you define which physics bodies interact with each other and when your game is notified of these interactions.

Parameters
bitmaskAn integer number, the default value is 0xFFFFFFFF (all bits set).
int getCategoryBitmask ( ) const
inline

Get a mask that defines which categories this physics body belongs to.

Returns
An integer number.
void setContactTestBitmask ( int  bitmask)
inline

A mask that defines which categories of bodies cause intersection notifications with this physics body.

When two bodies share the same space, each body's category mask is tested against the other body's contact mask by performing a logical AND operation. If either comparison results in a non-zero value, an PhysicsContact object is created and passed to the physics world’s delegate. For best performance, only set bits in the contacts mask for interactions you are interested in.

Parameters
bitmaskAn integer number, the default value is 0x00000000 (all bits cleared).
int getContactTestBitmask ( ) const
inline

Get a mask that defines which categories of bodies cause intersection notifications with this physics body.

Returns
An integer number.
void setCollisionBitmask ( int  bitmask)
inline

A mask that defines which categories of physics bodies can collide with this physics body.

When two physics bodies contact each other, a collision may occur. This body's collision mask is compared to the other body's category mask by performing a logical AND operation. If the result is a non-zero value, then this body is affected by the collision. Each body independently chooses whether it wants to be affected by the other body. For example, you might use this to avoid collision calculations that would make negligible changes to a body's velocity.

Parameters
bitmaskAn integer number, the default value is 0xFFFFFFFF (all bits set).
int getCollisionBitmask ( ) const
inline

Get a mask that defines which categories of physics bodies can collide with this physics body.

Returns
An integer number.
void setGroup ( int  group)

Set the group of body.

Collision groups let you specify an integral group index. You can have all fixtures with the same group index always collide (positive index) or never collide (negative index).

Parameters
groupAn integer number, it have high priority than bit masks.
int getGroup ( )
inline

Get the group of body.

Returns
An integer number.

The documentation for this class was generated from the following file: