Skip to content

Commit 4ccf0e3

Browse files
committed
preparing for physx and angelscript, refactoring
1 parent e924e8f commit 4ccf0e3

12 files changed

+139
-197
lines changed

premake4.lua

+10-5
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ solution("qor")
1818
"ILU",
1919
"openal",
2020
"alut",
21-
"Newton",
22-
"dJointLibrary",
21+
"PhysX3Common",
22+
"PhysX3",
23+
"PhysX3Cooking",
24+
"PhysX3CharacterKinematic",
25+
--"Newton",
26+
--"dJointLibrary",
2327
--"BulletSoftBody",
2428
--"BulletDynamics",
2529
--"BulletCollision",
@@ -30,8 +34,9 @@ solution("qor")
3034
"ftgl",
3135
"boost_system",
3236
"boost_filesystem",
33-
"lua5.1",
34-
"luabind"
37+
--"lua5.1",
38+
--"luabind"
39+
"angelscript"
3540
}
3641
files {
3742
"src/**.h",
@@ -56,7 +61,7 @@ solution("qor")
5661
libdirs {"third_party/lib/"}
5762

5863
configuration { "gmake" }
59-
buildoptions { "-std=c++0x" }
64+
buildoptions { "-fno-strict-aliasing -std=c++0x" }
6065
linkoptions { "" }
6166
configuration {}
6267

qor.make

+8-8
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ ifeq ($(config),debug)
2626
DEFINES += -DDEBUG
2727
INCLUDES += -I/usr/include/freetype2 -I/usr/include/newton -Ithird_party/include
2828
CPPFLAGS += -MMD -MP $(DEFINES) $(INCLUDES)
29-
CFLAGS += $(CPPFLAGS) $(ARCH) -g -std=c++0x
29+
CFLAGS += $(CPPFLAGS) $(ARCH) -g -fno-strict-aliasing -std=c++0x
3030
CXXFLAGS += $(CFLAGS)
3131
LDFLAGS += -Lthird_party/lib
32-
LIBS += -lGL -lGLU -lSDL -lSDLmain -lGLEW -lassimp -lIL -lILU -lopenal -lalut -lNewton -ldJointLibrary -lLinearMath -logg -lvorbis -lvorbisfile -lftgl -lboost_system -lboost_filesystem -llua5.1 -lluabind
32+
LIBS += -lGL -lGLU -lSDL -lSDLmain -lGLEW -lassimp -lIL -lILU -lopenal -lalut -lPhysX3Common -lPhysX3 -lPhysX3Cooking -lPhysX3CharacterKinematic -lLinearMath -logg -lvorbis -lvorbisfile -lftgl -lboost_system -lboost_filesystem -langelscript
3333
RESFLAGS += $(DEFINES) $(INCLUDES)
3434
LDDEPS +=
3535
LINKCMD = $(CXX) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(ARCH) $(LIBS)
@@ -48,10 +48,10 @@ ifeq ($(config),release)
4848
DEFINES += -DNDEBUG
4949
INCLUDES += -I/usr/include/freetype2 -I/usr/include/newton -Ithird_party/include
5050
CPPFLAGS += -MMD -MP $(DEFINES) $(INCLUDES)
51-
CFLAGS += $(CPPFLAGS) $(ARCH) -O2 -std=c++0x
51+
CFLAGS += $(CPPFLAGS) $(ARCH) -O2 -fno-strict-aliasing -std=c++0x
5252
CXXFLAGS += $(CFLAGS)
5353
LDFLAGS += -s -Lthird_party/lib
54-
LIBS += -lGL -lGLU -lSDL -lSDLmain -lGLEW -lassimp -lIL -lILU -lopenal -lalut -lNewton -ldJointLibrary -lLinearMath -logg -lvorbis -lvorbisfile -lftgl -lboost_system -lboost_filesystem -llua5.1 -lluabind
54+
LIBS += -lGL -lGLU -lSDL -lSDLmain -lGLEW -lassimp -lIL -lILU -lopenal -lalut -lPhysX3Common -lPhysX3 -lPhysX3Cooking -lPhysX3CharacterKinematic -lLinearMath -logg -lvorbis -lvorbisfile -lftgl -lboost_system -lboost_filesystem -langelscript
5555
RESFLAGS += $(DEFINES) $(INCLUDES)
5656
LDDEPS +=
5757
LINKCMD = $(CXX) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(ARCH) $(LIBS)
@@ -67,7 +67,6 @@ OBJECTS := \
6767
$(OBJDIR)/Filesystem.o \
6868
$(OBJDIR)/NodeFactory.o \
6969
$(OBJDIR)/Scene.o \
70-
$(OBJDIR)/Navigation.o \
7170
$(OBJDIR)/EnvironmentNode.o \
7271
$(OBJDIR)/Console.o \
7372
$(OBJDIR)/Mesh.o \
@@ -86,6 +85,7 @@ OBJECTS := \
8685
$(OBJDIR)/PropertyList.o \
8786
$(OBJDIR)/Physics.o \
8887
$(OBJDIR)/Node.o \
88+
$(OBJDIR)/Animation.o \
8989
$(OBJDIR)/Settings.o \
9090
$(OBJDIR)/ShadowBuffer.o \
9191
$(OBJDIR)/Developer.o \
@@ -180,9 +180,6 @@ $(OBJDIR)/NodeFactory.o: src/NodeFactory.cpp
180180
$(OBJDIR)/Scene.o: src/Scene.cpp
181181
@echo $(notdir $<)
182182
$(SILENT) $(CXX) $(CXXFLAGS) -o "$@" -c "$<"
183-
$(OBJDIR)/Navigation.o: src/Navigation.cpp
184-
@echo $(notdir $<)
185-
$(SILENT) $(CXX) $(CXXFLAGS) -o "$@" -c "$<"
186183
$(OBJDIR)/EnvironmentNode.o: src/EnvironmentNode.cpp
187184
@echo $(notdir $<)
188185
$(SILENT) $(CXX) $(CXXFLAGS) -o "$@" -c "$<"
@@ -237,6 +234,9 @@ $(OBJDIR)/Physics.o: src/Physics.cpp
237234
$(OBJDIR)/Node.o: src/Node.cpp
238235
@echo $(notdir $<)
239236
$(SILENT) $(CXX) $(CXXFLAGS) -o "$@" -c "$<"
237+
$(OBJDIR)/Animation.o: src/Animation.cpp
238+
@echo $(notdir $<)
239+
$(SILENT) $(CXX) $(CXXFLAGS) -o "$@" -c "$<"
240240
$(OBJDIR)/Settings.o: src/Settings.cpp
241241
@echo $(notdir $<)
242242
$(SILENT) $(CXX) $(CXXFLAGS) -o "$@" -c "$<"

qor.vcxproj

+5-6
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
<AdditionalIncludeDirectories>third_party\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
6767
</ResourceCompile>
6868
<Link>
69-
<AdditionalDependencies>GL.lib;GLU.lib;SDL.lib;SDLmain.lib;GLEW.lib;assimp.lib;IL.lib;ILU.lib;openal.lib;alut.lib;Newton.lib;dJointLibrary.lib;LinearMath.lib;ogg.lib;vorbis.lib;vorbisfile.lib;ftgl.lib;boost_system.lib;boost_filesystem.lib;lua5.1.lib;luabind.lib;%(AdditionalDependencies)</AdditionalDependencies>
69+
<AdditionalDependencies>GL.lib;GLU.lib;SDL.lib;SDLmain.lib;GLEW.lib;assimp.lib;IL.lib;ILU.lib;openal.lib;alut.lib;PhysX3Common.lib;PhysX3.lib;PhysX3Cooking.lib;PhysX3CharacterKinematic.lib;LinearMath.lib;ogg.lib;vorbis.lib;vorbisfile.lib;ftgl.lib;boost_system.lib;boost_filesystem.lib;angelscript.lib;%(AdditionalDependencies)</AdditionalDependencies>
7070
<OutputFile>$(OutDir)qor.exe</OutputFile>
7171
<AdditionalLibraryDirectories>third_party\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
7272
<SubSystem>Windows</SubSystem>
@@ -94,7 +94,7 @@
9494
<AdditionalIncludeDirectories>third_party\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
9595
</ResourceCompile>
9696
<Link>
97-
<AdditionalDependencies>GL.lib;GLU.lib;SDL.lib;SDLmain.lib;GLEW.lib;assimp.lib;IL.lib;ILU.lib;openal.lib;alut.lib;Newton.lib;dJointLibrary.lib;LinearMath.lib;ogg.lib;vorbis.lib;vorbisfile.lib;ftgl.lib;boost_system.lib;boost_filesystem.lib;lua5.1.lib;luabind.lib;%(AdditionalDependencies)</AdditionalDependencies>
97+
<AdditionalDependencies>GL.lib;GLU.lib;SDL.lib;SDLmain.lib;GLEW.lib;assimp.lib;IL.lib;ILU.lib;openal.lib;alut.lib;PhysX3Common.lib;PhysX3.lib;PhysX3Cooking.lib;PhysX3CharacterKinematic.lib;LinearMath.lib;ogg.lib;vorbis.lib;vorbisfile.lib;ftgl.lib;boost_system.lib;boost_filesystem.lib;angelscript.lib;%(AdditionalDependencies)</AdditionalDependencies>
9898
<OutputFile>$(OutDir)qor.exe</OutputFile>
9999
<AdditionalLibraryDirectories>third_party\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
100100
<SubSystem>Windows</SubSystem>
@@ -165,15 +165,14 @@
165165
<ClInclude Include="src\ParticleSystem.h" />
166166
<ClInclude Include="src\TrackerNode.h" />
167167
<ClInclude Include="src\Graphics.h" />
168-
<ClInclude Include="src\Navigation.h" />
168+
<ClInclude Include="src\Animation.h" />
169169
<ClInclude Include="src\Material.h" />
170170
<ClInclude Include="src\Console.h" />
171171
<ClInclude Include="src\RenderBuffer.h" />
172172
<ClInclude Include="src\ISuperParent.h" />
173173
<ClInclude Include="src\IStaticInstance.h" />
174174
<ClInclude Include="src\Util.h" />
175175
<ClInclude Include="src\IFallible.h" />
176-
<ClInclude Include="src\LuaScript\LuaState.h" />
177176
<ClInclude Include="src\transition\TransitionState.h" />
178177
<ClInclude Include="src\transition\TransitionInfo.h" />
179178
<ClInclude Include="src\game\GameState.h" />
@@ -195,8 +194,6 @@
195194
</ClCompile>
196195
<ClCompile Include="src\Scene.cpp">
197196
</ClCompile>
198-
<ClCompile Include="src\Navigation.cpp">
199-
</ClCompile>
200197
<ClCompile Include="src\EnvironmentNode.cpp">
201198
</ClCompile>
202199
<ClCompile Include="src\Console.cpp">
@@ -233,6 +230,8 @@
233230
</ClCompile>
234231
<ClCompile Include="src\Node.cpp">
235232
</ClCompile>
233+
<ClCompile Include="src\Animation.cpp">
234+
</ClCompile>
236235
<ClCompile Include="src\Settings.cpp">
237236
</ClCompile>
238237
<ClCompile Include="src\ShadowBuffer.cpp">

src/Animation.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#include "Animation.h"
2+
3+

src/Navigation.h renamed to src/Animation.h

+20-11
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
#ifndef _NAVIGATION_H
2-
#define _NAVIGATION_H
1+
#ifndef _ANIMATION_H
2+
#define _ANIMATION_H
33

44
#include <memory>
55
#include <functional>
66
#include <vector>
77
#include <cmath>
88
#include "Freq.h"
99
#include "math/common.h"
10-
template<class T> class Navigation;
10+
template<class T> class Animation;
1111

1212
struct LinearInterpolation
1313
{
@@ -51,22 +51,22 @@ class Waypoint
5151
// TODO: execution callback?
5252
// TODO: expiry callback?
5353
// TODO: interpolative callback?
54-
T m_Position;
54+
T m_Position;
5555

5656
unsigned long m_ulStartTime; // transition start time
5757
unsigned long m_ulAlarmTime; // transition end time
5858

5959
std::function<T (const T&, const T&, float)> m_Interpolation;
6060

61-
Navigation<T>* m_Navigation;
61+
Animation<T>* m_Animation;
6262

6363
public:
6464

65-
Waypoint(T position, Freq::Time time, Navigation<T>* nav):
65+
Waypoint(T position, Freq::Time time, Animation<T>* nav):
6666
m_Position(position),
6767
m_ulStartTime(0L),
6868
m_ulAlarmTime(0L),
69-
m_Navigation(nav)
69+
m_Animation(nav)
7070
{
7171
m_ulStartTime = Freq::get().getElapsedTime(); //ms
7272
m_ulAlarmTime = m_ulStartTime + time.get();
@@ -102,26 +102,28 @@ class Waypoint
102102
};
103103

104104
template<class T>
105-
class Navigation
105+
class Animation
106106
{
107107
private:
108108

109109
std::vector<Waypoint<T>> m_Waypoints;
110110
T m_default;
111+
float m_fSpeed;
111112

112113
public:
113114

114-
Navigation(
115+
Animation(
115116
Waypoint<T> initial,
116117
T default_value=T(),
117118
Freq::Accumulator* accum = Freq::get().accumulator()
118119
):
119-
m_default(default_value)
120+
m_default(default_value),
121+
m_fSpeed(1.0f)
120122
{
121123
m_Waypoints.push_back(std::move(initial));
122124
}
123125

124-
virtual ~Navigation() {}
126+
virtual ~Animation() {}
125127

126128
void addWaypoint(T position, Freq::Time time) {
127129
m_Waypoints.push_back(Waypoint<T>(std::move(position), time, this));
@@ -148,6 +150,13 @@ class Navigation
148150
bool empty() {
149151
return m_Waypoints.size() <= 1;
150152
}
153+
154+
void speed(float s) {
155+
m_fSpeed = s;
156+
}
157+
float speed() const {
158+
return m_fSpeed;
159+
}
151160
};
152161

153162
#endif

src/Freq.h

+20-2
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,34 @@ class Freq : public IStaticInstance<Freq>, public IRealtime
1313
class Accumulator: public IRealtime {
1414
private:
1515
unsigned long m_ulAccumulatedTime;
16+
float m_fSpeed;
1617
public:
1718
Accumulator():
18-
m_ulAccumulatedTime(0L)
19+
m_ulAccumulatedTime(0L),
20+
m_fSpeed(1.0f)
1921
{}
22+
virtual ~Accumulator() {}
2023
virtual unsigned long getElapsedTime() const {
2124
return m_ulAccumulatedTime;
2225
}
2326

2427
virtual void logic(unsigned int a) {
25-
m_ulAccumulatedTime += a;
28+
m_ulAccumulatedTime += (a*m_fSpeed);
29+
}
30+
void speed(float s) {
31+
m_fSpeed = s;
32+
}
33+
float speed() const {
34+
return m_fSpeed;
35+
}
36+
unsigned long mark() const {
37+
return m_ulAccumulatedTime;
38+
}
39+
void pause() {
40+
m_fSpeed = 0.0f;
41+
}
42+
void resume(float speed = 1.0f) {
43+
m_fSpeed = speed;
2644
}
2745
};
2846

src/IPhysicsObject.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ using namespace std;
44

55
IPhysicsObject :: ~IPhysicsObject()
66
{
7-
if(m_pWorld && m_pBody)
8-
NewtonDestroyBody(m_pWorld, m_pBody);
7+
//if(m_pWorld && m_pBody)
8+
// NewtonDestroyBody(m_pWorld, m_pBody);
99

1010
//shared_ptr<Physics> physics = m_wpPhysicsSystem.lock();
1111

@@ -16,8 +16,8 @@ IPhysicsObject :: ~IPhysicsObject()
1616
// delete m_pPhysicsBody;
1717
}
1818

19-
unsigned int IPhysicsObject :: physicsLogic(float timestep, float mass, glm::vec3& force, glm::vec3& omega, glm::vec3& torque, glm::vec3& velocity)
20-
{
21-
return Physics::USER_FORCE;
22-
}
19+
//unsigned int IPhysicsObject :: physicsLogic(float timestep, float mass, glm::vec3& force, glm::vec3& omega, glm::vec3& torque, glm::vec3& velocity)
20+
//{
21+
// return Physics::USER_FORCE;
22+
//}
2323

src/IPhysicsObject.h

+12-11
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include <memory>
55
#include <vector>
66

7-
#include <newton/Newton.h>
7+
//#include <newton/Newton.h>
88
#include "Physics.h"
99
class Physics;
1010
#include "math/common.h"
@@ -20,9 +20,9 @@ class IPhysicsObject/*: public btMotionState*/
2020
//std::vector<std::unique_ptr<btCollisionShape>> m_CollisionShapes;
2121
//btMotionState* m_pMotionState;
2222

23-
NewtonWorld* m_pWorld; // weak
23+
//NewtonWorld* m_pWorld; // weak
2424
//std::unique_ptr<NewtonBody> m_pBody;
25-
NewtonBody* m_pBody;
25+
//NewtonBody* m_pBody;
2626
Physics* m_pPhysics; // weak
2727

2828
public:
@@ -35,28 +35,29 @@ class IPhysicsObject/*: public btMotionState*/
3535
};
3636

3737
IPhysicsObject():
38-
m_pWorld(NULL),
39-
m_pBody(NULL),
38+
//m_pWorld(NULL),
39+
//m_pBody(NULL),
4040
m_pPhysics(NULL) {}
4141
virtual ~IPhysicsObject();
4242

4343
Physics* getPhysics() { return m_pPhysics; }
4444
//btMotionState* getMotionState() { return this; }
45-
NewtonBody* getPhysicsBody() { return m_pBody; }
45+
//NewtonBody* getPhysicsBody() { return m_pBody; }
46+
void* getPhysicsBody() { return NULL; } //placeholder
4647
void setPhysics(Physics* sys) {
4748
m_pPhysics = sys;
4849
}
49-
void setBody(NewtonBody* obj) {
50-
m_pBody = obj;
51-
}
52-
NewtonBody* getBody() { return m_pBody; }
50+
//void setBody(NewtonBody* obj) {
51+
// m_pBody = obj;
52+
//}
53+
//NewtonBody* getBody() { return m_pBody; }
5354

5455
virtual float radius() { return 0.0f; }
5556
virtual float height() { return 0.0f; }
5657

5758
virtual void sync(glm::mat4* m) {}
5859
virtual Type getPhysicsType() { return NONE; }
59-
virtual unsigned int physicsLogic(float timestep, float mass, glm::vec3& force, glm::vec3& omega, glm::vec3& torque, glm::vec3& velocity);
60+
//virtual unsigned int physicsLogic(float timestep, float mass, glm::vec3& force, glm::vec3& omega, glm::vec3& torque, glm::vec3& velocity);
6061
virtual float mass() { return 0.0f; }
6162

6263
//virtual void setWorldTransform(const btTransform& worldTrans) {

0 commit comments

Comments
 (0)