Cornell Cocos
Cornell Extensions to Cocos2d
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
BoxObstacle Class Reference

#include <CUBoxObstacle.h>

Inheritance diagram for BoxObstacle:
SimpleObstacle Obstacle

Public Member Functions

const Size & getDimension () const
 
void setDimension (const Size &value)
 
void setDimension (float width, float height)
 
float getWidth () const
 
void setWidth (float value)
 
float getHeight () const
 
void setHeight (float value)
 
virtual void createFixtures () override
 
virtual void releaseFixtures () override
 
CC_CONSTRUCTOR_ACCESS _geometry (nullptr)
 
virtual bool init () override
 
virtual bool init (const Vec2 &pos) override
 
virtual bool init (const Vec2 &pos, const Size &size)
 
- Public Member Functions inherited from SimpleObstacle
virtual b2BodyType getBodyType () const override
 
virtual void setBodyType (b2BodyType value) override
 
virtual Vec2 getPosition () const override
 
virtual void setPosition (const Vec2 &value) override
 
virtual void setPosition (float x, float y) override
 
virtual float getX () const override
 
virtual void setX (float value) override
 
virtual float getY () const override
 
virtual void setY (float value) override
 
virtual float getAngle () const override
 
virtual void setAngle (float value) override
 
virtual Vec2 getLinearVelocity () const override
 
virtual void setLinearVelocity (const Vec2 &value) override
 
virtual void setLinearVelocity (float x, float y) override
 
virtual float getVX () const override
 
virtual void setVX (float value) override
 
virtual float getVY () const override
 
virtual void setVY (float value) override
 
virtual float getAngularVelocity () const override
 
virtual void setAngularVelocity (float value) override
 
virtual bool isActive () const override
 
virtual void setActive (bool value) override
 
virtual bool isAwake () const override
 
virtual void setAwake (bool value) override
 
virtual bool isSleepingAllowed () const override
 
virtual void setSleepingAllowed (bool value) override
 
virtual bool isBullet () const override
 
virtual void setBullet (bool value) override
 
virtual bool isFixedRotation () const override
 
virtual void setFixedRotation (bool value) override
 
virtual float getGravityScale () const override
 
virtual void setGravityScale (float value) override
 
virtual float getLinearDamping () const override
 
virtual void setLinearDamping (float value) override
 
virtual float getAngularDamping () const override
 
virtual void setAngularDamping (float value) override
 
virtual void setDensity (float value) override
 
virtual void setFriction (float value) override
 
virtual void setRestitution (float value) override
 
virtual void setSensor (bool value) override
 
virtual void setFilterData (b2Filter value) override
 
virtual Vec2 getCentroid () const override
 
virtual void setCentroid (const Vec2 &value) override
 
virtual void setCentroid (float x, float y) override
 
virtual float getInertia () const override
 
virtual void setInertia (float value) override
 
virtual float getMass () const override
 
virtual void setMass (float value) override
 
virtual void resetMass () override
 
virtual b2Body * getBody () const override
 
virtual bool activatePhysics (b2World &world) override
 
virtual void deactivatePhysics (b2World &world) override
 
virtual void update (float delta) override
 
int getPositionSnap ()
 
void setPositionSnap (unsigned int snap)
 
int getAngleSnap ()
 
void setAngleSnap (unsigned int snap)
 
virtual void positionSceneNode () override
 
virtual void positionDebugNode () override
 
CC_CONSTRUCTOR_ACCESS _body (nullptr)
 
virtual ~SimpleObstacle ()
 
- Public Member Functions inherited from Obstacle
void setBodyState (const b2Body &body)
 
float getDensity () const
 
float getFriction () const
 
float getRestitution () const
 
bool isSensor () const
 
b2Filter getFilterData () const
 
bool isRemoved () const
 
void markRemoved (bool value)
 
bool isDirty () const
 
void markDirty (bool value)
 
const Vec2 & getDrawScale () const
 
virtual void setDrawScale (const Vec2 &value)
 
virtual void setDrawScale (float x, float y)
 
Node * getSceneNode () const
 
void setSceneNode (Node *node)
 
WireNodegetDebugNode () const
 
void setDebugNode (WireNode *node)
 
string getName () const
 
void setName (string value)
 
string toString () const
 
virtual ~Obstacle ()
 

Static Public Member Functions

static BoxObstaclecreate ()
 
static BoxObstaclecreate (const Vec2 &pos)
 
static BoxObstaclecreate (const Vec2 &pos, const Size &size)
 

Public Attributes

CC_CONSTRUCTOR_ACCESS __pad0__: BoxObstacle(void) : SimpleObstacle()
 
- Public Attributes inherited from SimpleObstacle
CC_CONSTRUCTOR_ACCESS __pad0__: SimpleObstacle() : Obstacle()
 
- Public Attributes inherited from Obstacle
CC_CONSTRUCTOR_ACCESS __pad0__: Obstacle(void)
 

Protected Member Functions

void resize (const Size &size)
 
virtual void resetDebugNode () override
 
- Protected Member Functions inherited from Obstacle
virtual void resetSceneNode ()
 

Protected Attributes

b2PolygonShape _shape
 
b2Fixture * _geometry
 
Size _dimension
 
- Protected Attributes inherited from SimpleObstacle
b2Body * _body
 
int _posSnap
 
unsigned long _posFact
 
int _angSnap
 
unsigned long _angFact
 
- Protected Attributes inherited from Obstacle
b2BodyDef _bodyinfo
 
b2FixtureDef _fixture
 
b2MassData _massdata
 
Vec2 _drawScale
 
bool _masseffect
 
Node * _node
 
WireNode_debug
 
string _tag
 

Detailed Description

