![]() |
Visual Servoing Platform version 3.7.0
|
#include <vpAR.h>
Public Types | |
| enum | vpImageType { grayImage , colorImage } |
| enum | vpSimulatorViewType { INTERNAL , EXTERNAL } |
Public Member Functions | |
| vpAR () | |
| virtual | ~vpAR () |
| void | initInternalViewer (unsigned int width, unsigned int height, vpImageType type=grayImage) |
| void | setImage (vpImage< unsigned char > &I) |
| void | setImage (vpImage< vpRGBa > &I) |
| virtual void | mainLoop () |
| virtual void | initInternalViewer (unsigned int nlig, unsigned int ncol) |
| void | initExternalViewer (unsigned int nlig, unsigned int ncol) |
| void | initApplication (void *(*start_routine)(void *)) |
| void | initApplication (void *(*start_routine)(void *), void *data) |
| void | initMainApplication () |
| void | closeMainApplication () |
| unsigned int | getInternalWidth () const |
| unsigned int | getInternalHeight () const |
| void | addObject (SoSeparator *newObject, const vpHomogeneousMatrix &fMo) |
| void | redraw () |
| void | load (const char *file_name) |
| void | load (const char *iv_filename, const vpHomogeneousMatrix &fMo) |
| void | save (const char *name, bool binary=false) |
| void | addAbsoluteFrame (float zoom=1) |
| void | addFrame (const vpHomogeneousMatrix &fMo, float zoom=1) |
| void | setZoomFactor (float zoom) |
| void | setCameraPosition (vpHomogeneousMatrix &cMf) |
| void | getCameraPosition (vpHomogeneousMatrix &_cMf) |
| void | moveInternalCamera (vpHomogeneousMatrix &cMf) |
| void | setInternalCameraParameters (vpCameraParameters &cam) |
| void | setExternalCameraParameters (vpCameraParameters &cam) |
| void | getExternalCameraPosition (vpHomogeneousMatrix &cMf) |
| void | getInternalImage (vpImage< unsigned char > &I) |
| void | getInternalImage (vpImage< vpRGBa > &I) |
| void | changeZoomFactor (float zoom, int index) |
| void | write (const char *fileName) |
| unsigned char * | getBufferedOffScreenRenderer () |
| void | getSizeInternalView (int &width, int &height) |
| void | getCameraParameters (vpCameraParameters &cam) |
Public Attributes | |
| vpImageType | typeImage |
| GLubyte * | image_background |
| unsigned char * | bufferView |
| int | get |
Protected Member Functions | |
| void | init () |
| void | kill () |
| void | initSoApplication () |
| void | initSceneGraph () |
| void | addObject (SoSeparator *object, const vpHomogeneousMatrix &fMo, SoSeparator *root) |
| void | offScreenRendering (vpSimulatorViewType view=vpSimulator::EXTERNAL, int *width=nullptr, int *height=nullptr) |
Protected Attributes | |
| HWND | mainWindow |
| bool | mainWindowInitialized |
| vpViewer * | internalView |
| vpViewer * | externalView |
| SbThread * | mainThread |
| unsigned int | internal_width |
| unsigned int | internal_height |
| unsigned int | external_width |
| unsigned int | external_height |
| SoSeparator * | scene |
| SoSeparator * | internalRoot |
| SoSeparator * | externalRoot |
| SoPerspectiveCamera * | internalCamera |
| SoPerspectiveCamera * | externalCamera |
| SoTransform * | internalCameraPosition |
| SoTransform * | extrenalCameraPosition |
| SoSeparator * | internalCameraObject |
| float | zoomFactor |
| bool | cameraPositionInitialized |
| vpHomogeneousMatrix | cMf |
| vpCameraParameters | internalCameraParameters |
| vpCameraParameters | externalCameraParameters |
| SbTime * | realtime |
| SoOffscreenRenderer * | offScreenRenderer |
Implementation of an augmented reality viewer using Coin3D 3rd party.
Thus to be enabled this class requires Coin3D 3rd party installation. Installation instructions are provided here https://visp.inria.fr/3rd_coin.
This class can be used to display an image behind the internal view of the simulator used for augmented reality application.
The code below shows how to use the class.
|
inherited |
| Enumerator | |
|---|---|
| grayImage | |
| colorImage | |
Definition at line 123 of file vpSimulator.h.
|
inherited |
| Enumerator | |
|---|---|
| INTERNAL | |
| EXTERNAL | |
Definition at line 263 of file vpSimulator.h.
|
virtual |
Basic Destructor that calls the kill() method of the vpSimulator class.
Definition at line 70 of file vpAR.cpp.
References vpSimulator::kill().
|
inherited |
Add the representation of the absolute frame.
| zoom | : Zoom factor. |
Definition at line 726 of file vpSimulator.cpp.
References scene.
|
inherited |
Add the representation of a frame.
Add the representation of a frame.
| fMo | : desired position of the frame |
| zoom | : Zoom factor. |
Definition at line 707 of file vpSimulator.cpp.
References addObject(), and externalRoot.
|
inherited |
Add a new object in the scene graph ad a given location.
Add a new object in the scene graph.
| newObject | : pointer toward the new object |
| fMo | : position of the object wrt the reference frame |
Definition at line 765 of file vpSimulator.cpp.
References addObject(), scene, and vpERROR_TRACE.
|
protectedinherited |
Add a new object in the scene graph ad a given location.
Add an object in a sub scene graph.
| object | : pointer toward the new object |
| fMo | : position of the object wrt the reference frame |
| root | : pointer toward the subscene graph |
Definition at line 783 of file vpSimulator.cpp.
Referenced by addFrame(), addObject(), and load().
|
inherited |
Change the zoom factor associated to the child given by index. In order to create multiple zoom factor for multiple object to display, objects loaded the load() function, you have to know the index of the scale object associated to.
Usually, if you define the main zoom factor (for example for the frames) and then load two differents objects, You can change the zoom factor of all the objects using: changeZoomFactor(newZoom, 0)
If you want to change the zoom factor of the first object, use changeZoomFactor(newZoom, 1)
And for the second object, use changeZoomFactor(newZoom, 3)
| zoomFactor | : the new zoom use to specify the apparent size of the object |
| index | : the index of the Scale object to modify (see comments) |
Definition at line 440 of file vpSimulator.cpp.
References scene, and zoomFactor.
|
inherited |
performed some thread destruction in the main program thread should be locate at the end of the main program
Definition at line 856 of file vpSimulator.cpp.
|
inlineinherited |
get the image corresponding to the internal view
Definition at line 282 of file vpSimulator.h.
References bufferView.
|
inlineinherited |
get the intrinsic parameters of the camera
Definition at line 288 of file vpSimulator.h.
References internalCameraParameters.
|
inlineinherited |
get the camera position (from an homogeneous matrix)
Definition at line 244 of file vpSimulator.h.
References cMf.
|
inherited |
get the external camera position
Definition at line 543 of file vpSimulator.cpp.
References cMf, externalCamera, and vpHomogeneousMatrix::inverse().
|
inlineinherited |
Return the height of the internal view.
Definition at line 175 of file vpSimulator.h.
References internal_height.
|
inherited |
get an Image of the internal view
Make a copy of the current internal view
| I | : destination image |
Definition at line 996 of file vpSimulator.cpp.
References bufferView, get, internal_height, internal_width, and vpImageConvert::RGBToGrey().
get an Image of the internal view
Make a copy of the current internal view
| I | : destination image |
Definition at line 983 of file vpSimulator.cpp.
References bufferView, get, internal_height, internal_width, and vpImageConvert::RGBToRGBa().
|
inlineinherited |
Return the width of the internal view.
Definition at line 169 of file vpSimulator.h.
References internal_width.
|
inherited |
get the size of the internal view
Definition at line 971 of file vpSimulator.cpp.
References internalView.
|
protectedinherited |
perform some initialization
Definition at line 264 of file vpSimulator.cpp.
References bufferView, cameraPositionInitialized, external_height, external_width, externalCamera, externalRoot, externalView, extrenalCameraPosition, get, grayImage, image_background, internal_height, internal_width, internalCamera, internalCameraObject, internalCameraPosition, internalRoot, internalView, mainThread, mainWindow, mainWindowInitialized, offScreenRenderer, realtime, scene, typeImage, and zoomFactor.
Referenced by vpSimulator().
|
inherited |
begin the main program
init the main program thread
Definition at line 826 of file vpSimulator.cpp.
References mainThread.
|
inherited |
Set the function used for the simulation loop and the data to pass to this function. As the data are represented using a generic pointer, care should be taken to ensure there is no memory corruption.
| start_routine | : A pointer to the function used as a main simulation loop for the simulation. |
| data | : The data to pass to the main loop. |
Definition at line 841 of file vpSimulator.cpp.
References mainThread.
|
inherited |
initialize the external view
Definition at line 481 of file vpSimulator.cpp.
References external_height, external_width, externalRoot, externalView, vpViewer::externalView, initSceneGraph(), initSoApplication(), mainWindow, and mainWindowInitialized.
| void vpAR::initInternalViewer | ( | unsigned int | width, |
| unsigned int | height, | ||
| vpImageType | type = grayImage ) |
Initialisation of the internal view of the simulator.
| width | : Width of the internal view. |
| height | : Height of the internal view. |
| type | : Type of background image ie gray scaled or color. |
Definition at line 79 of file vpAR.cpp.
References vpSimulator::grayImage, vpSimulator::image_background, vpSimulator::initInternalViewer(), vpSimulator::internal_height, vpSimulator::internal_width, and vpSimulator::typeImage.
|
virtualinherited |
initialize the camera view
Definition at line 447 of file vpSimulator.cpp.
References bufferView, initSceneGraph(), initSoApplication(), internal_height, internal_width, internalRoot, internalView, vpViewer::internalView, mainWindow, and mainWindowInitialized.
Referenced by vpAR::initInternalViewer().
|
inherited |
perform some initialization in the main program thread
performed some initialization in the main program thread should be locate at the beginning of the main program
Definition at line 848 of file vpSimulator.cpp.
References vpTime::wait().
|
protectedinherited |
initialize the scene graph
Definition at line 349 of file vpSimulator.cpp.
References externalCamera, externalRoot, internalCamera, internalCameraObject, internalCameraPosition, internalRoot, realtime, scene, and zoomFactor.
Referenced by initExternalViewer(), and initInternalViewer().
|
protectedinherited |
open the SoGui application
Definition at line 343 of file vpSimulator.cpp.
References mainWindow, and mainWindowInitialized.
Referenced by initExternalViewer(), and initInternalViewer().
|
protectedinherited |
perform some destruction
Definition at line 302 of file vpSimulator.cpp.
References bufferView, externalView, image_background, and internalView.
Referenced by vpAR::~vpAR(), and ~vpSimulator().
|
inherited |
load an iv file
loading the virtual scene
Definition at line 661 of file vpSimulator.cpp.
References scene, vpERROR_TRACE, and zoomFactor.
|
inherited |
load an iv file, set the location of this scene
Add a new object in the scene graph.
| iv_filename | : name of.iv file to load |
| fMo | : position of the object wrt the reference frame |
Definition at line 736 of file vpSimulator.cpp.
References addObject(), and vpERROR_TRACE.
|
virtualinherited |
activate the mainloop
Definition at line 641 of file vpSimulator.cpp.
References mainWindowInitialized, vpERROR_TRACE, and vpTime::wait().
|
inherited |
modify the position of the camera in the scene graph
Definition at line 584 of file vpSimulator.cpp.
References cMf, internalCamera, and internalCameraPosition.
Referenced by redraw().
|
protectedinherited |
Definition at line 872 of file vpSimulator.cpp.
References externalView, INTERNAL, internalView, offScreenRenderer, and vpERROR_TRACE.
|
inherited |
display the scene (handle with care)
this function MUST NOT be called from a thread where the vpSimulator and its mainloop are not
Definition at line 616 of file vpSimulator.cpp.
References cMf, externalView, internalView, and moveInternalCamera().
|
inherited |
save the scene in an iv file
Definition at line 688 of file vpSimulator.cpp.
References scene.
Referenced by gen_java.JavaWrapperGenerator::finalize(), and gen_java.JavaWrapperGenerator::gen().
|
inherited |
set the camera position (from an homogeneous matrix)
Definition at line 579 of file vpSimulator.cpp.
References cameraPositionInitialized, and cMf.
|
inherited |
set external camera parameters
Definition at line 525 of file vpSimulator.cpp.
References external_height, external_width, externalCamera, externalCameraParameters, vpCameraParameters::get_px(), and vpCameraParameters::get_py().
| void vpAR::setImage | ( | vpImage< unsigned char > & | I | ) |
Set the background image and turn it to deal with the frame of OpenGL.
| I | : Gray scaled image for the background. |
Definition at line 105 of file vpAR.cpp.
References vpException::dimensionError, vpSimulator::image_background, vpSimulator::internal_height, vpSimulator::internal_width, and vpERROR_TRACE.
Set the background image and turn it to deal with the frame of OpenGL.
| I | : Color image for the background. |
Definition at line 128 of file vpAR.cpp.
References vpException::dimensionError, vpSimulator::image_background, vpSimulator::internal_height, vpSimulator::internal_width, and vpERROR_TRACE.
|
inherited |
set internal camera parameters
Definition at line 508 of file vpSimulator.cpp.
References vpCameraParameters::get_px(), vpCameraParameters::get_py(), internal_height, internal_width, internalCamera, and internalCameraParameters.
|
inherited |
set the size of the camera/frame
Define the zoom factor used to define the size of the objects (frame, camera, ...).
| zoom | zoom factor of the objects. By default, 1. |
Definition at line 406 of file vpSimulator.cpp.
References scene, and zoomFactor.
|
inherited |
Definition at line 941 of file vpSimulator.cpp.
References bufferView, get, internal_height, internal_width, vpTRACE, and vpImageIo::write().
|
inherited |
image of the internal view
Definition at line 274 of file vpSimulator.h.
Referenced by getBufferedOffScreenRenderer(), getInternalImage(), getInternalImage(), init(), initInternalViewer(), kill(), vpSimulator(), and write().
|
protectedinherited |
Definition at line 232 of file vpSimulator.h.
Referenced by init(), setCameraPosition(), and vpSimulator().
|
protectedinherited |
internal camera position
Definition at line 234 of file vpSimulator.h.
Referenced by getCameraPosition(), getExternalCameraPosition(), moveInternalCamera(), redraw(), setCameraPosition(), and vpSimulator().
|
protectedinherited |
Definition at line 161 of file vpSimulator.h.
Referenced by init(), initExternalViewer(), setExternalCameraParameters(), and vpSimulator().
|
protectedinherited |
Definition at line 160 of file vpSimulator.h.
Referenced by init(), initExternalViewer(), setExternalCameraParameters(), and vpSimulator().
|
protectedinherited |
external camera
Definition at line 189 of file vpSimulator.h.
Referenced by getExternalCameraPosition(), init(), initSceneGraph(), setExternalCameraParameters(), and vpSimulator().
|
protectedinherited |
internal camera parameters
Definition at line 238 of file vpSimulator.h.
Referenced by setExternalCameraParameters(), and vpSimulator().
|
protectedinherited |
root node of the external view
Definition at line 184 of file vpSimulator.h.
Referenced by addFrame(), init(), initExternalViewer(), initSceneGraph(), and vpSimulator().
|
protectedinherited |
view from an external camera
Definition at line 134 of file vpSimulator.h.
Referenced by init(), initExternalViewer(), kill(), offScreenRendering(), redraw(), and vpSimulator().
|
protectedinherited |
external camera position
Definition at line 195 of file vpSimulator.h.
Referenced by init(), and vpSimulator().
|
inherited |
Flag to protect the read and write of the framebuffer (between the simulator and the viewer).
Definition at line 278 of file vpSimulator.h.
Referenced by getInternalImage(), getInternalImage(), init(), vpSimulator(), and write().
|
inherited |
Definition at line 126 of file vpSimulator.h.
Referenced by init(), vpAR::initInternalViewer(), kill(), vpAR::setImage(), vpAR::setImage(), and vpSimulator().
|
protectedinherited |
Definition at line 159 of file vpSimulator.h.
Referenced by getInternalHeight(), getInternalImage(), getInternalImage(), init(), vpAR::initInternalViewer(), initInternalViewer(), vpAR::setImage(), vpAR::setImage(), setInternalCameraParameters(), vpSimulator(), and write().
|
protectedinherited |
Definition at line 158 of file vpSimulator.h.
Referenced by getInternalImage(), getInternalImage(), getInternalWidth(), init(), vpAR::initInternalViewer(), initInternalViewer(), vpAR::setImage(), vpAR::setImage(), setInternalCameraParameters(), vpSimulator(), and write().
|
protectedinherited |
internal camera
Definition at line 187 of file vpSimulator.h.
Referenced by init(), initSceneGraph(), moveInternalCamera(), setInternalCameraParameters(), and vpSimulator().
|
protectedinherited |
representation of the camera in the external view
Definition at line 198 of file vpSimulator.h.
Referenced by init(), initSceneGraph(), and vpSimulator().
|
protectedinherited |
internal camera parameters
Definition at line 236 of file vpSimulator.h.
Referenced by getCameraParameters(), setInternalCameraParameters(), and vpSimulator().
|
protectedinherited |
internal camera position
Definition at line 192 of file vpSimulator.h.
Referenced by init(), initSceneGraph(), moveInternalCamera(), and vpSimulator().
|
protectedinherited |
root node of the internal view
Definition at line 182 of file vpSimulator.h.
Referenced by init(), initInternalViewer(), initSceneGraph(), and vpSimulator().
|
protectedinherited |
view from the camera
Definition at line 132 of file vpSimulator.h.
Referenced by getSizeInternalView(), init(), initInternalViewer(), kill(), offScreenRendering(), redraw(), and vpSimulator().
|
protectedinherited |
thread with the main program
Definition at line 144 of file vpSimulator.h.
Referenced by init(), initApplication(), initApplication(), and vpSimulator().
|
protectedinherited |
main Widget
Definition at line 110 of file vpSimulator.h.
Referenced by init(), initExternalViewer(), initInternalViewer(), initSoApplication(), and vpSimulator().
|
protectedinherited |
Definition at line 117 of file vpSimulator.h.
Referenced by init(), initExternalViewer(), initInternalViewer(), initSoApplication(), mainLoop(), and vpSimulator().
|
protectedinherited |
Definition at line 269 of file vpSimulator.h.
Referenced by init(), offScreenRendering(), and vpSimulator().
|
protectedinherited |
Definition at line 268 of file vpSimulator.h.
Referenced by init(), initSceneGraph(), and vpSimulator().
|
protectedinherited |
root node of the scene : contains everything except stuff specific to each view
Definition at line 180 of file vpSimulator.h.
Referenced by addAbsoluteFrame(), addObject(), changeZoomFactor(), init(), initSceneGraph(), load(), save(), setZoomFactor(), and vpSimulator().
|
inherited |
Definition at line 124 of file vpSimulator.h.
Referenced by init(), vpAR::initInternalViewer(), and vpSimulator().
|
protectedinherited |
Definition at line 228 of file vpSimulator.h.
Referenced by changeZoomFactor(), init(), initSceneGraph(), load(), setZoomFactor(), and vpSimulator().