17 #ifndef GAZEBO_PHYSICS_ACTOR_HH_
18 #define GAZEBO_PHYSICS_ACTOR_HH_
24 #include <ignition/math/Color.hh>
49 public:
unsigned int id;
77 public:
typedef std::map<std::string, common::SkeletonAnimation *>
85 public:
virtual ~
Actor();
89 public:
void Load(sdf::ElementPtr _sdf);
92 public:
virtual void Init();
95 public:
virtual void Play();
98 public:
virtual void Stop();
102 public:
virtual bool IsActive()
const;
105 public:
void Update();
108 public:
virtual void Fini();
112 public:
virtual void UpdateParameters(sdf::ElementPtr _sdf);
116 public:
virtual const sdf::ElementPtr GetSDF();
119 public:
void Reset();
126 public:
void SetScriptTime(
const double _time);
132 public:
double ScriptTime()
const;
149 public:
void ResetCustomTrajectory();
155 public:
virtual bool GetSelfCollide()
const;
162 public:
virtual void SetSelfCollide(
bool _selfCollide);
168 public:
virtual bool WindMode()
const;
175 public:
virtual void SetWindMode(
const bool _enabled);
182 private:
void AddSphereInertia(
const sdf::ElementPtr &_linkSdf,
183 const ignition::math::Pose3d &_pose,
184 const double _mass,
const double _radius);
191 private:
void AddSphereCollision(
const sdf::ElementPtr &_linkSdf,
192 const std::string &_name,
193 const ignition::math::Pose3d &_pose,
194 const double _radius);
203 private:
void AddSphereVisual(
const sdf::ElementPtr &_linkSdf,
204 const std::string &_name,
205 const ignition::math::Pose3d &_pose,
const double _radius,
206 const std::string &_material,
207 const ignition::math::Color &_ambient);
216 private:
void AddBoxVisual(
const sdf::ElementPtr &_linkSdf,
217 const std::string &_name,
218 const ignition::math::Pose3d &_pose,
219 const ignition::math::Vector3d &_size,
220 const std::string &_material,
221 const ignition::math::Color &_ambient);
227 private:
void AddActorVisual(
const sdf::ElementPtr &_linkSdf,
228 const std::string &_name,
229 const ignition::math::Pose3d &_pose);
235 private:
bool LoadSkin(sdf::ElementPtr _sdf);
242 private:
void LoadAnimation(sdf::ElementPtr _sdf);
246 private:
void LoadScript(sdf::ElementPtr _sdf);
253 private:
void SetPose(
254 std::map<std::string, ignition::math::Matrix4d> _frame,
255 std::map<std::string, std::string> _skelMap,
299 protected: std::map<unsigned int, common::PoseAnimation *>
trajectories;
321 protected: std::map<std::string, std::map<std::string, std::string> >
351 private:
double scriptTime;
transport::PublisherPtr bonePosePub
Publisher to send bone info.
Definition: Actor.hh:347
A 3D mesh.
Definition: Mesh.hh:42
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:109
A skeleton.
Definition: Skeleton.hh:52
void Reset()
Reset the model.
double startTime
Start time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:59
ignition::math::Vector3d lastPos
Last position of the actor.
Definition: Actor.hh:332
bool loop
True if the animation should loop.
Definition: Actor.hh:278
std::vector< TrajectoryInfo > trajInfo
A vector of trajectory information, which contains information such as their durations, uniquely identifiable by their IDs.
Definition: Actor.hh:305
Actor class enables GPU based mesh model / skeleton scriptable animation.
Definition: Actor.hh:74
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
unsigned int id
ID of the trajectory.
Definition: Actor.hh:49
std::shared_ptr< TrajectoryInfo > TrajectoryInfoPtr
Definition: PhysicsTypes.hh:101
double scriptLength
Total time length of the script, in seconds.
Definition: Actor.hh:275
std::string skinFile
Filename for the skin.
Definition: Actor.hh:265
std::map< unsigned int, common::PoseAnimation * > trajectories
Map of all the trajectories (pose animations) and their indices.
Definition: Actor.hh:299
A model is a collection of links, joints, and plugins.
Definition: Model.hh:59
SkeletonAnimation_M skelAnimation
Map of skeleton animations, indexed by their names.
Definition: Actor.hh:311
uint32_t visualId
ID for the visual representing the skin.
Definition: Actor.hh:344
Information about a trajectory for an Actor.
Definition: Actor.hh:43
double endTime
End time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:62
double duration
Duration of this keyframe in seconds.
Definition: Actor.hh:56
std::string visualName
Name of the visual representing the skin.
Definition: Actor.hh:341
bool translated
True if the trajectory is translated.
Definition: Actor.hh:65
std::map< std::string, std::map< std::string, std::string > > skelNodesMap
Skeleton to node map:
Definition: Actor.hh:322
bool autoStart
True if the actor should start running automatically, otherwise it will only start once Play is calle...
Definition: Actor.hh:285
std::map< std::string, common::SkeletonAnimation * > SkeletonAnimation_M
Typedef the skeleton animation map, indexed by their names.
Definition: Actor.hh:78
LinkPtr mainLink
Pointer to the actor's canonical link.
Definition: Actor.hh:288
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
double skinScale
Scaling factor to apply to the skin.
Definition: Actor.hh:268
double pathLength
Length of the actor's path.
Definition: Actor.hh:335
bool active
True if the actor is being updated.
Definition: Actor.hh:281
unsigned int lastTraj
Id of the last trajectory.
Definition: Actor.hh:338
common::Time prevFrameTime
Time of the previous frame.
Definition: Actor.hh:291
common::Time playStartTime
Time when the animation was started.
Definition: Actor.hh:294
double startDelay
Time to wait before starting the script.
Definition: Actor.hh:272
std::string type
Type of trajectory.
Definition: Actor.hh:53
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:329
boost::shared_ptr< Base > BasePtr
Definition: PhysicsTypes.hh:77
A Time class, can be used to hold wall- or sim-time.
Definition: Time.hh:44