Box-shaped model to support collisions.

Given the name Box2D, this is your primary model class. Most of the time, unless it is a player controlled avatar, you do not even need to subclass BoxObject. Look through some of our samples and see how many times we use this class.

Unless otherwise specified, the center of mass is as the center.

Member Function Documentation

NS_CC_BEGIN BoxObstacle * BoxObstacle::create ( )
static

Creates a new box object at the origin with no size.

Returns
An autoreleased physics object

Creates a new box object at the origin and no size.

Returns
An autoreleased physics object
BoxObstacle * BoxObstacle::create ( const Vec2 &  pos)
static

Creates a new box object at the given point with no size.

The scene graph is completely decoupled from the physics system. The node does not have to be the same size as the physics body. We only guarantee that the scene graph node is positioned correctly according to the drawing scale.

Parameters
posInitial position in world coordinates
Returns
An autoreleased physics object

Creates a new physics object at the given point with no size.

The scene graph is completely decoupled from the physics system. The node does not have to be the same size as the physics body. We only guarantee that the scene graph node is positioned correctly according to the drawing scale.

Parameters
posInitial position in world coordinates
Returns
An autoreleased physics object
BoxObstacle * BoxObstacle::create ( const Vec2 &  pos,
const Size &  size 
)
static

Creates a new box object of the given dimensions.

The scene graph is completely decoupled from the physics system. The node does not have to be the same size as the physics body. We only guarantee that the scene graph node is positioned correctly according to the drawing scale.

Parameters
posInitial position in world coordinates
sizeThe box size (width and height)
Returns
An autoreleased physics object
void BoxObstacle::createFixtures ( )
overridevirtual

Create new fixtures for this body, defining the shape

This is the primary method to override for custom physics objects

Reimplemented from SimpleObstacle.

const Size& BoxObstacle::getDimension ( ) const
inline

Returns the dimensions of this box

Returns
the dimensions of this box
float BoxObstacle::getHeight ( ) const
inline

Returns the box height

Returns
the box height
float BoxObstacle::getWidth ( ) const
inline

Returns the box width

Returns
the box width
virtual bool BoxObstacle::init ( )
inlineoverridevirtual

Initializes a new box object at the origin with no size.

Returns
true if the obstacle is initialized properly, false otherwise.

Reimplemented from Obstacle.

virtual bool BoxObstacle::init ( const Vec2 &  pos)
inlineoverridevirtual

Initializes a new box object at the given point with no size.

The scene graph is completely decoupled from the physics system. The node does not have to be the same size as the physics body. We only guarantee that the scene graph node is positioned correctly according to the drawing scale.

Parameters
posInitial position in world coordinates
Returns
true if the obstacle is initialized properly, false otherwise.

Reimplemented from Obstacle.

bool BoxObstacle::init ( const Vec2 &  pos,
const Size &  size 
)
virtual

Initializes a new box object of the given dimensions.

The scene graph is completely decoupled from the physics system. The node does not have to be the same size as the physics body. We only guarantee that the scene graph node is positioned correctly according to the drawing scale.

Parameters
posInitial position in world coordinates
sizeThe box size (width and height)
Returns
true if the obstacle is initialized properly, false otherwise.

Initializes a new box object of the given dimensions.

The scene graph is completely decoupled from the physics system. The node does not have to be the same size as the physics body. We only guarantee that the scene graph node is positioned correctly according to the drawing scale.

Parameters
posInitial position in world coordinates
sizeThe box size (width and height)
void BoxObstacle::releaseFixtures ( )
overridevirtual

Release the fixtures for this body, reseting the shape

This is the primary method to override for custom physics objects

Reimplemented from SimpleObstacle.

void BoxObstacle::resetDebugNode ( )
overrideprotectedvirtual

Redraws the outline of the physics fixtures to the debug node

The debug node is use to outline the fixtures attached to this object. This is very useful when the fixtures have a very different shape than the texture (e.g. a circular shape attached to a square texture).

Redraws the outline of the physics fixtures to the debug node

The debug node is use to outline the fixtures attached to this object. This is very useful when the fixtures have a very different shape than the texture (e.g. a circular shape attached to a square texture).

Unfortunately, the current implementation is very inefficient. Cocos2d does not batch drawnode commands like it does Sprites or PolygonSprites. Therefore, every distinct DrawNode is a distinct OpenGL call. This can really hurt framerate when debugging mode is on. Ideally, we would refactor this so that we only draw to a single, master draw node. However, this means that we would have to handle our own vertex transformations, instead of relying on the transforms in the scene graph.

Reimplemented from Obstacle.

void BoxObstacle::resize ( const Size &  size)
protected

Resets the polygon vertices in the shape to match the dimension.

This is an internal method and it does not mark the physics object as dirty.

Parameters
sizeThe new dimension (width and height)

Resets the polygon vertices in the shape to match the dimension.

Parameters
sizeThe new dimension (width and height)
void BoxObstacle::setDimension ( const Size &  value)
inline

Sets the dimensions of this box

Parameters
valuethe dimensions of this box
void BoxObstacle::setDimension ( float  width,
float  height 
)
inline

Sets the dimensions of this box

Parameters
widthThe width of this box
heightThe height of this box
void BoxObstacle::setHeight ( float  value)
inline

Sets the box height

Parameters
valuethe box height
void BoxObstacle::setWidth ( float  value)
inline

Sets the box width

Parameters
valuethe box width

Member Data Documentation

Size BoxObstacle::_dimension
protected

The width and height of the box

b2Fixture* BoxObstacle::_geometry
protected

A cache value for the fixture (for resizing)

b2PolygonShape BoxObstacle::_shape
protected

Shape information for this box


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