6 #ifndef CNOID_BODY_WORLD_H_INCLUDED
7 #define CNOID_BODY_WORLD_H_INCLUDED
28 inline int numBodies() {
return bodyInfoArray.size(); }
42 BodyPtr body(
const std::string& name);
50 return bodyInfoArray[index].forwardDynamics;
58 int bodyIndex(
const std::string& name);
76 void clearCollisionPairs();
82 void setTimeStep(
double dt);
88 double timeStep(
void)
const {
return timeStep_; }
94 void setCurrentTime(
double tm);
106 void setGravityAcceleration(
const Vector3& g);
119 void enableSensors(
bool on);
124 void setEulerMethod();
129 void setRungeKuttaMethod();
139 virtual void calcNextState();
147 std::pair<int,bool> getIndexOfLinkPairs(
Link* link1,
Link* link2);
163 typedef std::map<std::string, int> NameToIndexMap;
164 NameToIndexMap nameToBodyIndexMap;
166 typedef std::map<BodyPtr, int> BodyToIndexMap;
167 BodyToIndexMap bodyToIndexMap;
172 bool operator<(
const LinkPairKey& pair2)
const;
174 typedef std::map<LinkPairKey, int> LinkPairKeyToIndexMap;
175 LinkPairKeyToIndexMap linkPairKeyToIndexMap;
177 int numRegisteredLinkPairs;
191 World() : constraintForceSolver(*this) { }
195 constraintForceSolver.initialize();
199 constraintForceSolver.solve();
bool sensorsAreEnabled
Definition: World.h:160
boost::intrusive_ptr< Body > BodyPtr
Definition: Body.h:22
virtual void calcNextState()
compute forward dynamics and update current state
Definition: World.h:198
virtual void initialize()
initialize this world. This must be called after all bodies are registered.
Definition: World.cpp:89
virtual void initialize()
initialize this world. This must be called after all bodies are registered.
Definition: World.h:193
double currentTime(void) const
get current time
Definition: World.h:100
virtual void calcNextState()
compute forward dynamics and update current state
Definition: World.cpp:125
int numBodies()
get the number of bodies in this world
Definition: World.h:28
ForwardDynamicsPtr forwardDynamics
Definition: World.h:156
ForwardDynamicsPtr forwardDynamics(int index)
get forward dynamics computation method for body
Definition: World.h:49
Definition: EasyScanner.h:16
double timeStep(void) const
get time step
Definition: World.h:88
double timeStep_
Definition: World.h:152
BodyPtr body
Definition: World.h:155
const Vector3 & gravityAcceleration()
get gravity acceleration
Definition: World.h:112
double currentTime_
Definition: World.h:151
Eigen::Vector3d Vector3
Definition: EigenTypes.h:26
World()
Definition: World.h:191
TConstraintForceSolver constraintForceSolver
Definition: World.h:189
#define CNOID_EXPORT
Definition: Util/exportdecl.h:13
boost::shared_ptr< ForwardDynamics > ForwardDynamicsPtr
Definition: ForwardDynamics.h:77
std::vector< BodyInfo > bodyInfoArray
Definition: World.h:158