The Vish Visualization Shell 0.3
Vish
Wizt::VSceneObjects Class Reference

A list of renderable objects, sorted in layers. More...

#include <ocean/Anemonia/VSceneLayers.hpp>

Public Member Functions

RefPtr< BoundingBallgetGlobalBoundingVolume (const RefPtr< ValuePool > &Context, bool Touchable=false) const
 Compute the geometrical bounding box of all objects in the current set of renderable objects, relative to the given Context .
RefPtr< BoundingBallgetRangedBoundingVolume (const RefPtr< ValuePool > &Context, bool Touchable, int MinLevel=CELESTIAL_OBJECT+1, int MaxLevel=OVERLAY_OBJECT-1) const
 Compute the geometrical "touchable" bounding box of a subset of objects in the current set of renderable objects, relative to the given Context .
RefPtr< BoundingBallgetTouchableBoundingVolume (const RefPtr< ValuePool > &Context) const
 Compute the geometrical bounding box of a "touchable" of objects in the current set of renderable objects.
void insert (int RenderCategory, const WeakPtr< VObject > &what)
 Insert a specific object to the list of renderable to the current set of renderables.
size_t NumberOfObjects () const
 Return the number of objects that are contained in this scene layer.
RefPtr< PickListpick (VRenderContext &Context, int x, int y, int DX=1, int DY=1) const
 Pick the object at the selected pixel coordinates (x,y), and return its subgroup identifier, too.
 VSceneObjects ()
 Constructor (does nothing of interest).
 ~VSceneObjects ()
 Destructor (nothing interesting here).

(Note that these are not member symbols.)

std::tuple< int, int > render (VRenderContext &Context, double &GPURenderTime, int MinLevel=RENDER_FIRST, int MaxLevel=RENDER_LAST)
 Render the entire scene.
using VSceneLayers = VSceneObjects
 Communication type for objects to be rendered.

Detailed Description

A list of renderable objects, sorted in layers.

Such a list is the input to a Viewer object, it is provided by a VScene object.

Member Function Documentation

◆ getTouchableBoundingVolume()

RefPtr< BoundingBall > Wizt::VSceneObjects::getTouchableBoundingVolume ( const RefPtr< ValuePool > & Context) const
inline

Compute the geometrical bounding box of a "touchable" of objects in the current set of renderable objects.

"Touchable" objects are objects that contribute to the spatial camera navigation. They reside in the render category higher than CELESTIAL_OBJECT but lower than OVERLAY_OBJECT.

References Wizt::CELESTIAL_OBJECT, getRangedBoundingVolume(), and Wizt::OVERLAY_OBJECT.

Referenced by render().

◆ insert()

void Wizt::VSceneObjects::insert ( int RenderCategory,
const WeakPtr< VObject > & what )

Insert a specific object to the list of renderable to the current set of renderables.

This function is called by VScene, for instance.

Referenced by getGlobalBoundingVolume().

◆ render()

VRenderContext::RenderResult Wizt::VSceneObjects::render ( VRenderContext & Context,
double & GPURenderTime,
int MinLevel = RENDER_FIRST,
int MaxLevel = RENDER_LAST )
related

Render the entire scene.

Calls VRenderContext::render(), called by Viewer::render().

Parameters
ContextThe render context
MinLevelThe start layer of object categories to be rendered
MaxLevelThe end layer of object categories to be rendered
Returns
The number of objects that have been rendered.

, Viewer

References getGlobalBoundingVolume(), and getTouchableBoundingVolume().