17 #ifndef GAZEBO_PHYSICS_ACTOR_HH_
18 #define GAZEBO_PHYSICS_ACTOR_HH_
25 #include <ignition/math/Color.hh>
52 public:
unsigned int id;
80 public:
typedef std::map<std::string, common::SkeletonAnimation *>
92 public:
void Load(sdf::ElementPtr _sdf);
95 public:
virtual void Init();
98 public:
virtual void Play();
119 public:
virtual const sdf::ElementPtr
GetSDF();
195 private:
void AddSphereInertia(
const sdf::ElementPtr &_linkSdf,
196 const ignition::math::Pose3d &_pose,
197 const double _mass,
const double _radius);
205 private:
void AddSphereCollision(
const sdf::ElementPtr &_linkSdf,
206 const std::string &_name,
207 const ignition::math::Pose3d &_pose,
208 const double _radius);
216 private:
void AddBoxCollision(
const sdf::ElementPtr &_linkSdf,
217 const std::string &_name,
218 const ignition::math::Pose3d &_pose,
219 const ignition::math::Vector3d &_size);
228 private:
void AddSphereVisual(
const sdf::ElementPtr &_linkSdf,
229 const std::string &_name,
230 const ignition::math::Pose3d &_pose,
const double _radius,
231 const std::string &_material,
232 const ignition::math::Color &_ambient);
241 private:
void AddBoxVisual(
const sdf::ElementPtr &_linkSdf,
242 const std::string &_name,
243 const ignition::math::Pose3d &_pose,
244 const ignition::math::Vector3d &_size,
245 const std::string &_material,
246 const ignition::math::Color &_ambient);
252 private:
void AddActorVisual(
const sdf::ElementPtr &_linkSdf,
253 const std::string &_name,
254 const ignition::math::Pose3d &_pose);
260 private:
bool LoadSkin(sdf::ElementPtr _sdf);
267 private:
void LoadAnimation(sdf::ElementPtr _sdf);
271 private:
void LoadScript(sdf::ElementPtr _sdf);
278 private:
void SetPose(
279 std::map<std::string, ignition::math::Matrix4d> _frame,
280 std::map<std::string, std::string> _skelMap,
324 protected: std::map<unsigned int, common::PoseAnimation *>
trajectories;
346 protected: std::map<std::string, std::map<std::string, std::string> >
376 private:
double scriptTime;
383 private: std::unique_ptr<ActorPrivate> dataPtr;
common
Definition: FuelModelDatabase.hh:37
A 3D mesh.
Definition: Mesh.hh:43
A skeleton.
Definition: Skeleton.hh:53
A Time class, can be used to hold wall- or sim-time.
Definition: Time.hh:48
Actor class enables GPU based mesh model / skeleton scriptable animation.
Definition: Actor.hh:78
bool active
True if the actor is being updated.
Definition: Actor.hh:306
uint32_t visualId
ID for the visual representing the skin.
Definition: Actor.hh:369
double ScriptTime() const
Get the current script time.
void SetCustomTrajectory(TrajectoryInfoPtr &_trajInfo)
Set a custom trajectory for the actor, using one of the existing animations.
virtual bool GetSelfCollide() const
Get whether the links in the actor can collide with each other.
LinkPtr mainLink
Pointer to the actor's canonical link.
Definition: Actor.hh:313
TrajectoryInfoPtr CustomTrajectory() const
Get the custom trajectory.
virtual void Fini()
Finalize the actor.
void Reset()
Reset the actor.
virtual void Init()
Initialize the actor.
bool autoStart
True if the actor should start running automatically, otherwise it will only start once Play is calle...
Definition: Actor.hh:310
std::string visualName
Name of the visual representing the skin.
Definition: Actor.hh:366
std::map< std::string, std::map< std::string, std::string > > skelNodesMap
Skeleton to node map:
Definition: Actor.hh:347
std::map< unsigned int, common::PoseAnimation * > trajectories
Map of all the trajectories (pose animations) and their indices.
Definition: Actor.hh:324
const common::Mesh * Mesh() const
Returns the actor's mesh.
common::Time prevFrameTime
Time of the previous frame.
Definition: Actor.hh:316
double startDelay
Time to wait before starting the script.
Definition: Actor.hh:297
std::string skinFile
Filename for the skin.
Definition: Actor.hh:290
void ResetCustomTrajectory()
Reset custom trajectory of the actor.
SkeletonAnimation_M skelAnimation
Map of skeleton animations, indexed by their names.
Definition: Actor.hh:336
void SetScriptTime(const double _time)
Set the current script time.
bool loop
True if the animation should loop.
Definition: Actor.hh:303
virtual const sdf::ElementPtr GetSDF()
Get the SDF values for the actor.
unsigned int lastTraj
Id of the last trajectory.
Definition: Actor.hh:363
ignition::math::Vector3d lastPos
Last position of the actor.
Definition: Actor.hh:357
transport::PublisherPtr bonePosePub
Publisher to send bone info.
Definition: Actor.hh:372
virtual bool IsActive() const
Returns true when actor is playing animation.
std::vector< TrajectoryInfo > trajInfo
A vector of trajectory information, which contains information such as their durations,...
Definition: Actor.hh:330
virtual void SetSelfCollide(bool _selfCollide)
Override set self collide method to make it impossible to set it to true for actors.
virtual bool WindMode() const
Get whether the links in the actor are affected by wind.
double pathLength
Length of the actor's path.
Definition: Actor.hh:360
std::map< std::string, common::SkeletonAnimation * > SkeletonAnimation_M
Typedef the skeleton animation map, indexed by their names.
Definition: Actor.hh:81
common::Time playStartTime
Time when the animation was started.
Definition: Actor.hh:319
const SkeletonAnimation_M & SkeletonAnimations() const
Returns a dictionary of all the skeleton animations associated with the actor.
virtual void SetWindMode(const bool _enabled)
Override set wind mode method to make it impossible to set it to true for actors.
double skinScale
Scaling factor to apply to the skin.
Definition: Actor.hh:293
void Load(sdf::ElementPtr _sdf)
Load the actor.
virtual void Play()
Start playing the script.
virtual void UpdateParameters(sdf::ElementPtr _sdf)
Update the parameters using new sdf values.
double scriptLength
Total time length of the script, in seconds.
Definition: Actor.hh:300
std::map< std::string, bool > interpolateX
Map of animation types (the same name as in skelAnimation and skelNodesMap) and whether they should b...
Definition: Actor.hh:354
void Update()
Update the actor.
Actor(BasePtr _parent)
Constructor.
virtual void Stop()
Stop playing the script.
virtual ~Actor()
Destructor.
A model is a collection of links, joints, and plugins.
Definition: Model.hh:60
void Reset()
Reset the model.
Information about a trajectory for an Actor.
Definition: Actor.hh:47
double startTime
Start time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:62
TrajectoryInfo()
Constructor.
double endTime
End time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:65
std::string type
Type of trajectory.
Definition: Actor.hh:56
bool translated
True if the trajectory is translated.
Definition: Actor.hh:68
unsigned int id
ID of the trajectory.
Definition: Actor.hh:52
double duration
Duration of this keyframe in seconds.
Definition: Actor.hh:59
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:109
boost::shared_ptr< Base > BasePtr
Definition: PhysicsTypes.hh:77
std::shared_ptr< TrajectoryInfo > TrajectoryInfoPtr
Definition: PhysicsTypes.hh:101
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
Forward declarations for the common classes.
Definition: Animation.hh:27