#include <ViewerWidget.h>
Public Slots | |
void | addCurrentToCameraPath (int id, int frame) |
void | appendCurrentToCameraPath (int id) |
void | appendToCameraPath (int id, const octomath::Pose6D &pose) |
void | deleteCameraPath (int id) |
void | enableHeightColorMode (bool enabled=true) |
void | enablePrintoutMode (bool enabled=true) |
void | enableSelectionBox (bool enabled=true) |
void | enableSemanticColoring (bool enabled=true) |
void | jumpToCamFrame (int id, int frame) |
void | playCameraPath (int id, int start_frame) |
void | removeFromCameraPath (int id, int frame) |
void | resetView () |
const SelectionBox & | selectionBox () const |
void | setCamPose (const octomath::Pose6D &pose) |
void | setCamPosition (double x, double y, double z, double lookX, double lookY, double lookZ) |
virtual void | setSceneBoundingBox (const qglviewer::Vec &min, const qglviewer::Vec &max) |
void | stopCameraPath (int id) |
void | updateCameraPath (int id, int frame) |
Signals | |
void | cameraPathFrameChanged (int id, int current_camera_frame) |
void | cameraPathStopped (int id) |
Public Member Functions | |
void | addSceneObject (SceneObject *obj) |
void | clearAll () |
void | removeSceneObject (SceneObject *obj) |
ViewerWidget (QWidget *parent=NULL) | |
Protected Member Functions | |
virtual void | draw () |
virtual void | drawWithNames () |
virtual QString | helpString () const |
virtual void | init () |
qglviewer::Quaternion | poseToQGLQuaternion (const octomath::Pose6D &pose) |
virtual void | postDraw () |
virtual void | postSelection (const QPoint &) |
Protected Attributes | |
int | m_current_camera_frame |
int | m_current_camera_path |
bool | m_drawAxis |
bool | m_drawGrid |
bool | m_drawSelectionBox |
bool | m_heightColorMode |
bool | m_printoutMode |
std::vector< SceneObject * > | m_sceneObjects |
SelectionBox | m_selectionBox |
bool | m_semantic_coloring |
double | m_zMax |
double | m_zMin |
Private Slots | |
void | cameraPathFinished () |
void | cameraPathInterpolated () |
Definition at line 35 of file ViewerWidget.h.
octomap::ViewerWidget::ViewerWidget | ( | QWidget * | parent = NULL | ) |
Definition at line 36 of file ViewerWidget.cpp.
void octomap::ViewerWidget::addCurrentToCameraPath | ( | int | id, |
int | frame | ||
) | [slot] |
Definition at line 222 of file ViewerWidget.cpp.
void octomap::ViewerWidget::addSceneObject | ( | SceneObject * | obj | ) |
Adds an object to the scene that can be drawn
obj | SceneObject to be added |
Definition at line 292 of file ViewerWidget.cpp.
void octomap::ViewerWidget::appendCurrentToCameraPath | ( | int | id | ) | [slot] |
Definition at line 216 of file ViewerWidget.cpp.
void octomap::ViewerWidget::appendToCameraPath | ( | int | id, |
const octomath::Pose6D & | pose | ||
) | [slot] |
Definition at line 176 of file ViewerWidget.cpp.
void octomap::ViewerWidget::cameraPathFinished | ( | ) | [private, slot] |
Definition at line 262 of file ViewerWidget.cpp.
void octomap::ViewerWidget::cameraPathFrameChanged | ( | int | id, |
int | current_camera_frame | ||
) | [signal] |
void octomap::ViewerWidget::cameraPathInterpolated | ( | ) | [private, slot] |
Definition at line 271 of file ViewerWidget.cpp.
void octomap::ViewerWidget::cameraPathStopped | ( | int | id | ) | [signal] |
void octomap::ViewerWidget::clearAll | ( | ) |
Definition at line 310 of file ViewerWidget.cpp.
void octomap::ViewerWidget::deleteCameraPath | ( | int | id | ) | [slot] |
Definition at line 167 of file ViewerWidget.cpp.
void octomap::ViewerWidget::draw | ( | ) | [protected, virtual] |
The core method of the viewer, that draws the scene.
If you build a class that inherits from QGLViewer, this is the method you want to overload. See the simpleViewer example for an illustration.
The camera modelView matrix set in preDraw() converts from the world to the camera coordinate systems. Vertices given in draw() can then be considered as being given in the world coordinate system. The camera is moved in this world using the mouse. This representation is much more intuitive than the default camera-centric OpenGL standard.
GL_PROJECTION
matrix should not be modified by this method, to correctly display visual hints (axis, grid, FPS...) in postDraw(). Use push/pop or call camera()->loadProjectionMatrix() at the end of draw() if you need to change the projection matrix (unlikely). On the other hand, the GL_MODELVIEW
matrix can be modified and left in a arbitrary state. Reimplemented from QGLViewer.
Definition at line 317 of file ViewerWidget.cpp.
void octomap::ViewerWidget::drawWithNames | ( | ) | [protected, virtual] |
This method is called by select() and should draw selectable entities.
Default implementation is empty. Overload and draw the different elements of your scene you want to be able to select. The default select() implementation relies on the GL_SELECT
, and requires that each selectable element is drawn within a glPushName()
- glPopName()
block. A typical usage would be (see the select example):
void Viewer::drawWithNames() { for (int i=0; i<nbObjects; ++i) { glPushName(i); object(i)->draw(); glPopName(); } }
The resulting selected name is computed by endSelection(), which setSelectedName() to the integer id pushed by this method (a value of -1 means no selection). Use selectedName() to update your selection, probably in the postSelection() method.
glBegin(GL_POINTS)
; and glVertex3fv()
in the above draw()
method (not compatible with raster mode): use glRasterPos3fv()
instead. Reimplemented from QGLViewer.
Definition at line 349 of file ViewerWidget.cpp.
void octomap::ViewerWidget::enableHeightColorMode | ( | bool | enabled = true | ) | [slot] |
Definition at line 96 of file ViewerWidget.cpp.
void octomap::ViewerWidget::enablePrintoutMode | ( | bool | enabled = true | ) | [slot] |
Definition at line 104 of file ViewerWidget.cpp.
void octomap::ViewerWidget::enableSelectionBox | ( | bool | enabled = true | ) | [slot] |
Definition at line 120 of file ViewerWidget.cpp.
void octomap::ViewerWidget::enableSemanticColoring | ( | bool | enabled = true | ) | [slot] |
Definition at line 112 of file ViewerWidget.cpp.
QString octomap::ViewerWidget::helpString | ( | ) | const [protected, virtual] |
Returns the QString displayed in the help() window main tab.
Overload this method to define your own help string, which should shortly describe your application and explain how it works. Rich-text (HTML) tags can be used (see QStyleSheet() documentation for available tags):
QString myViewer::helpString() const { QString text("<h2>M y V i e w e r</h2>"); text += "Displays a <b>Scene</b> using OpenGL. Move the camera using the mouse."; return text; }
See also mouseString() and keyboardString().
Reimplemented from QGLViewer.
Definition at line 80 of file ViewerWidget.cpp.
void octomap::ViewerWidget::init | ( | ) | [protected, virtual] |
Initializes the viewer OpenGL context.
This method is called before the first drawing and should be overloaded to initialize some of the OpenGL flags. The default implementation is empty. See initializeGL().
Typical usage include camera() initialization (showEntireScene()), previous viewer state restoration (restoreStateFromFile()), OpenGL state modification and display list creation.
Note that initializeGL() modifies the standard OpenGL context. These values can be restored back in this method.
Reimplemented from QGLViewer.
Definition at line 45 of file ViewerWidget.cpp.
void octomap::ViewerWidget::jumpToCamFrame | ( | int | id, |
int | frame | ||
) | [slot] |
Definition at line 156 of file ViewerWidget.cpp.
void octomap::ViewerWidget::playCameraPath | ( | int | id, |
int | start_frame | ||
) | [slot] |
Definition at line 239 of file ViewerWidget.cpp.
qglviewer::Quaternion octomap::ViewerWidget::poseToQGLQuaternion | ( | const octomath::Pose6D & | pose | ) | [protected] |
Definition at line 126 of file ViewerWidget.cpp.
void octomap::ViewerWidget::postDraw | ( | ) | [protected, virtual] |
Overloaded from QGLViewer. Draws own axis and grid in scale, then calls QGLViewer::postDraw().
Reimplemented from QGLViewer.
Definition at line 355 of file ViewerWidget.cpp.
void octomap::ViewerWidget::postSelection | ( | const QPoint & | point | ) | [protected, virtual] |
This method is called at the end of the select() procedure. It should finalize the selection process and update the data structure/interface/computation/display... according to the newly selected entity.
The default implementation is empty. Overload this method if needed, and use selectedName() to retrieve the selected entity name (returns -1 if no object was selected). See the select example for an illustration.
Reimplemented from QGLViewer.
Definition at line 392 of file ViewerWidget.cpp.
void octomap::ViewerWidget::removeFromCameraPath | ( | int | id, |
int | frame | ||
) | [slot] |
Definition at line 186 of file ViewerWidget.cpp.
void octomap::ViewerWidget::removeSceneObject | ( | SceneObject * | obj | ) |
Removes a SceneObject from the list of drawable objects if it has been added previously. Does nothing otherwise.
obj | SceneObject to be removed |
Definition at line 298 of file ViewerWidget.cpp.
void octomap::ViewerWidget::resetView | ( | ) | [slot] |
Resets the 3D viewpoint to the initial value
Definition at line 73 of file ViewerWidget.cpp.
const SelectionBox& octomap::ViewerWidget::selectionBox | ( | ) | const [inline, slot] |
Definition at line 75 of file ViewerWidget.h.
void octomap::ViewerWidget::setCamPose | ( | const octomath::Pose6D & | pose | ) | [slot] |
Definition at line 151 of file ViewerWidget.cpp.
void octomap::ViewerWidget::setCamPosition | ( | double | x, |
double | y, | ||
double | z, | ||
double | lookX, | ||
double | lookY, | ||
double | lookZ | ||
) | [slot] |
Definition at line 143 of file ViewerWidget.cpp.
void octomap::ViewerWidget::setSceneBoundingBox | ( | const qglviewer::Vec & | min, |
const qglviewer::Vec & | max | ||
) | [virtual, slot] |
Convenient way to call setSceneCenter() and setSceneRadius() from a (world axis aligned) bounding box of the scene.
This is equivalent to:
setSceneCenter((min+max) / 2.0); setSceneRadius((max-min).norm() / 2.0);
Reimplemented from QGLViewer.
Definition at line 286 of file ViewerWidget.cpp.
void octomap::ViewerWidget::stopCameraPath | ( | int | id | ) | [slot] |
Definition at line 253 of file ViewerWidget.cpp.
void octomap::ViewerWidget::updateCameraPath | ( | int | id, |
int | frame | ||
) | [slot] |
Definition at line 200 of file ViewerWidget.cpp.
int octomap::ViewerWidget::m_current_camera_frame [protected] |
Definition at line 119 of file ViewerWidget.h.
int octomap::ViewerWidget::m_current_camera_path [protected] |
Definition at line 118 of file ViewerWidget.h.
bool octomap::ViewerWidget::m_drawAxis [protected] |
Definition at line 111 of file ViewerWidget.h.
bool octomap::ViewerWidget::m_drawGrid [protected] |
Definition at line 112 of file ViewerWidget.h.
bool octomap::ViewerWidget::m_drawSelectionBox [protected] |
Definition at line 113 of file ViewerWidget.h.
bool octomap::ViewerWidget::m_heightColorMode [protected] |
Definition at line 108 of file ViewerWidget.h.
bool octomap::ViewerWidget::m_printoutMode [protected] |
Definition at line 107 of file ViewerWidget.h.
std::vector<SceneObject*> octomap::ViewerWidget::m_sceneObjects [protected] |
Definition at line 104 of file ViewerWidget.h.
SelectionBox octomap::ViewerWidget::m_selectionBox [protected] |
Definition at line 105 of file ViewerWidget.h.
bool octomap::ViewerWidget::m_semantic_coloring [protected] |
Definition at line 109 of file ViewerWidget.h.
double octomap::ViewerWidget::m_zMax [protected] |
Definition at line 116 of file ViewerWidget.h.
double octomap::ViewerWidget::m_zMin [protected] |
Definition at line 115 of file ViewerWidget.h.