forked from vanderlin/ofxBox2d
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathofxBox2dBaseShape.h
113 lines (74 loc) · 2.74 KB
/
ofxBox2dBaseShape.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#pragma once
#include "ofMain.h"
#include "Box2d/Box2D.h"
#include "ofxBox2dUtils.h"
class ofxBox2dBaseShape {
public:
b2FixtureDef fixture;
b2BodyDef bodyDef;
b2Body* body;
bool alive;
bool setMassFromShape;
float density;
float bounce;
float friction;
ofxBox2dBaseShape();
//----------------------------------------
~ofxBox2dBaseShape();
//----------------------------------------
bool isBody();
//----------------------------------------
static bool shouldRemove(ofPtr<ofxBox2dBaseShape> shape);
static bool shouldRemoveOffScreen(ofPtr<ofxBox2dBaseShape> shape);
bool isFixed();
bool isSleeping();
//----------------------------------------
b2World* getWorld();
//----------------------------------------
virtual void create();
//------------------------------------------------
virtual void setBounce(float val);
//------------------------------------------------
virtual void setDensity(float val);
//----------------------------------------
virtual void setFriction(float val);
//------------------------------------------------
virtual void setPhysics(float density, float bounce, float friction);
//------------------------------------------------
void* setData(void*data);
//------------------------------------------------
void* getData();
//------------------------------------------------
virtual void setFilterData(b2Filter filter);
//------------------------------------------------
virtual void enableGravity(bool b);
//------------------------------------------------
virtual void setFixedRotation(bool b);
virtual void setRotationFriction(float f);
float getRotation();
void setRotation(float angle);
//------------------------------------------------
virtual void setPosition(float x, float y);
virtual void setPosition(ofVec2f p);
//------------------------------------------------
ofVec2f getPosition();
ofVec2f getB2DPosition();
//------------------------------------------------
virtual void setVelocity(float x, float y);
virtual void setVelocity(ofVec2f p);
ofVec2f getVelocity();
//------------------------------------------------
virtual void setDamping(float f);
virtual void setDamping(float fx, float fy);
//------------------------------------------------
virtual void addForce(ofVec2f frc, float scale);
//------------------------------------------------
virtual void addImpulseForce(ofVec2f pt, ofVec2f amt);
//------------------------------------------------
virtual void addRepulsionForce(ofVec2f pt, float radius, float amt);
//------------------------------------------------
virtual void destroy();
//------------------------------------------------
virtual void update();
virtual void draw();
};