17 #ifndef GAZEBO_PHYSICS_ACTOR_HH_
18 #define GAZEBO_PHYSICS_ACTOR_HH_
48 public:
unsigned int id;
76 public:
typedef std::map<std::string, common::SkeletonAnimation *>
84 public:
virtual ~
Actor();
88 public:
void Load(sdf::ElementPtr _sdf);
91 public:
virtual void Init();
94 public:
virtual void Play();
97 public:
virtual void Stop();
101 public:
virtual bool IsActive()
const;
104 public:
void Update();
107 public:
virtual void Fini();
111 public:
virtual void UpdateParameters(sdf::ElementPtr _sdf);
115 public:
virtual const sdf::ElementPtr GetSDF();
121 public:
void SetScriptTime(
const double _time);
127 public:
double ScriptTime()
const;
144 public:
void ResetCustomTrajectory();
150 public:
virtual bool GetSelfCollide()
const;
157 public:
virtual void SetSelfCollide(
bool _selfCollide);
163 public:
virtual bool WindMode()
const;
170 public:
virtual void SetWindMode(
const bool _enabled);
177 private:
void AddSphereInertia(
const sdf::ElementPtr &_linkSdf,
178 const ignition::math::Pose3d &_pose,
179 const double _mass,
const double _radius);
186 private:
void AddSphereCollision(
const sdf::ElementPtr &_linkSdf,
187 const std::string &_name,
188 const ignition::math::Pose3d &_pose,
189 const double _radius);
198 private:
void AddSphereVisual(
const sdf::ElementPtr &_linkSdf,
199 const std::string &_name,
200 const ignition::math::Pose3d &_pose,
const double _radius,
201 const std::string &_material,
const common::Color &_ambient);
210 private:
void AddBoxVisual(
const sdf::ElementPtr &_linkSdf,
211 const std::string &_name,
212 const ignition::math::Pose3d &_pose,
213 const ignition::math::Vector3d &_size,
214 const std::string &_material,
221 private:
void AddActorVisual(
const sdf::ElementPtr &_linkSdf,
222 const std::string &_name,
223 const ignition::math::Pose3d &_pose);
229 private:
bool LoadSkin(sdf::ElementPtr _sdf);
236 private:
void LoadAnimation(sdf::ElementPtr _sdf);
240 private:
void LoadScript(sdf::ElementPtr _sdf);
247 private:
void SetPose(
248 std::map<std::string, ignition::math::Matrix4d> _frame,
249 std::map<std::string, std::string> _skelMap,
293 protected: std::map<unsigned int, common::PoseAnimation *>
trajectories;
315 protected: std::map<std::string, std::map<std::string, std::string> >
345 private:
double scriptTime;
transport::PublisherPtr bonePosePub
Publisher to send bone info.
Definition: Actor.hh:341
A 3D mesh.
Definition: Mesh.hh:42
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:109
A skeleton.
Definition: Skeleton.hh:52
double startTime
Start time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:58
ignition::math::Vector3d lastPos
Last position of the actor.
Definition: Actor.hh:326
bool loop
True if the animation should loop.
Definition: Actor.hh:272
std::vector< TrajectoryInfo > trajInfo
A vector of trajectory information, which contains information such as their durations, uniquely identifiable by their IDs.
Definition: Actor.hh:299
Actor class enables GPU based mesh model / skeleton scriptable animation.
Definition: Actor.hh:73
boost::shared_ptr< Publisher > PublisherPtr
Definition: TransportTypes.hh:49
unsigned int id
ID of the trajectory.
Definition: Actor.hh:48
std::shared_ptr< TrajectoryInfo > TrajectoryInfoPtr
Definition: PhysicsTypes.hh:101
double scriptLength
Total time length of the script, in seconds.
Definition: Actor.hh:269
std::string skinFile
Filename for the skin.
Definition: Actor.hh:259
std::map< unsigned int, common::PoseAnimation * > trajectories
Map of all the trajectories (pose animations) and their indices.
Definition: Actor.hh:293
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:305
uint32_t visualId
ID for the visual representing the skin.
Definition: Actor.hh:338
Information about a trajectory for an Actor.
Definition: Actor.hh:42
double endTime
End time of this keyframe within the trajectory, in seconds.
Definition: Actor.hh:61
double duration
Duration of this keyframe in seconds.
Definition: Actor.hh:55
std::string visualName
Name of the visual representing the skin.
Definition: Actor.hh:335
bool translated
True if the trajectory is translated.
Definition: Actor.hh:64
std::map< std::string, std::map< std::string, std::string > > skelNodesMap
Skeleton to node map:
Definition: Actor.hh:316
Defines a color.
Definition: Color.hh:36
bool autoStart
True if the actor should start running automatically, otherwise it will only start once Play is calle...
Definition: Actor.hh:279
std::map< std::string, common::SkeletonAnimation * > SkeletonAnimation_M
Typedef the skeleton animation map, indexed by their names.
Definition: Actor.hh:77
LinkPtr mainLink
Pointer to the actor's canonical link.
Definition: Actor.hh:282
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:262
double pathLength
Length of the actor's path.
Definition: Actor.hh:329
bool active
True if the actor is being updated.
Definition: Actor.hh:275
unsigned int lastTraj
Id of the last trajectory.
Definition: Actor.hh:332
common::Time prevFrameTime
Time of the previous frame.
Definition: Actor.hh:285
common::Time playStartTime
Time when the animation was started.
Definition: Actor.hh:288
double startDelay
Time to wait before starting the script.
Definition: Actor.hh:266
std::string type
Type of trajectory.
Definition: Actor.hh:52
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:323
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