SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
SGraphicsChaiRigidBody.hpp
1 /* This file is part of scl, a control and simulation library
2 for robots and biomechanical models.
3 
4 scl is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 3 of the License, or (at your option) any later version.
8 
9 Alternatively, you can redistribute it and/or
10 modify it under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of
12 the License, or (at your option) any later version.
13 
14 scl is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU Lesser General Public
20 License and a copy of the GNU General Public License along with
21 scl. If not, see <http://www.gnu.org/licenses/>.
22  */
23 /* \file SGraphicsChaiRigidBody.hpp
24  *
25  * Created on: Oct 28, 2013
26  *
27  * Copyright (C) 2013
28  *
29  * Author: Samir Menon <smenon@stanford.edu>
30  */
31 #ifndef SGRAPHICSCHAIRIGIDBODY_HPP_
32 #define SGRAPHICSCHAIRIGIDBODY_HPP_
33 
34 #include <scl/DataTypes.hpp>
35 #include <scl/data_structs/SObject.hpp>
36 #include <scl/data_structs/SRigidBody.hpp>
37 #include <scl/data_structs/SRobotIO.hpp>
38 
43 namespace chai3d
44 {
45  class cGenericObject;
46 }
47 
48 namespace scl
49 {
54  {
55  public:
56  const SRigidBody* robot_link_;
57  chai3d::cGenericObject* graphics_obj_;
58  const SRobotIO* io_data_;
59  sInt io_data_idx_;
60 
66  std::string name_, parent_name_;
67  SGraphicsChaiRigidBody* parent_addr_;
68  std::vector<SGraphicsChaiRigidBody*> child_addrs_;
69 
70 
72  robot_link_(S_NULL),
73  graphics_obj_(S_NULL),
74  io_data_(S_NULL),
75  io_data_idx_ (-1),
76  name_(""),
77  parent_name_(""),
78  parent_addr_(NULL)
79  { }
81  };
82 
88  {
89  public:
90  // Eigen requires redefining the new operator for classes that contain fixed size Eigen member-data.
91  // See http://eigen.tuxfamily.org/dox/StructHavingEigenMembers.html
92  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
93 
95  Eigen::Matrix3d rotation_;
96 
98  Eigen::Vector3d translation_;
99 
103  chai3d::cGenericObject* graphics_obj_;
104  };
105 }
106 
107 #endif
Definition: SRobotIO.hpp:107
std::string name_
Definition: SGraphicsChaiRigidBody.hpp:66
Definition: SRigidBody.hpp:94
Definition: SGraphicsChaiRigidBody.hpp:87
Eigen::Vector3d translation_
Definition: SGraphicsChaiRigidBody.hpp:98
chai3d::cGenericObject * graphics_obj_
Definition: SGraphicsChaiRigidBody.hpp:103
Definition: SGraphicsChaiRigidBody.hpp:53
int sInt
Definition: DataTypes.hpp:64
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Matrix3d rotation_
Definition: SGraphicsChaiRigidBody.hpp:95