Class BaseVisualizer
Defined in File base-visualizer.hpp
Class Documentation
-
class BaseVisualizer
A base class for defining visualizers for Pinocchio in C++. This provides basic building blocks (a base constructor, data members, getters for the models).
The base API assumes that the visualizer is not the owner of the underlying Pinocchio multibody, visual or collision models. Their lifetimes should be managed by the application context itself.
Remark
C++ port of the BaseVisualizer abstract class in Pinocchio’s Python bindings.
Public Types
-
typedef SE3::Matrix4 Matrix4
Public Functions
-
BaseVisualizer(const Model &model, const GeometryModel &visual_model, const GeometryModel *collision_model, Data &data, GeometryData &visual_data, GeometryData *collision_data)
Class constructor for borrowing external data.
Remark
This constructor throws if a
collision_modelis provided with nocollision_data. If the reverse happens, then the collision GeometryData is simply ignored.- Parameters:
model – Reference to Pinocchio Model class.
visual_model – Reference to visual GeometryModel.
collision_model – Pointer to collision model. Pass nullptr if no collision model is to be provided.
data – Reference to Data object. The visualizer will store an internal reference as a pointer.
visual_data – Reference to visual (VISUAL) GeometryData object. The visualizer will store an internal reference as a pointer.
collision_data – Pointer to collision (COLLISION) GeometryData object. The visualizer will store this pointer internally as a reference.
-
BaseVisualizer(const Model &model, const GeometryModel &visual_model, const GeometryModel *collision_model = nullptr)
Class constructor which will create internally-managed data objects.
- Parameters:
model – Reference to Pinocchio Model class.
visual_model – Reference to visual GeometryModel.
collision_model – Pointer to collision model. Pass nullptr if no collision model is to be provided.
-
virtual ~BaseVisualizer()
-
inline virtual void initViewer()
Initialize the viewer.
-
virtual void loadViewerModel() = 0
Load the Pinocchio model.
-
virtual void rebuildData()
Re-build data objects. Required if the models were modified.
-
virtual void display(const boost::optional<ConstVectorRef> &q = boost::none)
Display configuration
q(if an actual value is given) or update the Pinocchio frames.
-
template<typename D>
inline void display(const Eigen::MatrixBase<D> &q) Display configuration
q(if an actual value is given) or update the Pinocchio frames.
-
virtual void play(const std::vector<ConstVectorRef> &qs, Scalar dt)
Play an entire trajectory, waiting for time
dtbetween each keyframe.
-
void play(const ConstMatrixRef &qs, Scalar dt)
-
inline virtual bool forceRedraw()
Override this in child class when the scene has to be redrawn. Useful for play().
-
inline virtual void setCameraTarget(const Eigen::Ref<const Vector3>&)
Set the active camera target.
-
inline virtual void setCameraPosition(const Eigen::Ref<const Vector3>&)
Set the active camera position.
-
inline void setCameraPose(const SE3 &pose)
Set the active camera 6D pose.
-
inline virtual void setCameraZoom(Scalar)
Set camera zoom level; what this means depends on the implementation (FOV zoom or moving forwards).
-
inline virtual void enableCameraControl(bool)
Enable/disable controlling the camera from keyboard and mouse.
-
inline virtual void clean()
Delete all objects from the scene.
-
inline const Model &model() const
-
inline const GeometryModel &visualModel() const
-
inline const GeometryModel &collisionModel() const
-
inline bool hasCollisionModel() const
-
inline bool hasExternalData() const
Whether the internal data pointers are borrowed (external), or owned.
-
inline Data &data()
-
inline const Data &data() const
-
inline GeometryData &visualData()
-
inline const GeometryData &visualData() const
-
inline GeometryData &collisionData()
-
inline const GeometryData &collisionData() const
Protected Attributes
-
std::reference_wrapper<Model const> m_model
-
GeometryModel const *m_visualModel
-
GeometryModel const *m_collisionModel
-
Data *m_data
-
GeometryData *m_visualData
-
GeometryData *m_collisionData
-
bool m_ownedData
-
typedef SE3::Matrix4 Matrix4