LibCarna Version 3.4.0
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | List of all members
LibCarna::presets::CuttingPlanesStage Class Reference

Renders cutting planes of volume geometries in the scene. More...

#include <CuttingPlanesStage.hpp>

+ Inheritance diagram for LibCarna::presets::CuttingPlanesStage:
+ Collaboration diagram for LibCarna::presets::CuttingPlanesStage:

Public Member Functions

 CuttingPlanesStage (unsigned int volumeGeometryType, unsigned int planeGeometryType, unsigned int colorMapResolution=base::ColorMap::DEFAULT_RESOLUTION)
 Instantiates.
 
virtual ~CuttingPlanesStage ()
 Deletes.
 
virtual void renderPass (const base::math::Matrix4f &viewTransform, base::RenderTask &rt, const base::Viewport &vp) override
 Called once per pass.
 
void setWindowingLevel (float windowingLevel)
 Sets windowing level to windowingLevel.
 
void setWindowingWidth (float windowingWidth)
 Sets windowing level to windowingWidth.
 
void setWindowingWidth (unsigned int windowingWidth)
 
float windowingLevel () const
 Tells the windowing level intensity.
 
float windowingWidth () const
 Tells the windowing width.
 
- Public Member Functions inherited from LibCarna::base::GeometryStage< void >
 GeometryStage (unsigned int geometryType, unsigned int geometryTypeMask=RenderQueue< void >::EXACT_MATCH_GEOMETRY_TYPE_MASK)
 Instantiates s.t. the predefined rendering queue enqueues such LibCarna::base::Geometry scene graph nodes, whose geometry type AND-linked with geometryTypeMask equals the geometryType specified here.
 
virtual ~GeometryStage ()
 Releases acquired video resources.
 
virtual void prepareFrame (Node &root) override
 Called once before each frame.
 
std::size_t renderedPassesCount () const
 Tells the number of passes rendered so far since the beginning of the current frame.
 
GeometryFeatureType::ManagedInterface & videoResource (GeometryFeatureType &geometryFeature) const
 Interfaces the geometryFeature video resources that were acquired by this rendering stage.
 
const GeometryFeatureType::ManagedInterface & videoResource (const GeometryFeatureType &geometryFeature) const
 
- Public Member Functions inherited from LibCarna::base::RenderStage
 RenderStage ()
 Instantiates in enabled-state.
 
virtual ~RenderStage ()
 Deletes.
 
void setViewTransformFixed (bool viewTransformFixed)
 Sets whether the view transform is pass-invariant for the duration of a single frame.
 
bool isViewTransformFixed () const
 Tells whether the view transform is pass-invariant for the duration of a single frame.
 
virtual void reshape (FrameRenderer &fr, unsigned int width, unsigned int height)
 Orders this stage to reshape its buffers according to the specified width and height.
 
bool isInitialized () const
 Tells whether this stage is ready for rendering.
 
bool isEnabled () const
 Tells whether this stage is enabled. Disabled stages are not rendered by render tasks.
 
void setEnabled (bool)
 Sets whether this stage is enabled. Disabled stages are not rendered by render tasks.
 
base::FrameRendererrenderer ()
 References the renderer this stage belongs to.
 
const base::FrameRendererrenderer () const
 
void addRenderStageListener (RenderStageListener &listener)
 Adds listener to the set of listeners this instance notifies in \(\mathcal O\left(\log n\right)\).
 
void removeRenderStageListener (RenderStageListener &listener)
 Removes listener from the set of listeners this instance notifies in \(\mathcal O\left(\log n\right)\).
 

Public Attributes

const unsigned int volumeGeometryType
 Renders such volume geometries whose type equals this.
 
const unsigned int planeGeometryType
 Renders such plane geometries whose type equals this.
 
base::ColorMap colorMap
 The color map used for the rendering.
 
- Public Attributes inherited from LibCarna::base::GeometryStage< void >
const unsigned int geometryType
 Renders such geometries whose type AND-linked with geometryTypeMask equals this.
 
const unsigned int geometryTypeMask
 Renders such geometries whose type AND-linked with this equals geometryType.
 

Static Public Attributes

static const float DEFAULT_WINDOWING_WIDTH
 Holds the default value for setWindowingWidth.
 
static const float DEFAULT_WINDOWING_LEVEL
 Holds the default value for setWindowingLevel.
 
static const unsigned int ROLE_INTENSITIES
 Holds the role that intensity volume data is expected to take when attached to base::Geometry nodes.
 

Protected Member Functions

virtual void buildRenderQueues (base::Node &root, const base::math::Matrix4f &viewTransform) override
 Builds the rendering queues of this stage.
 
virtual void rewindRenderQueues () override
 Rewinds the rendering queues of this stage.
 
virtual void updateRenderQueues (const base::math::Matrix4f &viewTransform) override
 Recomputes the model-view transforms of the renderables enqueued by this stage.
 
virtual void render (const base::Renderable &) override
 Renders the renderable.
 
- Protected Member Functions inherited from LibCarna::base::GeometryStage< void >
void activateGLContext () const
 Ensures that the OpenGL context of the hosting LibCarna::base::FrameRenderer is the current one.
 

Additional Inherited Members

- Protected Attributes inherited from LibCarna::base::GeometryStage< void >
RenderQueue< voidrq
 Holds the predefined rendering queue of this rendering stage.
 

Detailed Description

Renders cutting planes of volume geometries in the scene.

The CuttingPlanesStage constructor takes two geometry type parameters:

