6 #ifndef CNOID_BODYPLUGIN_AIST_SIMULATOR_ITEM_H 7 #define CNOID_BODYPLUGIN_AIST_SIMULATOR_ITEM_H 10 #include <cnoid/Collision> 15 class ContactAttribute;
16 class AISTSimulatorItemImpl;
27 virtual bool startSimulation(
bool doReset =
true);
29 enum DynamicsMode { FORWARD_DYNAMICS = 0, HG_DYNAMICS, KINEMATICS, N_DYNAMICS_MODES };
32 void setDynamicsMode(
int mode);
33 void setIntegrationMode(
int mode);
34 void setGravity(
const Vector3& gravity);
36 void setFriction(
double staticFriction,
double slipFriction);
37 void setContactCullingDistance(
double value);
38 void setContactCullingDepth(
double value);
39 void setErrorCriterion(
double value);
40 void setMaxNumIterations(
int value);
41 void setContactCorrectionDepth(
double value);
42 void setContactCorrectionVelocityRatio(
double value);
43 void setEpsilon(
double epsilon);
44 void set2Dmode(
bool on);
45 void setKinematicWalkingEnabled(
bool on);
46 void setConstraintForceOutputEnabled(
bool on);
49 virtual bool isForcedPositionActiveFor(
BodyItem* bodyItem)
const;
50 virtual void clearForcedPositions();
53 void setFriction(
Link* link1,
Link* link2,
double staticFriction,
double slipFriction);
55 typedef boost::function<bool(Link* link1, Link* link2, const CollisionArray& collisions, const ContactAttribute& attribute)>
57 int registerCollisionHandler(
const std::string& name,
CollisionHandler handler);
58 void unregisterCollisionHandler(
int handlerId);
59 int collisionHandlerId(
const std::string& name)
const;
60 void setCollisionHandler(
Link* link1,
Link* link2,
int handlerId);
64 virtual bool initializeSimulation(
const std::vector<SimulationBody*>& simBodies);
65 virtual bool stepSimulation(
const std::vector<SimulationBody*>& activeSimBodies);
66 virtual void finalizeSimulation();
69 virtual Item* doDuplicate()
const;
71 virtual bool store(
Archive& archive);
72 virtual bool restore(
const Archive& archive);
73 #ifdef ENABLE_SIMULATION_PROFILING 74 virtual void getProfilingNames(std::vector<std::string>& profilingNames);
75 virtual void getProfilingTimes(std::vector<double>& profilingTimes);
79 AISTSimulatorItemImpl* impl;
80 friend class AISTSimulatorItemImpl;
Definition: SimulatorItem.h:80
Definition: ExtensionManager.h:26
Definition: SimulatorItem.h:32
Definition: PutPropertyFunction.h:35
IntegrationMode
Definition: AISTSimulatorItem.h:30
Definition: Referenced.h:128
ref_ptr< AISTSimulatorItem > AISTSimulatorItemPtr
Definition: AISTSimulatorItem.h:83
Eigen::Transform< double, 3, Eigen::AffineCompact > Position
Definition: EigenTypes.h:73
Definition: AISTSimulatorItem.h:30
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: AISTSimulatorItem.h:18
boost::function< bool(Link *link1, Link *link2, const CollisionArray &collisions, const ContactAttribute &attribute)> CollisionHandler
Definition: AISTSimulatorItem.h:56
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
boost::shared_ptr< CollisionLinkPairList > CollisionLinkPairListPtr
Definition: CollisionSeq.h:22
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: BodyItem.h:31
DynamicsMode
Definition: AISTSimulatorItem.h:29