6 #ifndef CNOID_BODY_EXTRA_BODY_STATE_ACCESSOR_H 7 #define CNOID_BODY_EXTRA_BODY_STATE_ACCESSOR_H 9 #include <cnoid/Referenced> 10 #include <cnoid/Array2D> 11 #include <cnoid/EigenTypes> 12 #include <cnoid/Signal> 13 #include <boost/variant.hpp> 21 static int elementSizes[];
29 Angle(
double rad) : angle(rad) { }
30 double value()
const {
return angle; }
39 STRONG_WARNING = WARNING | 1 << 1
42 enum { BOOL, INT, DOUBLE, ANGLE, STRING, VECTOR3,
VECTORX, NONE };
49 boost::variant<bool, int, double, Angle, std::string, Vector3f, VectorX, None> value;
54 template<
typename T>
Value&
operator=(
const T& rhs) { value = rhs;
return *
this; }
55 bool getBool()
const {
return boost::get<bool>(value); }
56 int getInt()
const {
return boost::get<int>(value); }
57 double getDouble()
const {
return boost::get<double>(value); }
58 double getAngle()
const {
return boost::get<Angle>(value).value(); }
60 const std::string&
getString()
const {
return boost::get<std::string>(value); }
61 const Vector3f&
getVector3f()
const {
return boost::get<Vector3f>(value); }
65 int which()
const {
return value.which(); }
66 bool empty()
const {
return value.empty(); }
76 int n = elementSizes[v.
which()];
83 virtual int getNumStateItems()
const = 0;
84 virtual int getNumJointStateItems()
const = 0;
85 virtual const char* getStateItemName(
int stateIndex)
const = 0;
87 virtual const char* getStateItemLabel(
int stateIndex)
const = 0;
88 virtual const char* getJointStateItemName(
int jointStateIndex)
const = 0;
90 virtual const char* getJointStateItemLabel(
int jointStateIndex)
const = 0;
92 virtual void getState(std::vector<Value>& out_state)
const = 0;
99 virtual bool setState(
const std::vector<Value>& state)
const;
104 virtual void getJointState(
Array2D<Value>& out_jointState)
const = 0;
111 virtual bool setJointState(
const Array2D<Value>& jointState)
const;
double getAngle() const
Definition: ExtraBodyStateAccessor.h:58
Eigen::VectorXd VectorX
Definition: EigenTypes.h:62
bool empty() const
Definition: ExtraBodyStateAccessor.h:66
Value & operator=(const T &rhs)
Definition: ExtraBodyStateAccessor.h:54
int which() const
Definition: ExtraBodyStateAccessor.h:65
Angle(double rad)
Definition: ExtraBodyStateAccessor.h:29
Definition: Referenced.h:67
static int getNumValueElements(const Value &v)
Definition: ExtraBodyStateAccessor.h:75
double value() const
Definition: ExtraBodyStateAccessor.h:30
void setAngle(double rad)
Definition: ExtraBodyStateAccessor.h:59
void setAttribute(int attribute)
Definition: ExtraBodyStateAccessor.h:67
Definition: Referenced.h:128
double getDouble() const
Definition: ExtraBodyStateAccessor.h:57
int attribute() const
Definition: ExtraBodyStateAccessor.h:68
Attribute
Definition: ExtraBodyStateAccessor.h:36
Definition: ExtraBodyStateAccessor.h:44
void notifyStateChange()
Definition: ExtraBodyStateAccessor.h:114
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Value & operator=(const Value &rhs)
Definition: ExtraBodyStateAccessor.h:53
Vector3 getVector3() const
Definition: ExtraBodyStateAccessor.h:62
int getInt() const
Definition: ExtraBodyStateAccessor.h:56
Value()
Definition: ExtraBodyStateAccessor.h:52
Definition: ExtraBodyStateAccessor.h:26
const Vector3f & getVector3f() const
Definition: ExtraBodyStateAccessor.h:61
const std::string & getString() const
Definition: ExtraBodyStateAccessor.h:60
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
Definition: ExtraBodyStateAccessor.h:19
SignalProxy< void()> sigStateChanged()
Definition: ExtraBodyStateAccessor.h:113
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: ExtraBodyStateAccessor.h:42
const VectorX & getVectorX() const
Definition: ExtraBodyStateAccessor.h:63
ref_ptr< ExtraBodyStateAccessor > ExtraBodyStateAccessorPtr
Definition: ExtraBodyStateAccessor.h:120
bool getBool() const
Definition: ExtraBodyStateAccessor.h:55
Definition: ExtraBodyStateAccessor.h:34