omegalib
13.1
|
Stores omegalib display configuration data. More...
#include <DisplayConfig.h>
Public Types | |
typedef KeyValue< String, Ref< DisplayTileConfig > > | Tile |
Public Member Functions | |
int | setupMultiInstance (MultiInstanceConfig *mic) |
Modifies the display configuration to run on the tile subset specified in MultiInstanceConfig. More... | |
bool | isHostInTileSection (const String &hostname, int tilex, int tiley, int tilew, int tileh) |
Returns true if the specified host is running a tile in the specified section. More... | |
void | setTilesEnabled (int tilex, int tiley, int tilew, int tileh, bool enabled) |
Enables or disables tiles in the specified rectangle. More... | |
void | setTilesEnabled (const String &tiles) |
Enables tiles based on their name. More... | |
std::pair< bool, Vector3f > | getPixelPosition (int x, int y) |
Returns the position in real-world coordinates of the specified display pixel. More... | |
DisplayTileConfig * | getTileFromPixel (int x, int y) |
bool | hasRayPointMapper () |
Returns true if this configuration has a ray-point mapper function for the display geometry. More... | |
Vector2f | rayToPoint (const Ray &r) |
Computes the intersection of a ray with the display geometry. More... | |
Ray | getViewRay (Vector2i position) |
Returns a view ray given a global (canvas) pointer position in pixel coordinates. More... | |
Ray | getViewRay (Vector2i position, DisplayTileConfig *dtc) |
Returns a view ray given a local pointer positon and a tile index. More... | |
bool | getViewRayFromEvent (const Event &evt, Ray &ray, bool normalizedPointerCoords=false, Camera *=NULL) |
Computes a view ray from a pointer or wand event. More... | |
const Rect & | getCanvasRect () const |
Gts/sets the canvas minimum and maximum boundaries. More... | |
void | setCanvasRect (const Rect &cr) |
void | bringToFront () |
Make sure the canvas for this display configuration is on top of any other application. More... | |
bool | isBringToFrontRequested () |
Returns true if a bring to front has been requested in this frame. More... | |
DisplayConfig () | |
Public Member Functions inherited from omicron::ReferenceType | |
ReferenceType () | |
virtual | ~ReferenceType () |
void | ref () |
void | unref () |
long | refCount () |
Static Public Member Functions | |
static void | LoadConfig (Setting &s, DisplayConfig &cfg) |
Static Public Member Functions inherited from omicron::ReferenceType | |
static void | printObjCounts () |
Public Attributes | |
bool | openGLCoreProfile |
When set to true, OpenGL is initialized in forward-compatible core mode. More... | |
bool | invertStereo |
When set to true, eyes are inverted in stereo mode. More... | |
bool | disableConfigGenerator |
bool | verbose |
When set to true, the Display system will output additional diagnostic messages during startup and shutdown. More... | |
int | latency |
Number of horizontal / vertical tiles in the display system. More... | |
Vector2i | referenceTile |
(Used only for planar configurtions) Index of the tile whose center will be used as the origin of the display system geometry. More... | |
Vector3f | referenceOffset |
Offset of reference tile center wrt world origin. More... | |
Vector2f | tileSize |
Size of tile in meters. More... | |
Vector2f | bezelSize |
Size of tile bezel in meters. More... | |
Vector2i | tileResolution |
Tile resolution in pixels. More... | |
Vector2i | displayResolution |
Full display resolution in pixels. More... | |
Vector2i | windowOffset |
When set to true, window positions will be computed automatically in a multiwindow setting. More... | |
DisplayTileConfig::StereoMode | stereoMode |
Global stereo mode. More... | |
bool | enableVSync |
Enable vsync on all tiles. More... | |
bool | enableSwapSync |
Enable swap sync on cluster displays. More... | |
bool | fullscreen |
Enable fullscreen rendering. More... | |
bool | borderless |
Disable window borders. More... | |
bool | drawFps |
Dictionary< String, Ref< DisplayTileConfig > > | tiles |
Tile configurations. More... | |
int | numTiles |
Total display resolution. More... | |
int | numNodes |
Number of nodes for a multimachine display system. More... | |
DisplayNodeConfig | nodes [MaxNodes] |
Node configurations for a multimachine display system. More... | |
int | launcherInterval |
Interval in milliseconds between node launcher commands. More... | |
String | nodeLauncher |
Node launcher command. More... | |
String | nodeKiller |
Node killer command. More... | |
int | basePort |
Default port used to connect to nodes. More... | |
DisplayTileConfig * | tileGrid [128][128] |
The tile grid is needed for 2d interaction with tiles. More... | |
Vector2i | tileGridSize |
The number of horizontal and vertical tiles in the tile grid. More... | |
Ref< DisplayConfigBuilder > | configBuilder |
Ref< RayPointMapper > | rayPointMapper |
String | canvasChangedCommand |
Script command to call when the canvas changes. More... | |
ICanvasListener * | canvasListener |
Vector3f | canvasPosition |
Stores the transformation that converts a default 'full screen' view into the view used by the current canvas rect. More... | |
Quaternion | canvasOrientation |
Vector3f | canvasScale |
Vector3f(* | computeEyePosition )(const Vector3f headSpaceEyePosition, const AffineTransform3 &headTransform, const DrawContext &dc) |
Function used to convert head-space eye positions into sensor-space (real world) eye positions. More... | |
bool | panopticStereoEnabled |
Runtime settings. More... | |
bool | forceMono |
Runtime flag:When set to true, all tiles will be forced to render in mono mode. More... | |
Static Public Attributes | |
static const int | MaxNodes = 64 |
Friends | |
class | DisplaySystem |
Additional Inherited Members | |
Static Protected Attributes inherited from omicron::ReferenceType | |
static List< ReferenceType * > | mysObjList |
Stores omegalib display configuration data.
typedef KeyValue<String, Ref<DisplayTileConfig> > omega::DisplayConfig::Tile |
|
inline |
|
inline |
Make sure the canvas for this display configuration is on top of any other application.
|
inline |
Gts/sets the canvas minimum and maximum boundaries.
Normally, the minimum canvas point is (0,0) but in some settings (i.e. offset workspaces) the canvas starting point may be different. The canvas pixel rect is updated by the updateCanvasPixelSize method.
std::pair<bool, Vector3f> omega::DisplayConfig::getPixelPosition | ( | int | x, |
int | y | ||
) |
Returns the position in real-world coordinates of the specified display pixel.
DisplayTileConfig* omega::DisplayConfig::getTileFromPixel | ( | int | x, |
int | y | ||
) |
Returns a view ray given a global (canvas) pointer position in pixel coordinates.
Ray omega::DisplayConfig::getViewRay | ( | Vector2i | position, |
DisplayTileConfig * | dtc | ||
) |
Returns a view ray given a local pointer positon and a tile index.
bool omega::DisplayConfig::getViewRayFromEvent | ( | const Event & | evt, |
Ray & | ray, | ||
bool | normalizedPointerCoords = false , |
||
Camera * | = NULL |
||
) |
Computes a view ray from a pointer or wand event.
Returns true if the ray has been generated succesfully, false otherwise (i.e. because the event is not a wand or pointer event)
|
inline |
Returns true if this configuration has a ray-point mapper function for the display geometry.
Ray-point mapper functions are used to speed-up ray to display surface intersections, by using an ideal representation of the display geometry.
|
inline |
Returns true if a bring to front has been requested in this frame.
bool omega::DisplayConfig::isHostInTileSection | ( | const String & | hostname, |
int | tilex, | ||
int | tiley, | ||
int | tilew, | ||
int | tileh | ||
) |
Returns true if the specified host is running a tile in the specified section.
|
static |
Computes the intersection of a ray with the display geometry.
void omega::DisplayConfig::setCanvasRect | ( | const Rect & | cr | ) |
void omega::DisplayConfig::setTilesEnabled | ( | int | tilex, |
int | tiley, | ||
int | tilew, | ||
int | tileh, | ||
bool | enabled | ||
) |
Enables or disables tiles in the specified rectangle.
Tiles must be part of the tile grid.
void omega::DisplayConfig::setTilesEnabled | ( | const String & | tiles | ) |
Enables tiles based on their name.
Accepts a string of space-separated tile names. Any tile not passed in the string will be disabled.
int omega::DisplayConfig::setupMultiInstance | ( | MultiInstanceConfig * | mic | ) |
Modifies the display configuration to run on the tile subset specified in MultiInstanceConfig.
This call modifies enabled tiles and port assignments in the display configuration and Assings the application an instance id. The instance id is written in the id field of MultiInstanceConfig and is returned by this call.
|
friend |
int omega::DisplayConfig::basePort |
Default port used to connect to nodes.
Vector2f omega::DisplayConfig::bezelSize |
Size of tile bezel in meters.
bool omega::DisplayConfig::borderless |
Disable window borders.
String omega::DisplayConfig::canvasChangedCommand |
Script command to call when the canvas changes.
ICanvasListener* omega::DisplayConfig::canvasListener |
Quaternion omega::DisplayConfig::canvasOrientation |
Vector3f omega::DisplayConfig::canvasPosition |
Stores the transformation that converts a default 'full screen' view into the view used by the current canvas rect.
This transform is computed by configuration builders or canvas listeners to transform an immersive view and readjust it as the canvas changes. If this node transform is set to identity, the view will not follow a canvas, and the canvas will behave as a movable 2D window into the VR world.
Vector3f omega::DisplayConfig::canvasScale |
Vector3f(* omega::DisplayConfig::computeEyePosition) (const Vector3f headSpaceEyePosition, const AffineTransform3 &headTransform, const DrawContext &dc) |
Function used to convert head-space eye positions into sensor-space (real world) eye positions.
Used by DrawContext::updateTransforms Custom config builders can override this with custom implementations. For instance, the cylindrical config builder ovverides it to add support for CAVE2 panoptic stereo mode.
Ref<DisplayConfigBuilder> omega::DisplayConfig::configBuilder |
bool omega::DisplayConfig::disableConfigGenerator |
Vector2i omega::DisplayConfig::displayResolution |
Full display resolution in pixels.
Will be calculated during setup.
bool omega::DisplayConfig::drawFps |
bool omega::DisplayConfig::enableSwapSync |
Enable swap sync on cluster displays.
bool omega::DisplayConfig::enableVSync |
Enable vsync on all tiles.
bool omega::DisplayConfig::forceMono |
Runtime flag:When set to true, all tiles will be forced to render in mono mode.
bool omega::DisplayConfig::fullscreen |
Enable fullscreen rendering.
bool omega::DisplayConfig::invertStereo |
When set to true, eyes are inverted in stereo mode.
int omega::DisplayConfig::latency |
Number of horizontal / vertical tiles in the display system.
int omega::DisplayConfig::launcherInterval |
Interval in milliseconds between node launcher commands.
|
static |
DisplayNodeConfig omega::DisplayConfig::nodes[MaxNodes] |
Node configurations for a multimachine display system.
int omega::DisplayConfig::numNodes |
Number of nodes for a multimachine display system.
int omega::DisplayConfig::numTiles |
Total display resolution.
Will be computed automatically during the setup process, users should leave this blank.
bool omega::DisplayConfig::openGLCoreProfile |
When set to true, OpenGL is initialized in forward-compatible core mode.
bool omega::DisplayConfig::panopticStereoEnabled |
Runtime settings.
Runtime flag: when set to true, observer orientation will still use camera orientation even
Ref<RayPointMapper> omega::DisplayConfig::rayPointMapper |
Vector3f omega::DisplayConfig::referenceOffset |
Offset of reference tile center wrt world origin.
Vector2i omega::DisplayConfig::referenceTile |
(Used only for planar configurtions) Index of the tile whose center will be used as the origin of the display system geometry.
DisplayTileConfig::StereoMode omega::DisplayConfig::stereoMode |
Global stereo mode.
Will be used by tiles that specify 'Default" as their stereo mode.
DisplayTileConfig* omega::DisplayConfig::tileGrid[128][128] |
The tile grid is needed for 2d interaction with tiles.
and for applications running on tile subsets. Configuration generators fill this up.
Vector2i omega::DisplayConfig::tileGridSize |
The number of horizontal and vertical tiles in the tile grid.
Configuration generators fill this up together with tileGrid;
Vector2i omega::DisplayConfig::tileResolution |
Tile resolution in pixels.
Dictionary<String, Ref<DisplayTileConfig> > omega::DisplayConfig::tiles |
Tile configurations.
Vector2f omega::DisplayConfig::tileSize |
Size of tile in meters.
bool omega::DisplayConfig::verbose |
When set to true, the Display system will output additional diagnostic messages during startup and shutdown.
Vector2i omega::DisplayConfig::windowOffset |
When set to true, window positions will be computed automatically in a multiwindow setting.
Offset of the first window in pixels (valid for multiwindow settings)