-
Notifications
You must be signed in to change notification settings - Fork 384
Expand file tree
/
Copy pathTimeStep.h
More file actions
51 lines (40 loc) · 1.4 KB
/
TimeStep.h
File metadata and controls
51 lines (40 loc) · 1.4 KB
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
#ifndef __TimeStep_h__
#define __TimeStep_h__
#include "Common/Common.h"
#include "SimulationModel.h"
#include "CollisionDetection.h"
#include "ParameterObject.h"
namespace PBD
{
/** \brief Base class for the simulation methods.
*/
class TimeStep : public GenParam::ParameterObject
{
protected:
CollisionDetection *m_collisionDetection;
/** Clear accelerations and add gravitation.
*/
void clearAccelerations(SimulationModel &model);
virtual void initParameters();
static void contactCallbackFunction(const unsigned int contactType,
const unsigned int bodyIndex1, const unsigned int bodyIndex2,
const Vector3r &cp1, const Vector3r &cp2,
const Vector3r &normal, const Real dist,
const Real restitutionCoeff, const Real frictionCoeff, void *userData);
static void solidContactCallbackFunction(const unsigned int contactType,
const unsigned int bodyIndex1, const unsigned int bodyIndex2,
const unsigned int tetIndex, const Vector3r &bary,
const Vector3r &cp1, const Vector3r &cp2,
const Vector3r &normal, const Real dist,
const Real restitutionCoeff, const Real frictionCoeff, void *userData);
public:
TimeStep();
virtual ~TimeStep(void);
virtual void step(SimulationModel &model) = 0;
virtual void reset();
virtual void init();
void setCollisionDetection(SimulationModel &model, CollisionDetection *cd);
CollisionDetection *getCollisionDetection();
};
}
#endif