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 *>
88 public:
virtual ~
Actor();
92 public:
void Load(sdf::ElementPtr _sdf);
95 public:
virtual void Init();
98 public:
virtual void Play();
101 public:
virtual void Stop();
105 public:
virtual bool IsActive()
const;
108 public:
void Update();
111 public:
virtual void Fini();
115 public:
virtual void UpdateParameters(sdf::ElementPtr _sdf);
119 public:
virtual const sdf::ElementPtr GetSDF();
122 public:
void Reset();
129 public:
void SetScriptTime(
const double _time);
135 public:
double ScriptTime()
const;
158 public:
void ResetCustomTrajectory();
164 public:
virtual bool GetSelfCollide()
const;
171 public:
virtual void SetSelfCollide(
bool _selfCollide);
177 public:
virtual bool WindMode()
const;
184 public:
virtual void SetWindMode(
const bool _enabled);
191 private:
void AddSphereInertia(
const sdf::ElementPtr &_linkSdf,
192 const ignition::math::Pose3d &_pose,
193 const double _mass,
const double _radius);
201 private:
void AddSphereCollision(
const sdf::ElementPtr &_linkSdf,
202 const std::string &_name,
203 const ignition::math::Pose3d &_pose,
204 const double _radius);
212 private:
void AddBoxCollision(
const sdf::ElementPtr &_linkSdf,
213 const std::string &_name,
214 const ignition::math::Pose3d &_pose,
215 const ignition::math::Vector3d &_size);
224 private:
void AddSphereVisual(
const sdf::ElementPtr &_linkSdf,
225 const std::string &_name,
226 const ignition::math::Pose3d &_pose,
const double _radius,
227 const std::string &_material,
228 const ignition::math::Color &_ambient);
237 private:
void AddBoxVisual(
const sdf::ElementPtr &_linkSdf,
238 const std::string &_name,
239 const ignition::math::Pose3d &_pose,
240 const ignition::math::Vector3d &_size,
241 const std::string &_material,
242 const ignition::math::Color &_ambient);
248 private:
void AddActorVisual(
const sdf::ElementPtr &_linkSdf,
249 const std::string &_name,
250 const ignition::math::Pose3d &_pose);
256 private:
bool LoadSkin(sdf::ElementPtr _sdf);
263 private:
void LoadAnimation(sdf::ElementPtr _sdf);
267 private:
void LoadScript(sdf::ElementPtr _sdf);
274 private:
void SetPose(
275 std::map<std::string, ignition::math::Matrix4d> _frame,
276 std::map<std::string, std::string> _skelMap,
320 protected: std::map<unsigned int, common::PoseAnimation *>
trajectories;
342 protected: std::map<std::string, std::map<std::string, std::string> >
372 private:
double scriptTime;
379 private: std::unique_ptr<ActorPrivate> dataPtr;
transport::PublisherPtr bonePosePub
Publisher to send bone info.
Definition: Actor.hh:368
A 3D mesh.
Definition: Mesh.hh:42
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:109
A skeleton.
Definition: Skeleton.hh:52
Forward declarations for the common classes.
Definition: Animation.hh:26
double startTime
Start time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:62
ignition::math::Vector3d lastPos
Last position of the actor.
Definition: Actor.hh:353
bool loop
True if the animation should loop.
Definition: Actor.hh:299
std::vector< TrajectoryInfo > trajInfo
A vector of trajectory information, which contains information such as their durations, uniquely identifiable by their IDs.
Definition: Actor.hh:326
Actor class enables GPU based mesh model / skeleton scriptable animation.
Definition: Actor.hh:77
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
unsigned int id
ID of the trajectory.
Definition: Actor.hh:52
std::shared_ptr< TrajectoryInfo > TrajectoryInfoPtr
Definition: PhysicsTypes.hh:101
double scriptLength
Total time length of the script, in seconds.
Definition: Actor.hh:296
std::string skinFile
Filename for the skin.
Definition: Actor.hh:286
std::map< unsigned int, common::PoseAnimation * > trajectories
Map of all the trajectories (pose animations) and their indices.
Definition: Actor.hh:320
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:332
uint32_t visualId
ID for the visual representing the skin.
Definition: Actor.hh:365
Information about a trajectory for an Actor.
Definition: Actor.hh:46
double endTime
End time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:65
double duration
Duration of this keyframe in seconds.
Definition: Actor.hh:59
std::string visualName
Name of the visual representing the skin.
Definition: Actor.hh:362
bool translated
True if the trajectory is translated.
Definition: Actor.hh:68
std::map< std::string, std::map< std::string, std::string > > skelNodesMap
Skeleton to node map:
Definition: Actor.hh:343
bool autoStart
True if the actor should start running automatically, otherwise it will only start once Play is calle...
Definition: Actor.hh:306
std::map< std::string, common::SkeletonAnimation * > SkeletonAnimation_M
Typedef the skeleton animation map, indexed by their names.
Definition: Actor.hh:81
LinkPtr mainLink
Pointer to the actor's canonical link.
Definition: Actor.hh:309
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:289
double pathLength
Length of the actor's path.
Definition: Actor.hh:356
bool active
True if the actor is being updated.
Definition: Actor.hh:302
unsigned int lastTraj
Id of the last trajectory.
Definition: Actor.hh:359
common::Time prevFrameTime
Time of the previous frame.
Definition: Actor.hh:312
common::Time playStartTime
Time when the animation was started.
Definition: Actor.hh:315
double startDelay
Time to wait before starting the script.
Definition: Actor.hh:293
std::string type
Type of trajectory.
Definition: Actor.hh:56
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:350
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