![]() |
Inviwo 0.9.12-pre
Inviwo documentation
|
#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 |
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.
|
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.
|
overridevirtual |
Return all Properties This gets called in Processor::registerComponents which will add them to the processor.
Reimplemented from inviwo::ShaderComponent.
|
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.
|
overridevirtual |
Called from Processor::process Override to set uniforms, bind textures etc.
| shader | in current use |
| container | add any used TextureUnits here |
Reimplemented from inviwo::ShaderComponent.