45 #ifndef __CU_SIMPLE_OBSTACLE_H__
46 #define __CU_SIMPLE_OBSTACLE_H__
48 #include "CUObstacle.h"
79 #pragma mark Constructors
89 _posSnap = _angSnap = -1;
102 CUAssertLog(_body ==
nullptr,
"You must deactive physics before deleting an object");
107 #pragma mark BodyDef Methods
119 return (_body !=
nullptr ? _body->GetType() :
_bodyinfo.type);
133 if (_body !=
nullptr) {
134 _body->SetType(value);
150 if (_body !=
nullptr) {
151 return Vec2(_body->GetPosition().x,_body->GetPosition().y);
174 if (_body !=
nullptr) {
175 _body->SetTransform(b2Vec2(x,y),_body->GetAngle());
186 virtual float getX()
const override {
187 return (_body !=
nullptr ? _body->GetPosition().x :
_bodyinfo.position.x);
195 virtual void setX(
float value)
override {
196 if (_body !=
nullptr) {
197 _body->SetTransform(b2Vec2(value,_body->GetPosition().y),_body->GetAngle());
208 virtual float getY()
const override {
209 return (_body !=
nullptr ? _body->GetPosition().y :
_bodyinfo.position.y);
217 virtual void setY(
float value)
override {
218 if (_body !=
nullptr) {
219 _body->SetTransform(b2Vec2(_body->GetPosition().y,value),_body->GetAngle());
233 return (_body !=
nullptr ? _body->GetAngle() :
_bodyinfo.angle);
242 if (_body !=
nullptr) {
243 _body->SetTransform(_body->GetPosition(),value);
259 if (_body !=
nullptr) {
260 return Vec2(_body->GetLinearVelocity().x,_body->GetLinearVelocity().y);
283 if (_body !=
nullptr) {
284 _body->SetLinearVelocity(b2Vec2(x,y));
295 virtual float getVX()
const override {
296 if (_body !=
nullptr) {
297 return _body->GetLinearVelocity().x;
308 virtual void setVX(
float value)
override {
309 if (_body !=
nullptr) {
310 _body->SetLinearVelocity(b2Vec2(value,_body->GetLinearVelocity().y));
321 virtual float getVY()
const override {
322 if (_body !=
nullptr) {
323 return _body->GetLinearVelocity().y;
334 virtual void setVY(
float value)
override {
335 if (_body !=
nullptr) {
336 _body->SetLinearVelocity(b2Vec2(_body->GetLinearVelocity().x,value));
350 return (_body !=
nullptr ? _body->GetAngularVelocity() :
_bodyinfo.angularVelocity);
359 if (_body !=
nullptr) {
360 _body->SetAngularVelocity(value);
377 return (_body !=
nullptr ? _body->IsActive() :
_bodyinfo.active);
391 if (_body !=
nullptr) {
392 _body->SetActive(value);
410 return (_body !=
nullptr ? _body->IsAwake() :
_bodyinfo.awake);
425 if (_body !=
nullptr) {
426 _body->SetAwake(value);
444 return (_body !=
nullptr ? _body->IsSleepingAllowed() :
_bodyinfo.allowSleep);
459 if (_body !=
nullptr) {
460 _body->SetSleepingAllowed(value);
483 return (_body !=
nullptr ? _body->IsBullet() :
_bodyinfo.bullet);
503 if (_body !=
nullptr) {
504 _body->SetBullet(value);
518 return (_body !=
nullptr ? _body->IsFixedRotation() :
_bodyinfo.fixedRotation);
529 if (_body !=
nullptr) {
530 _body->SetFixedRotation(value);
545 return (_body !=
nullptr ? _body->GetGravityScale() :
_bodyinfo.gravityScale);
557 if (_body !=
nullptr) {
558 _body->SetGravityScale(value);
579 return (_body !=
nullptr ? _body->GetLinearDamping() :
_bodyinfo.linearDamping);
597 if (_body !=
nullptr) {
598 _body->SetLinearDamping(value);
619 return (_body !=
nullptr ? _body->GetAngularDamping() :
_bodyinfo.angularDamping);
637 if (_body !=
nullptr) {
638 _body->SetAngularDamping(value);
646 #pragma mark FixtureDef Methods
656 virtual void setDensity(
float value)
override;
693 virtual void setSensor(
bool value)
override;
713 #pragma mark MassData Methods
724 if (_body !=
nullptr) {
725 return Vec2(_body->GetLocalCenter().x,_body->GetLocalCenter().y);
749 if (_body !=
nullptr) {
763 return (_body !=
nullptr ? _body->GetInertia() :
_massdata.I);
776 if (_body !=
nullptr) {
789 return (_body !=
nullptr ? _body->GetMass() :
_massdata.mass);
801 if (_body !=
nullptr) {
811 if (_body !=
nullptr) {
812 _body->ResetMassData();
818 #pragma mark Physics Methods
878 virtual void update(
float delta)
override;
882 #pragma mark Render Snap
915 _posFact = (
unsigned long)(_posSnap >= 0 ? std::pow(10, snap) : 0);
950 _angFact = (
unsigned long)(_angSnap >= 0 ? std::pow(10, snap) : 0);
virtual void setX(float value) override
Definition: CUSimpleObstacle.h:195
virtual void setY(float value) override
Definition: CUSimpleObstacle.h:217
float x
Definition: CUVec2.h:66
virtual b2Body * getBody() override
Definition: CUSimpleObstacle.h:828
virtual bool isAwake() const override
Definition: CUSimpleObstacle.h:409
unsigned long _angFact
Definition: CUSimpleObstacle.h:75
float y
Definition: CUVec2.h:68
virtual void setBodyType(b2BodyType value) override
Definition: CUSimpleObstacle.h:132
virtual void setFixedRotation(bool value) override
Definition: CUSimpleObstacle.h:528
virtual float getAngle() const override
Definition: CUSimpleObstacle.h:232
virtual void setActive(bool value) override
Definition: CUSimpleObstacle.h:390
virtual bool activatePhysics(b2World &world) override
virtual void setAngularDamping(float value) override
Definition: CUSimpleObstacle.h:636
virtual void setPosition(const Vec2 &value) override
Definition: CUSimpleObstacle.h:165
virtual void setMass(float value) override
Definition: CUSimpleObstacle.h:799
virtual float getInertia() const override
Definition: CUSimpleObstacle.h:762
virtual void setSleepingAllowed(bool value) override
Definition: CUSimpleObstacle.h:458
b2MassData _massdata
Definition: CUObstacle.h:83
virtual void setInertia(float value) override
Definition: CUSimpleObstacle.h:774
int getAngleSnap()
Definition: CUSimpleObstacle.h:932
virtual float getVY() const override
Definition: CUSimpleObstacle.h:321
virtual void updateDebug() override
virtual void setPosition(float x, float y) override
Definition: CUSimpleObstacle.h:173
virtual Vec2 getPosition() const override
Definition: CUSimpleObstacle.h:149
virtual float getMass() const override
Definition: CUSimpleObstacle.h:788
virtual void setLinearVelocity(float x, float y) override
Definition: CUSimpleObstacle.h:282
virtual void setVX(float value) override
Definition: CUSimpleObstacle.h:308
virtual void setCentroid(const Vec2 &value) override
Definition: CUSimpleObstacle.h:739
int getPositionSnap()
Definition: CUSimpleObstacle.h:897
virtual void setVY(float value) override
Definition: CUSimpleObstacle.h:334
virtual void setAwake(bool value) override
Definition: CUSimpleObstacle.h:424
virtual void setCentroid(const Vec2 &value)
Definition: CUObstacle.h:715
virtual bool isBullet() const override
Definition: CUSimpleObstacle.h:482
int _posSnap
Definition: CUSimpleObstacle.h:69
virtual void deactivatePhysics(b2World &world) override
virtual float getAngularDamping() const override
Definition: CUSimpleObstacle.h:618
Definition: CUSimpleObstacle.h:63
virtual bool isActive() const override
Definition: CUSimpleObstacle.h:376
virtual void setFriction(float value) override
virtual void setGravityScale(float value) override
Definition: CUSimpleObstacle.h:556
virtual float getY() const override
Definition: CUSimpleObstacle.h:208
virtual float getVX() const override
Definition: CUSimpleObstacle.h:295
virtual void releaseFixtures()
Definition: CUSimpleObstacle.h:863
b2BodyDef _bodyinfo
Definition: CUObstacle.h:79
virtual void setMass(float value)
void setPositionSnap(unsigned int snap)
Definition: CUSimpleObstacle.h:913
virtual void setAngularVelocity(float value) override
Definition: CUSimpleObstacle.h:358
virtual void resetMass() override
Definition: CUSimpleObstacle.h:809
int _angSnap
Definition: CUSimpleObstacle.h:73
virtual Vec2 getCentroid() const override
Definition: CUSimpleObstacle.h:723
virtual float getGravityScale() const override
Definition: CUSimpleObstacle.h:544
virtual float getAngularVelocity() const override
Definition: CUSimpleObstacle.h:349
virtual ~SimpleObstacle()
Definition: CUSimpleObstacle.h:101
virtual void update(float delta) override
virtual float getLinearDamping() const override
Definition: CUSimpleObstacle.h:578
virtual bool isFixedRotation() const override
Definition: CUSimpleObstacle.h:517
Definition: CUObstacle.h:76
virtual void setBullet(bool value) override
Definition: CUSimpleObstacle.h:502
virtual void setRestitution(float value) override
SimpleObstacle()
Definition: CUSimpleObstacle.h:88
virtual void setLinearDamping(float value) override
Definition: CUSimpleObstacle.h:596
virtual void setAngle(float value) override
Definition: CUSimpleObstacle.h:241
virtual b2BodyType getBodyType() const override
Definition: CUSimpleObstacle.h:118
b2Body * _body
Definition: CUSimpleObstacle.h:66
void setAngleSnap(unsigned int snap)
Definition: CUSimpleObstacle.h:948
virtual Vec2 getLinearVelocity() const override
Definition: CUSimpleObstacle.h:258
Definition: CUAnimationNode.h:52
virtual void setSensor(bool value) override
virtual void setDensity(float value) override
virtual bool isSleepingAllowed() const override
Definition: CUSimpleObstacle.h:443
virtual void resetMass()
Definition: CUObstacle.h:766
virtual void setInertia(float value)
virtual void createFixtures()
Definition: CUSimpleObstacle.h:856
unsigned long _posFact
Definition: CUSimpleObstacle.h:71
virtual void setFilterData(b2Filter value) override
virtual float getX() const override
Definition: CUSimpleObstacle.h:186
virtual void setCentroid(float x, float y) override
Definition: CUSimpleObstacle.h:747
virtual void setLinearVelocity(const Vec2 &value) override
Definition: CUSimpleObstacle.h:274