gramods
|
Geometrically corrected projector view, a view that is undistorted by geometrical projection. More...
#include <GeometryCorrectedProjectorView.hh>
Classes | |
struct | Impl |
Public Member Functions | |
void | traverse (Visitor *visitor) override |
Propagates the specified visitor. More... | |
void | setBufferWidth (int W) |
Sets the resolution of the intermediate buffer, in pixels. More... | |
void | setBufferHeight (int H) |
Sets the resolution of the intermediate buffer, in pixels. More... | |
void | setLinearInterpolation (bool on) |
Turn on or off linear interpolation in the projection from linear graphics to non-linear projection space. More... | |
void | setTopLeftCorner (Eigen::Vector3f tlc) |
Set the top left corner of the projection. More... | |
void | setBottomRightCorner (Eigen::Vector3f brc) |
Set the bottom right corner of the projection. More... | |
void | setPosition (Eigen::Vector3f p) |
Set the position of the optic center of the projection. More... | |
void | setExtrinsics (gmCore::float12 M) |
Set the position and orientation of the projection as an extrinsics matrix (12 values, 4 column 3-vectors, row major): More... | |
void | setIntrinsics (gmCore::float4 m) |
Set the projection shape, as intrinsics (fx fy cx cy), in unitless values assuming a sensor size of 1x1. More... | |
void | setClipAngles (gmCore::angle4 a) |
Angles between forward direction and the clip planes left, right, bottom and top, in radians. More... | |
void | setOrientation (Eigen::Quaternionf q) |
Set orientation of the projection, of the extrinsics. More... | |
void | setGeometry (std::shared_ptr< Geometry > g) |
Set the geometry to use for projection correction. More... | |
![]() | |
void | renderFullPipeline (ViewSettings settings) override final |
Dispatches specified renders, both method argument and class members. More... | |
void | traverse (Visitor *visitor) override |
Propagates the specified visitor. More... | |
void | setMultiscopicMultiplexer (std::shared_ptr< MultiscopicMultiplexer > sm) |
Sets the multiscopic multiplexing to use for rendering. More... | |
![]() | |
void | addNode (std::shared_ptr< Node > node) |
Adds a scenegraph to the view. More... | |
void | setViewpoint (std::shared_ptr< Viewpoint > viewpoint) |
Sets the viewpoint to use in the views rendered by this ViewBase. More... | |
void | addViewpoint (std::shared_ptr< Viewpoint > viewpoint) |
Adds a viewpoint to use in the views rendered by this ViewBase. More... | |
void | traverse (Visitor *visitor) override |
Propagates the specified visitor. More... | |
![]() | |
Object () | |
Initializes internal data. More... | |
virtual | ~Object () |
Cleaning up internal data. More... | |
virtual void | initialize () |
Called to initialize the Object. More... | |
virtual void | accept (Visitor *visitor) |
Calls the visitors apply method with this as argument. More... | |
bool | isInitialized () |
Returns true if the Object is initialized. More... | |
Static Public Attributes | |
static gramods::gmCore::OFactory::OFactoryInformation | _gm_ofi |
![]() | |
static gramods::gmCore::OFactory::OFactoryInformation | _gm_ofi |
![]() | |
static gramods::gmCore::OFactory::OFactoryInformation | _gm_ofi |
![]() | |
static gramods::gmCore::OFactory::OFactoryInformation | _gm_ofi |
Protected Member Functions | |
void | renderFullPipeline (ViewSettings settings, Eye eye) override |
Renders one eye at a time, or just a mono eye. More... | |
![]() | |
void | populateViewSettings (ViewSettings &settings) |
Adds the dispatcher's local renderers and viewpoint, if set. More... | |
Additional Inherited Members | |
![]() | |
std::shared_ptr< MultiscopicMultiplexer > | multiscopic_multiplexer |
![]() | |
Node::list | nodes |
std::vector< std::shared_ptr< Viewpoint > > | viewpoints |
Geometrically corrected projector view, a view that is undistorted by geometrical projection.
Use this view if there is a projector that shows its image on a geometrically non-complex surface (such as a flat, cylindrical or spherical surface) and the observer, or viewer, is not co-located with this projector but still wants a non-distorted view.
To function correctly, this view needs to be configured with three settings: position, orientation and frustum shape.
The estimation of the frustum shape from specified corners will not* control the orientation of the projection, but rather take orientation into account. This means that the corners positions of the projection can be measured directly on the (potentially non-linear) projection surface.
|
overrideprotectedvirtual |
Renders one eye at a time, or just a mono eye.
Implements gramods::gmGraphics::MultiscopicView.
void gramods::gmGraphics::GeometryCorrectedProjectorView::setBottomRightCorner | ( | Eigen::Vector3f | brc | ) |
Set the bottom right corner of the projection.
XML-attribute: bottomRightCorner
void gramods::gmGraphics::GeometryCorrectedProjectorView::setBufferHeight | ( | int | H | ) |
Sets the resolution of the intermediate buffer, in pixels.
Default is 2048.
XML-attribute: bufferHeight
void gramods::gmGraphics::GeometryCorrectedProjectorView::setBufferWidth | ( | int | W | ) |
Sets the resolution of the intermediate buffer, in pixels.
Default is 2048.
XML-attribute: bufferWidth
void gramods::gmGraphics::GeometryCorrectedProjectorView::setClipAngles | ( | gmCore::angle4 | a | ) |
Angles between forward direction and the clip planes left, right, bottom and top, in radians.
Left and bottom angles increase left-wise and downwards, respectively, while right and top angles increase right-wise and upwards, respectively.
XML-attribute: clipAngles
void gramods::gmGraphics::GeometryCorrectedProjectorView::setExtrinsics | ( | gmCore::float12 | M | ) |
Set the position and orientation of the projection as an extrinsics matrix (12 values, 4 column 3-vectors, row major):
XML-attribute: extrinsics
void gramods::gmGraphics::GeometryCorrectedProjectorView::setGeometry | ( | std::shared_ptr< Geometry > | g | ) |
Set the geometry to use for projection correction.
XML-attribute: geometry
void gramods::gmGraphics::GeometryCorrectedProjectorView::setIntrinsics | ( | gmCore::float4 | m | ) |
Set the projection shape, as intrinsics (fx fy cx cy), in unitless values assuming a sensor size of 1x1.
XML-attribute: intrinsics
void gramods::gmGraphics::GeometryCorrectedProjectorView::setLinearInterpolation | ( | bool | on | ) |
Turn on or off linear interpolation in the projection from linear graphics to non-linear projection space.
Default is off.
XML-attribute: linearInterpolation
void gramods::gmGraphics::GeometryCorrectedProjectorView::setOrientation | ( | Eigen::Quaternionf | q | ) |
Set orientation of the projection, of the extrinsics.
XML-attribute: orientation
void gramods::gmGraphics::GeometryCorrectedProjectorView::setPosition | ( | Eigen::Vector3f | p | ) |
Set the position of the optic center of the projection.
XML-attribute: position
void gramods::gmGraphics::GeometryCorrectedProjectorView::setTopLeftCorner | ( | Eigen::Vector3f | tlc | ) |
Set the top left corner of the projection.
XML-attribute: topLeftCorner
|
overridevirtual |
Propagates the specified visitor.
Reimplemented from gramods::gmCore::Object.