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

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

+ Inheritance diagram for inviwo::AnalyticEntryExitComponent:

Public Types

enum class  Shape : std::uint8_t { Parallelepiped , Sphere }
 

Public Member Functions

 AnalyticEntryExitComponent (std::function< glm::dmat4(CoordinateSpace from, CoordinateSpace to)> getTransform, std::string_view cameraName="camera")
 
 AnalyticEntryExitComponent (VolumeInport &volume, std::string_view cameraName="camera")
 
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 process (Shader &shader, TextureUnitContainer &cont) override
 Called from Processor::process Override to set uniforms, bind textures etc.
 
- Public Member Functions inherited from inviwo::ShaderComponent
virtual std::vector< std::tuple< Inport *, std::string > > getInports ()
 Return all Inports and their port groups This gets called in Processor::registerComponents which will add them to the processor.
 
virtual void initializeResources (Shader &shader)
 Called from Processor::initializeResources Override to set defines in the shader. This function will be called before the shader is compiled.
 

Public Attributes

FloatVec3Property center
 
BoolProperty clipToVolume
 
FloatVec3Property edge1
 
FloatVec3Property edge2
 
FloatVec3Property edge3
 
CompositeProperty geometry
 
FloatVec3Property origin
 
FloatProperty radius
 
OptionProperty< Shape > shape
 
OptionProperty< CoordinateSpace > space
 

Detailed Description

A replacement for the EntryExitComponent that computes the entry and exit points analytically in the fragment shader, by intersecting the camera ray of each fragment with a parallelepiped or a sphere. No entry and exit point images are needed.

The geometry is defined in a selectable coordinate space of the volume (Data, Model, or World). In Data space the volume occupies the unit cube, hence the default parallelepiped (origin 0 and unit edges) reproduces the volume bounding box. Optionally, the geometry is also clipped against the volume bounding box, and it is always clipped against the near and far planes of the camera.

Like the EntryExitComponent, the setup segment defines entryPoint, exitPoint, entryPointDepth, exitPointDepth, rayLength, and rayDirection. The surfaceNormal sampler and useSurfaceNormals are declared for compatibility with other components, but useSurfaceNormals is always false. Requires a camera uniform named by cameraName.

Member Function Documentation

◆ getName()

virtual std::string_view inviwo::AnalyticEntryExitComponent::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::AnalyticEntryExitComponent::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::AnalyticEntryExitComponent::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.

◆ process()

virtual void inviwo::AnalyticEntryExitComponent::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: