MeshShape.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 Open Source Robotics Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16*/
17#ifndef GAZEBO_PHYSICS_MESHSHAPE_HH_
18#define GAZEBO_PHYSICS_MESHSHAPE_HH_
19
20#include <string>
21
25#include "gazebo/util/system.hh"
26
27namespace gazebo
28{
29 namespace physics
30 {
33
36 class GZ_PHYSICS_VISIBLE MeshShape : public Shape
37 {
40 public: explicit MeshShape(CollisionPtr _parent);
41
43 public: virtual ~MeshShape();
44
46 public: virtual void Update() {}
47
49 public: virtual void Init();
50
53 public: virtual ignition::math::Vector3d Size() const;
54
57 public: std::string GetMeshURI() const;
58
64 public: void SetMesh(const std::string &_uri,
65 const std::string &_submesh = "",
66 bool _center = false);
67
70 public: void SetScale(const ignition::math::Vector3d &_scale);
71
75 public: void FillMsg(msgs::Geometry &_msg);
76
79 public: virtual void ProcessMsg(const msgs::Geometry &_msg);
80
82 protected: const common::Mesh *mesh;
83
86 };
88 }
89}
90#endif
default namespace for gazebo
A 3D mesh.
Definition Mesh.hh:43
A child mesh.
Definition Mesh.hh:215
Triangle mesh collision shape.
Definition MeshShape.hh:37
const common::Mesh * mesh
Pointer to the mesh data.
Definition MeshShape.hh:82
virtual void Init()
Initialize the shape.
void SetMesh(const std::string &_uri, const std::string &_submesh="", bool _center=false)
Set the mesh uri and submesh name.
common::SubMesh * submesh
The submesh to use from within the parent mesh.
Definition MeshShape.hh:85
MeshShape(CollisionPtr _parent)
Constructor.
virtual ignition::math::Vector3d Size() const
Get the size of the triangle mesh.
virtual void ProcessMsg(const msgs::Geometry &_msg)
Update this shape from a message.
virtual ~MeshShape()
Destructor.
void FillMsg(msgs::Geometry &_msg)
Populate a msgs::Geometry message with data from this shape.
virtual void Update()
Update the tri mesh.
Definition MeshShape.hh:46
std::string GetMeshURI() const
Get the URI of the mesh data.
void SetScale(const ignition::math::Vector3d &_scale)
Set the scaling factor.
Base class for all shapes.
Definition Shape.hh:40
boost::shared_ptr< Collision > CollisionPtr
Definition PhysicsTypes.hh:113
Forward declarations for the common classes.
Definition Animation.hh:27