32 #ifndef EULER_PROPERTY_H    33 #define EULER_PROPERTY_H    35 #include <Eigen/Geometry>    43 class SpinBoxFloatProperty;
    56                 const QString& name = QString(),
    57                 const Eigen::Quaterniond& value = Eigen::Quaterniond::Identity(),
    58                 const char* changed_slot = 
nullptr,
    59                 QObject* receiver = 
nullptr);
    64   bool setValue(
const QVariant& value) 
override;
    80   void setEulerAngles(
double e1, 
double e2, 
double e3, 
bool normalize);
   113 #endif // EULER_PROPERTY_H Eigen::Quaterniond getQuaternion() const 
EulerProperty(Property *parent=nullptr, const QString &name=QString(), const Eigen::Quaterniond &value=Eigen::Quaterniond::Identity(), const char *changed_slot=nullptr, QObject *receiver=nullptr)
void setReadOnly(bool read_only) override
Overridden from Property to propagate read-only-ness to children. 
SpinBoxFloatProperty * euler_[3]
void quaternionChanged(Eigen::Quaterniond q)
Eigen::Quaterniond quaternion_
void statusUpdate(rviz::StatusProperty::Level, const QString &, const QString &)
void setEulerAngles(double euler[3], bool normalize)
invalid_axes(const std::string &msg)
void save(Config config) const override
void load(const Config &config) override
Load the value of this property and/or its children from the given Config node. 
void updateAngles(const Eigen::Quaterniond &q)
bool setValue(const QVariant &value) override
void setQuaternion(const Eigen::Quaterniond &q)
void setEulerAxes(const QString &axes_spec)
TFSIMD_FORCE_INLINE Vector3 & normalize()
bool ignore_child_updates_
void updateFromChildren()