NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
tgCompoundRigidSensor.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2012, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The NASA Tensegrity Robotics Toolkit (NTRT) v1 platform is licensed
7  * under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * http://www.apache.org/licenses/LICENSE-2.0.
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
15  * either express or implied. See the License for the specific language
16  * governing permissions and limitations under the License.
17 */
18 
26 #ifndef TG_COMPOUND_RIGID_SENSOR_H
27 #define TG_COMPOUND_RIGID_SENSOR_H
28 
29 // Includes from the sensors directory:
30 #include "tgSensor.h"
31 // Includes from the NTRT core directory:
32 #include "core/tgModel.h"
33 #include "core/tgBaseRigid.h"
34 // Includes from the C++ standard library:
35 #include <vector>
36 // Includes from Bullet Physics:
37 #include "LinearMath/btVector3.h" //for the functions calculating com and orient
38 #include "LinearMath/btQuaternion.h" // for the initial orientation variable
39 
51 {
52 public:
53 
64 
73  tgCompoundRigidSensor(tgModel* pModel, std::string tag);
74 
75  // Classes with virtual member functions must also have virtual destructors.
76  virtual ~tgCompoundRigidSensor();
77 
84  virtual std::vector<std::string> getSensorDataHeadings();
85  virtual std::vector<std::string> getSensorData();
86 
87  private:
88 
93  btVector3 getCenterOfMass();
94  btVector3 getOrientation();
95  double getMass();
96 
100  std::string m_tag;
101 
106  std::vector<tgBaseRigid*> m_rigids;
107 
116  btQuaternion origOrientQuat;
117  btQuaternion origOrientQuatInv;
118 
119 };
120 
121 #endif //TG_COMPOUND_RIGID_SENSOR_H
Constains definition of abstract class tgSensor, which defines the methods that a sensor must impleme...
Create a box shape as an obstacle or add it to your tensegrity.
Contains the definition of class tgModel.
tgCompoundRigidSensor(tgModel *pModel)
virtual std::vector< std::string > getSensorData()
virtual std::vector< std::string > getSensorDataHeadings()