planes = new presets::CuttingPlanesStage( GEOMETRY_TYPE_VOLUMETRIC, GEOMETRY_TYPE_CUTTING_PLANE );
renderer->appendStage( planes );
void appendStage(RenderStage *stage)
Appends stage to the rendering stages sequence.
base::FrameRenderer & renderer()
References the renderer this stage belongs to.
Renders cutting planes of volume geometries in the scene.

The concept of geometry types is explained here.

The following example code attaches three orthogonal planes to a node named pivot:

pivot->localTransform = base::math::plane4f( base::math::Vector3f( 1, 1, 1 ).normalized(), 0 );
/* Create the planes.
*/
base::Geometry* planes[ 3 ];
for( unsigned int i = 0; i < 3; ++i )
{
planes[ i ] = new base::Geometry( GEOMETRY_TYPE_CUTTING_PLANE );
pivot->attachChild( planes[ i ] );
}
/* Configure the planes.
*/
planes[ 0 ]->localTransform = base::math::plane4f( base::math::Vector3f( 1, 0, 0 ), 0.f );
planes[ 1 ]->localTransform = base::math::plane4f( base::math::Vector3f( 0, 1, 0 ), 0.f );
planes[ 2 ]->localTransform = base::math::plane4f( base::math::Vector3f( 0, 0, 1 ), 0.f );
Defines scene graph leafs. Instances of this class represent visible geometry that can be rendered....
Definition Geometry.hpp:63
math::Matrix4f localTransform
Defines the location, rotation and scale of this spatial in relation to it's parent....
Definition Spatial.hpp:135
Eigen::Matrix< float, 3, 1 > Vector3f
Defines vector.
Definition math.hpp:200
Matrix4f plane4f(const Vector3f &normal, float distance)
Creates matrix that transforms from the tangent space of a plane with particular normal vector and or...
Definition math.hpp:460

This produces the rendering below.

rendering result of example code above
Author
Leonid Kostrykin

Definition at line 60 of file CuttingPlanesStage.hpp.

Member Function Documentation

◆ buildRenderQueues()

virtual void LibCarna::presets::CuttingPlanesStage::buildRenderQueues ( base::Node root,
const base::math::Matrix4f viewTransform 
)
overrideprotectedvirtual

Builds the rendering queues of this stage.

Reimplemented from LibCarna::base::GeometryStage< void >.

◆ render()

virtual void LibCarna::presets::CuttingPlanesStage::render ( const base::Renderable renderable)
overrideprotectedvirtual

Renders the renderable.

Implements LibCarna::base::GeometryStage< void >.

◆ renderPass()

virtual void LibCarna::presets::CuttingPlanesStage::renderPass ( const base::math::Matrix4f viewTransform,
base::RenderTask rt,
const base::Viewport vp 
)
overridevirtual

Called once per pass.

If this rendering stage maintains one or more LibCarna::base::RenderQueue objects, than this is the right place to build them. Note that the queues need to be rebuilt only once per frame and not per pass, unless isViewTransformFixed is false. If it is true and this is not the first invocation of this method since the last time prepareFrame was called, rewinding the queue will be sufficient.

Reimplemented from LibCarna::base::GeometryStage< void >.

◆ rewindRenderQueues()

virtual void LibCarna::presets::CuttingPlanesStage::rewindRenderQueues ( )
overrideprotectedvirtual

Rewinds the rendering queues of this stage.

Reimplemented from LibCarna::base::GeometryStage< void >.

◆ setWindowingWidth()

void LibCarna::presets::CuttingPlanesStage::setWindowingWidth ( unsigned int  windowingWidth)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ updateRenderQueues()

virtual void LibCarna::presets::CuttingPlanesStage::updateRenderQueues ( const base::math::Matrix4f viewTransform)
overrideprotectedvirtual

Recomputes the model-view transforms of the renderables enqueued by this stage.

Reimplemented from LibCarna::base::GeometryStage< void >.

Member Data Documentation

◆ colorMap

base::ColorMap LibCarna::presets::CuttingPlanesStage::colorMap

The color map used for the rendering.

Definition at line 97 of file CuttingPlanesStage.hpp.

◆ DEFAULT_WINDOWING_LEVEL

const float LibCarna::presets::CuttingPlanesStage::DEFAULT_WINDOWING_LEVEL
static

Holds the default value for setWindowingLevel.

Definition at line 72 of file CuttingPlanesStage.hpp.

◆ DEFAULT_WINDOWING_WIDTH

const float LibCarna::presets::CuttingPlanesStage::DEFAULT_WINDOWING_WIDTH
static

Holds the default value for setWindowingWidth.

Definition at line 71 of file CuttingPlanesStage.hpp.

◆ planeGeometryType

const unsigned int LibCarna::presets::CuttingPlanesStage::planeGeometryType

Renders such plane geometries whose type equals this.

Definition at line 82 of file CuttingPlanesStage.hpp.

◆ ROLE_INTENSITIES

const unsigned int LibCarna::presets::CuttingPlanesStage::ROLE_INTENSITIES
static

Holds the role that intensity volume data is expected to take when attached to base::Geometry nodes.

Definition at line 78 of file CuttingPlanesStage.hpp.

◆ volumeGeometryType

const unsigned int LibCarna::presets::CuttingPlanesStage::volumeGeometryType

Renders such volume geometries whose type equals this.

Definition at line 80 of file CuttingPlanesStage.hpp.


The documentation for this class was generated from the following file: