00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
#ifndef OPENCAL_GRAVITY_H
00012
#define OPENCAL_GRAVITY_H
00013
00014
00015
#include <OpenCAL/global.h>
00016
#include <OpenCAL/Force.h>
00017
00018
#include <OpenCAL/Vector3.h>
00019
using OpenCAL::Utils::Vector3;
00020
00021
00022
namespace OpenCAL
00023 {
00024
00025
class PhysicsSystem;
00026
00030 class OPENCAL_API Gravity:
public Force
00031 {
00032
protected:
00033
00034 Vector3 m_gravity;
00035
00036
public:
00037
00038 Gravity(
PhysicsSystem *parent,
const Vector3 &gravity = Vector3(0.0f, -9.81f, 0.0f));
00039 Gravity(
PhysicsSystem *parent,
float downGravity);
00040
virtual ~Gravity();
00041
00042
00043
const Vector3 &getGravity()
const {
return m_gravity; }
00044
float getDownGravity()
const {
return -m_gravity.getY(); }
00045
00046
00047
void setGravity(
const Vector3 &gravity) { m_gravity = gravity; }
00048
void setGravity(
float downGravity) { m_gravity = Vector3(0, -downGravity, 0); }
00049
00050
00051
void execute(
float seconds);
00052 };
00053 }
00054
00055
#endif // OPENCAL_GRAVITY_H