47 #ifndef __CU_OBSTACLE_H__
48 #define __CU_OBSTACLE_H__
50 #include <Box2D/Dynamics/b2Body.h>
51 #include <Box2D/Dynamics/b2Fixture.h>
53 #include <cugl/2d/CUWireNode.h>
100 #pragma mark Scene Graph Internals
129 #pragma mark Constructors
169 #pragma mark BodyDef Methods
192 virtual void setBodyType(b2BodyType value) { _bodyinfo.type = value; }
221 virtual void setPosition(
float x,
float y) { _bodyinfo.position.Set(x,y); }
228 virtual float getX()
const {
return _bodyinfo.position.x; }
235 virtual void setX(
float value) { _bodyinfo.position.x = value; }
242 virtual float getY()
const {
return _bodyinfo.position.y; }
249 virtual void setY(
float value) { _bodyinfo.position.y = value; }
258 virtual float getAngle()
const {
return _bodyinfo.angle; }
265 virtual void setAngle(
float value) { _bodyinfo.angle = value; }
277 return Vec2(_bodyinfo.linearVelocity.x,_bodyinfo.linearVelocity.y);
303 virtual float getVX()
const {
return _bodyinfo.linearVelocity.x; }
310 virtual void setVX(
float value) { _bodyinfo.linearVelocity.x = value; }
317 virtual float getVY()
const {
return _bodyinfo.linearVelocity.y; }
324 virtual void setVY(
float value) { _bodyinfo.linearVelocity.y = value; }
352 virtual bool isActive()
const {
return _bodyinfo.active; }
364 virtual void setActive(
bool value) { _bodyinfo.active = value; }
377 virtual bool isAwake()
const {
return _bodyinfo.awake; }
390 virtual void setAwake(
bool value) { _bodyinfo.awake = value; }
434 virtual bool isBullet()
const {
return _bodyinfo.bullet; }
452 virtual void setBullet(
bool value) { _bodyinfo.bullet = value; }
566 #pragma mark FixtureDef Methods
587 virtual void setDensity(
float value) { _fixture.density = value; }
613 virtual void setFriction(
float value) { _fixture.friction = value; }
650 bool isSensor()
const {
return _fixture.isSensor; }
661 virtual void setSensor(
bool value) { _fixture.isSensor = value; }
695 #pragma mark MassData Methods
752 virtual float getMass()
const {
return _massdata.mass; }
761 virtual void setMass(
float value);
770 #pragma mark Garbage Collection
814 #pragma mark Physics Methods
849 #pragma mark Update Methods
879 const std::function<void(Obstacle* obstacle)>&
getListener()
const {
895 _listener = listener;
899 #pragma mark Debugging Methods
918 void setName(std::string value) { _tag = value; }
946 #pragma mark Scene Graph Methods
1031 virtual void setDebugScene(
const std::shared_ptr<Node>& node);
Definition: CUWireNode.h:107
virtual void setFixedRotation(bool value)
Definition: CUObstacle.h:470
virtual float getY() const
Definition: CUObstacle.h:242
float x
Definition: CUVec2.h:66
virtual bool isSleepingAllowed() const
Definition: CUObstacle.h:403
float y
Definition: CUVec2.h:68
void setListener(const std::function< void(Obstacle *obstacle)> &listener)
Definition: CUObstacle.h:894
std::shared_ptr< Node > _scene
Definition: CUObstacle.h:88
virtual void setAngle(float value)
Definition: CUObstacle.h:265
void setName(std::string value)
Definition: CUObstacle.h:918
virtual void setAngularVelocity(float value)
Definition: CUObstacle.h:340
virtual b2Body * getBody()
Definition: CUObstacle.h:824
virtual float getMass() const
Definition: CUObstacle.h:752
virtual float getX() const
Definition: CUObstacle.h:228
virtual float getInertia() const
Definition: CUObstacle.h:733
virtual void setAngularDamping(float value)
Definition: CUObstacle.h:554
virtual void setBodyType(b2BodyType value)
Definition: CUObstacle.h:192
void markDirty(bool value)
Definition: CUObstacle.h:811
virtual float getGravityScale() const
Definition: CUObstacle.h:480
b2MassData _massdata
Definition: CUObstacle.h:83
virtual float getVY() const
Definition: CUObstacle.h:317
virtual bool activatePhysics(b2World &world)
Definition: CUObstacle.h:836
virtual bool isBullet() const
Definition: CUObstacle.h:434
virtual bool isActive() const
Definition: CUObstacle.h:352
virtual void setPosition(float x, float y)
Definition: CUObstacle.h:221
virtual float getVX() const
Definition: CUObstacle.h:303
virtual void setVY(float value)
Definition: CUObstacle.h:324
virtual void setDebugScene(const std::shared_ptr< Node > &node)
virtual void setActive(bool value)
Definition: CUObstacle.h:364
virtual float getAngle() const
Definition: CUObstacle.h:258
Color4 getDebugColor() const
Definition: CUObstacle.h:955
virtual void setFilterData(b2Filter value)
Definition: CUObstacle.h:691
std::shared_ptr< WireNode > _debug
Definition: CUObstacle.h:90
virtual void setSleepingAllowed(bool value)
Definition: CUObstacle.h:416
virtual void setCentroid(const Vec2 &value)
Definition: CUObstacle.h:715
virtual void setDensity(float value)
Definition: CUObstacle.h:587
virtual void setSensor(bool value)
Definition: CUObstacle.h:661
virtual void updateDebug()
virtual void setDebugColor(Color4 color)
std::string _tag
Definition: CUObstacle.h:94
float getFriction() const
Definition: CUObstacle.h:600
b2Filter getFilterData() const
Definition: CUObstacle.h:675
Node * getDebugScene() const
Definition: CUObstacle.h:987
void markRemoved(bool value)
Definition: CUObstacle.h:789
virtual void setY(float value)
Definition: CUObstacle.h:249
friend std::ostream & operator<<(std::ostream &os, const Obstacle &obj)
const std::function< void(Obstacle *obstacle)> & getListener() const
Definition: CUObstacle.h:879
b2BodyDef _bodyinfo
Definition: CUObstacle.h:79
virtual void setFriction(float value)
Definition: CUObstacle.h:613
virtual void setMass(float value)
bool isDirty() const
Definition: CUObstacle.h:800
Color4 _dcolor
Definition: CUObstacle.h:92
bool hasDebug()
Definition: CUObstacle.h:1041
virtual void setRestitution(float value)
Definition: CUObstacle.h:639
void setBodyState(const b2Body &body)
float getRestitution() const
Definition: CUObstacle.h:626
float getDensity() const
Definition: CUObstacle.h:576
virtual void setBullet(bool value)
Definition: CUObstacle.h:452
bool _masseffect
Definition: CUObstacle.h:85
virtual void setGravityScale(float value)
Definition: CUObstacle.h:490
std::function< void(Obstacle *obstacle)> _listener
Definition: CUObstacle.h:97
bool isSensor() const
Definition: CUObstacle.h:650
b2FixtureDef _fixture
Definition: CUObstacle.h:81
virtual Vec2 getCentroid() const
Definition: CUObstacle.h:705
virtual void setVX(float value)
Definition: CUObstacle.h:310
virtual float getAngularDamping() const
Definition: CUObstacle.h:538
virtual void setLinearVelocity(float x, float y)
Definition: CUObstacle.h:296
bool isRemoved() const
Definition: CUObstacle.h:779
std::string getName() const
Definition: CUObstacle.h:908
WireNode * getDebugNode() const
Definition: CUObstacle.h:1008
virtual float getAngularVelocity() const
Definition: CUObstacle.h:333
Definition: CUObstacle.h:76
virtual void setLinearVelocity(const Vec2 &value)
Definition: CUObstacle.h:288
virtual void setPosition(const Vec2 &value)
Definition: CUObstacle.h:213
virtual bool isAwake() const
Definition: CUObstacle.h:377
virtual void setX(float value)
Definition: CUObstacle.h:235
virtual void resetDebug()
Definition: CUObstacle.h:108
virtual Vec2 getLinearVelocity() const
Definition: CUObstacle.h:276
virtual float getLinearDamping() const
Definition: CUObstacle.h:506
Definition: CUColor4.h:1104
virtual void setAwake(bool value)
Definition: CUObstacle.h:390
std::string toString() const
Definition: CUAnimationNode.h:52
static const Vec2 ZERO
Definition: CUVec2.h:71
virtual bool init()
Definition: CUObstacle.h:156
virtual bool isFixedRotation() const
Definition: CUObstacle.h:461
virtual Vec2 getPosition() const
Definition: CUObstacle.h:203
virtual void resetMass()
Definition: CUObstacle.h:766
virtual void setInertia(float value)
virtual b2BodyType getBodyType() const
Definition: CUObstacle.h:180
virtual void update(float delta)
Definition: CUObstacle.h:863
virtual void deactivatePhysics(b2World &world)
Definition: CUObstacle.h:845
virtual void setLinearDamping(float value)
Definition: CUObstacle.h:522