Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::TemporalVolumeComponent Class Reference

A ShaderComponent that samples a TemporalVolume with time-dependent interpolation. More...

#include <modules/basegl/shadercomponents/temporalvolumecomponent.h>

+ Inheritance diagram for inviwo::TemporalVolumeComponent:

Public Types

enum class  Gradients : std::uint8_t { None , Single }
 
enum class  Interpolation : std::uint8_t { Nearest , Linear }
 

Public Member Functions

std::optional< size_t > channelsForVolume () const
 
std::string getGradientString () const
 
virtual std::vector< std::tuple< Inport *, std::string > > getInports () override
 Return all Inports and their port groups This gets called in Processor::registerComponents which will add them to the processor.
 
virtual std::string_view getName () const override
 The name of the ShaderComponent. Will show up as the source of the line in the shaderwidget when the file is preprocessed and in error messages.
 
virtual std::vector< Property * > getProperties () override
 Return all Properties This gets called in Processor::registerComponents which will add them to the processor.
 
virtual std::vector< Segment > getSegments () override
 Return all Segments to be injected into the shader. This gets called in VolumeRaycasterBase::initializeResources after the call to RaycasterComponent::initializeResources.
 
virtual void initializeResources (Shader &shader) override
 Called from Processor::initializeResources Override to set defines in the shader. This function will be called before the shader is compiled.
 
virtual void process (Shader &shader, TextureUnitContainer &cont) override
 Called from Processor::process Override to set uniforms, bind textures etc.
 
 TemporalVolumeComponent (std::string_view name, Gradients gradients=Gradients::Single, Document help={})
 
TFData tfData ()
 

Public Attributes

TemporalVolume::Frame frame
 
Gradients gradients
 
OptionProperty< Interpolation > interpolation
 
std::optional< Seconds > last
 
BoolProperty prefetch
 
IntSizeTProperty prefetchAhead
 
DoubleProperty time
 
TemporalVolumeInport volumePort
 

Detailed Description

A ShaderComponent that samples a TemporalVolume with time-dependent interpolation.

The component adds a TemporalVolumeInport and samples the volume for the current time. When linear interpolation is enabled it uploads the two bracketing frames as 3D textures (<name> and <name>B) and blends them in the shader using <name>Blend, producing the same <name>Voxel, <name>VoxelPrev, and <name>Gradient symbols as the regular VolumeComponent so it can be combined with the standard RaycastingComponent.

It also owns the IsoTFProperty used for classification (operating in normalized TF space) and schedules background prefetching of upcoming frames.

See also
TemporalVolume, VolumeComponent, RaycastingComponent

Member Function Documentation

◆ getInports()

virtual std::vector< std::tuple< Inport *, std::string > > inviwo::TemporalVolumeComponent::getInports ( )
overridevirtual

Return all Inports and their port groups This gets called in Processor::registerComponents which will add them to the processor.

Reimplemented from inviwo::ShaderComponent.

◆ getName()

virtual std::string_view inviwo::TemporalVolumeComponent::getName ( ) const
overridevirtual

The name of the ShaderComponent. Will show up as the source of the line in the shaderwidget when the file is preprocessed and in error messages.

Implements inviwo::ShaderComponent.

◆ getProperties()

virtual std::vector< Property * > inviwo::TemporalVolumeComponent::getProperties ( )
overridevirtual

Return all Properties This gets called in Processor::registerComponents which will add them to the processor.

Reimplemented from inviwo::ShaderComponent.

◆ getSegments()

virtual std::vector< Segment > inviwo::TemporalVolumeComponent::getSegments ( )
overridevirtual

Return all Segments to be injected into the shader. This gets called in VolumeRaycasterBase::initializeResources after the call to RaycasterComponent::initializeResources.

Reimplemented from inviwo::ShaderComponent.

◆ initializeResources()

virtual void inviwo::TemporalVolumeComponent::initializeResources ( Shader & shader)
overridevirtual

Called from Processor::initializeResources Override to set defines in the shader. This function will be called before the shader is compiled.

Parameters
shaderin current use

Reimplemented from inviwo::ShaderComponent.

◆ process()

virtual void inviwo::TemporalVolumeComponent::process ( Shader & shader,
TextureUnitContainer & container )
overridevirtual

Called from Processor::process Override to set uniforms, bind textures etc.

Parameters
shaderin current use
containeradd any used TextureUnits here

Reimplemented from inviwo::ShaderComponent.


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