![]() |
Inviwo 0.9.12-pre
Inviwo documentation
|
Base class for volume processing on the GPU using OpenGL. More...
#include <modules/basegl/processors/volumeprocessing/volumeglprocessor.h>
Classes | |
| struct | FBO |
Public Types | |
| enum class | UseInport : bool { Yes , No } |
| Public Types inherited from inviwo::Processor | |
| using | NameDispatcher = Dispatcher<void(std::string_view, std::string_view)> |
| using | NameDispatcherHandle = typename NameDispatcher::Handle |
| Public Types inherited from inviwo::PropertyOwner | |
| using | const_iterator = std::vector<Property*>::const_iterator |
| using | iterator = std::vector<Property*>::iterator |
Public Member Functions | |
| virtual void | initializeResources () final |
| virtual void | process () final |
| VolumeGLProcessor (std::shared_ptr< const ShaderResource > fragmentShaderResource={}, VolumeConfig config={}, UseInport useInport=UseInport::Yes) | |
| VolumeGLProcessor (std::string_view fragmentShaderName, VolumeConfig config={}, UseInport useInport=UseInport::Yes) | |
| Public Member Functions inherited from inviwo::Processor | |
| virtual void | accept (NetworkVisitor &visitor) |
| Accept a NetworkVisitor, the visitor will visit this and then each Property of the Processor in an undefined order. The Visitor will then visit each Properties's properties and so on. | |
| void | addInteractionHandler (InteractionHandler *interactionHandler) |
| template<typename T, typename std::enable_if_t< std::is_base_of< Outport, T >::value, int > = 0> | |
| T & | addPort (std::unique_ptr< T > port, std::string_view portGroup="default") |
| template<typename T, typename std::enable_if_t< std::is_base_of< Inport, T >::value, int > = 0> | |
| T & | addPort (std::unique_ptr< T > port, std::string_view portGroup="default") |
| template<typename T> | |
| T & | addPort (T &port, std::string_view portGroup="default") |
| template<typename... Ts> | |
| void | addPorts (Ts &... ports) |
| bool | allInportsAreReady () const |
| bool | allInportsConnected () const |
| virtual void | deserialize (Deserializer &d) override |
| virtual void | doIfNotReady () |
| const std::string & | getCategory () const |
| const std::string & | getClassIdentifier () const |
| CodeState | getCodeState () const |
| const std::string & | getDisplayName () const |
| virtual const std::string & | getIdentifier () const override |
| Inport * | getInport (std::string_view identifier) const |
| const std::vector< Inport * > & | getInports () const |
| const std::vector< InteractionHandler * > & | getInteractionHandlers () const |
| virtual InviwoApplication * | getInviwoApplication () override |
| ProcessorNetwork * | getNetwork () const |
| Outport * | getOutport (std::string_view identifier) const |
| const std::vector< Outport * > & | getOutports () const |
| virtual const PropertyOwner * | getOwner () const override |
| virtual PropertyOwner * | getOwner () override |
| Port * | getPort (std::string_view identifier) const |
| const std::string & | getPortGroup (Port *port) const |
| std::vector< std::string > | getPortGroups () const |
| const std::vector< Port * > & | getPortsInGroup (std::string_view portGroup) const |
| const std::vector< Port * > & | getPortsInSameGroup (Port *port) const |
| virtual const Processor * | getProcessor () const override |
| virtual Processor * | getProcessor () override |
| virtual const ProcessorInfo & | getProcessorInfo () const =0 |
| ProcessorWidget * | getProcessorWidget () const |
| const Tags & | getTags () const |
| bool | hasInteractionHandler () const |
| bool | hasProcessorWidget () const |
| virtual void | invalidate (InvalidationLevel invalidationLevel, Property *modifiedProperty=nullptr) override |
| virtual void | invokeEvent (Event *event) override |
| virtual bool | isConnectionActive (Inport *inport, Outport *outport) const |
| bool | isReady () const |
| bool | isSink () const |
| bool | isSource () const |
| NameDispatcherHandle | onDisplayNameChange (std::function< void(std::string_view, std::string_view)> callback) |
| NameDispatcherHandle | onIdentifierChange (std::function< void(std::string_view, std::string_view)> callback) |
| Processor (std::string_view identifier="", std::string_view displayName="") | |
| virtual void | propagateEvent (Event *event, Outport *source) override |
| void | removeInteractionHandler (InteractionHandler *interactionHandler) |
| Inport * | removePort (Inport *port) |
| Outport * | removePort (Outport *port) |
| Port * | removePort (std::string_view identifier) |
| virtual void | serialize (Serializer &s) const override |
| void | setDisplayName (std::string_view displayName) |
| void | setIdentifier (std::string_view identifier) |
| virtual void | setNetwork (ProcessorNetwork *network) |
| virtual void | setProcessorWidget (std::unique_ptr< ProcessorWidget > processorWidget) |
| virtual void | setValid () override |
| const ProcessorStatus & | status () const |
| Public Member Functions inherited from inviwo::PropertyOwner | |
| template<typename... Ts> | |
| void | addProperties (Ts &... properties) |
| void | addProperty (Property &property) |
| void | addProperty (Property *property, bool owner=true) |
| Property * | addProperty (std::unique_ptr< Property > property) |
| iterator | begin () |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| virtual void | clear () |
| Remove all properties; Owned properties will be deleted. | |
| bool | empty () const |
| iterator | end () |
| const_iterator | end () const |
| const_iterator | find (Property *property) const |
| const std::vector< CompositeProperty * > & | getCompositeProperties () const |
| InvalidationLevel | getInvalidationLevel () const |
| const std::vector< Property * > & | getProperties () const |
| template<class T> | |
| std::vector< T * > | getPropertiesByType (bool recursiveSearch=false) const |
| std::vector< Property * > | getPropertiesRecursive () const |
| std::vector< Property * > & | getPropertiesRecursive (std::vector< Property * > &destination) const |
| template<std::derived_from< Property > T = Property> | |
| T * | getProperty (std::string_view identifier) |
| Property * | getPropertyByIdentifier (std::string_view identifier, bool recursiveSearch=false) const |
| Property * | getPropertyByPath (std::string_view path) const |
| void | insertProperty (size_t index, Property &property) |
insert property property at position index If index is not valid, the property is appended. | |
| virtual void | insertProperty (size_t index, Property *property, bool owner=true) |
insert property property at position index If index is not valid, the property is appended. | |
| Property * | insertProperty (size_t index, std::unique_ptr< Property > property) |
insert property property at position index If index is not valid, the property is appended. | |
| virtual bool | isValid () const |
| virtual bool | move (Property *property, size_t newIndex) |
| PropertyOwner & | operator= (const PropertyOwner &that)=delete |
| Property * | operator[] (size_t) |
| const Property * | operator[] (size_t) const |
| virtual Property * | removeProperty (iterator it) |
| Property * | removeProperty (Property &property) |
| Property * | removeProperty (Property *property) |
| Property * | removeProperty (size_t index) |
remove property referred to by index | |
| Property * | removeProperty (std::string_view identifier) |
| virtual void | resetAllProperties () |
| virtual void | setAllPropertiesCurrentStateAsDefault () |
| size_t | size () const |
| virtual | ~PropertyOwner () |
| Removes all properties and notifies its observers of the removal. | |
| Public Member Functions inherited from inviwo::PropertyOwnerObservable | |
| void | notifyObserversDidAddProperty (Property *property, size_t index) |
| void | notifyObserversDidRemoveProperty (PropertyOwner *owner, Property *property, size_t index) |
| void | notifyObserversWillAddProperty (PropertyOwner *owner, Property *property, size_t index) |
| void | notifyObserversWillRemoveProperty (Property *property, size_t index) |
| Public Member Functions inherited from inviwo::Observable< PropertyOwnerObserver > | |
| void | addObserver (PropertyOwnerObserver *observer) |
| bool | isObservedBy (PropertyOwnerObserver *observer) const |
| Observable< PropertyOwnerObserver > & | operator= (const Observable< PropertyOwnerObserver > &other) |
| void | removeObserver (PropertyOwnerObserver *observer) |
| virtual void | startBlockingNotifications () override final |
| virtual void | stopBlockingNotifications () override final |
| Public Member Functions inherited from inviwo::MetaDataOwner | |
| void | copyMetaDataFrom (const MetaDataOwner &src) |
| void | copyMetaDataTo (MetaDataOwner &dst) |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| T * | createMetaData (std::string_view key) |
| void | deserialize (Deserializer &d) |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| T * | getMetaData (std::string_view key) |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| const T * | getMetaData (std::string_view key) const |
|
template<typename T, typename U> requires std::derived_from<T, MetaData> && Gettable<T, U> | |
| U | getMetaData (std::string_view key, U val) const |
| MetaDataMap * | getMetaDataMap () |
| const MetaDataMap * | getMetaDataMap () const |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| bool | hasMetaData (std::string_view key) const |
| bool | hasMetaData (std::string_view key) const |
| MetaDataOwner (const MetaDataOwner &rhs)=default | |
| MetaDataOwner (MetaDataOwner &rhs)=default | |
| MetaDataOwner & | operator= (const MetaDataOwner &rhs)=default |
| MetaDataOwner & | operator= (MetaDataOwner &)=default |
| void | serialize (Serializer &s) const |
|
template<typename T, typename U> requires std::derived_from<T, MetaData> && Settable<T, U> | |
| void | setMetaData (std::string_view key, U value) |
| template<typename T> requires std::derived_from<T, MetaData> | |
| bool | unsetMetaData (std::string_view key) |
| unset, i.e. remove the metadata entry matching the given key and type | |
| Public Member Functions inherited from inviwo::Observable< ProcessorObserver > | |
| void | addObserver (ProcessorObserver *observer) |
| bool | isObservedBy (ProcessorObserver *observer) const |
| Observable< ProcessorObserver > & | operator= (const Observable< ProcessorObserver > &other) |
| void | removeObserver (ProcessorObserver *observer) |
| virtual void | startBlockingNotifications () override final |
| virtual void | stopBlockingNotifications () override final |
Protected Member Functions | |
| std::shared_ptr< const ShaderResource > | getFragmentShaderResource () |
| virtual void | initializeShader (Shader &shader) |
| virtual void | postProcess (Volume &volume) |
| this function gets called at the end of the process function Overwrite this function in the derived class to perform post-processing | |
| virtual void | preProcess (TextureUnitContainer &cont, Shader &shader, VolumeConfig &config) |
| this function gets called right before the actual processing but after the shader has been activated. Overwrite this function in the derived class to perform things like custom shader setup and binding texture etc. The VolumeConfig, is based on the config from the volume inport, updated with the Config from the constructor. This config can be customized further and is used to create the output volume. | |
| void | setFragmentShaderResource (std::shared_ptr< const ShaderResource > fragShaderResource) |
| Protected Member Functions inherited from inviwo::Processor | |
| void | addPortToGroup (Port *port, std::string_view portGroup) |
| void | removePortFromGroups (Port *port) |
| void | setInportsChanged (bool changed) |
| Protected Member Functions inherited from inviwo::PropertyOwner | |
| void | forEachProperty (std::function< void(Property &)> callback, bool recursiveSearch=false) const |
| PropertyOwner & | operator= (PropertyOwner &&that) |
| PropertyOwner (const PropertyOwner &rhs) | |
| PropertyOwner (PropertyOwner &&rhs) | |
| Protected Member Functions inherited from inviwo::Observable< PropertyOwnerObserver > | |
| void | forEachObserver (C callback) |
| Protected Member Functions inherited from inviwo::ObservableInterface | |
| void | addObservationHelper (Observer *observer) |
| virtual void | addObserver (Observer *observer)=0 |
| void | removeObservationHelper (Observer *observer) |
| virtual void | removeObserver (Observer *observer)=0 |
| Protected Member Functions inherited from inviwo::ProcessorObservable | |
| void | notifyObserversAboutPropertyChange (Property *p) |
| void | notifyObserversAboutToProcess (Processor *p) |
| void | notifyObserversActiveConnectionsChange (Processor *p) |
| void | notifyObserversFinishBackgroundWork (Processor *p, size_t jobs=1) |
| void | notifyObserversFinishedProcess (Processor *p) |
| void | notifyObserversInvalidationBegin (Processor *p) |
| void | notifyObserversInvalidationEnd (Processor *p) |
| void | notifyObserversProcessorPortAdded (Processor *p, Port *port) |
| void | notifyObserversProcessorPortRemoved (Processor *p, Port *port) |
| void | notifyObserversProgressChanged (Processor *p, std::optional< double > progress) |
| void | notifyObserversReadyChange (Processor *p) |
| void | notifyObserversSinkChange (Processor *p) |
| void | notifyObserversSourceChange (Processor *p) |
| void | notifyObserversStartBackgroundWork (Processor *p, size_t jobs=1) |
| Protected Member Functions inherited from inviwo::Observable< ProcessorObserver > | |
| void | forEachObserver (C callback) |
Protected Attributes | |
| BoolProperty | calculateDataRange_ |
| DataRangeProperty | dataRange_ |
| std::optional< VolumeInport > | inport_ |
| VolumeOutport | outport_ |
| Protected Attributes inherited from inviwo::Processor | |
| StateCoordinator< ProcessorStatus > | isReady_ |
| StateCoordinator< bool > | isSink_ |
| StateCoordinator< bool > | isSource_ |
| std::unique_ptr< ProcessorWidget > | processorWidget_ |
| Protected Attributes inherited from inviwo::PropertyOwner | |
| std::vector< CompositeProperty * > | compositeProperties_ |
| std::vector< EventProperty * > | eventProperties_ |
| std::vector< std::unique_ptr< Property > > | ownedProperties_ |
| std::vector< Property * > | properties_ |
| Protected Attributes inherited from inviwo::MetaDataOwner | |
| MetaDataMap | metaData_ |
| Protected Attributes inherited from inviwo::ProcessorObservable | |
| friend | ProcessorNetworkEvaluator |
| friend | Property |
Additional Inherited Members | |
| Static Protected Member Functions inherited from inviwo::Processor | |
| static std::function< ProcessorStatus()> | getDefaultIsReadyUpdater (Processor *) |
Base class for volume processing on the GPU using OpenGL.
The VolumeGLProcessor provides the basic structure for volume processing on the GPU. Derived shaders have to provide a custom fragment shader which is used during rendering. Optionally, derived classes can override:
|
finalvirtual |
InitializeResources is called whenever a property with InvalidationLevel::InvalidResources is changes.
Reimplemented from inviwo::Processor.
|
protectedvirtual |
Override this to add any shader defines etc. The shader will be built automatically.
Reimplemented in inviwo::LIC3D, inviwo::TornadoGenerator, inviwo::Vector3DCurl, inviwo::VectorFieldGenerator3D, inviwo::VolumeBinary, inviwo::VolumeGradientProcessor, and inviwo::VolumeLowPass.
|
protectedvirtual |
this function gets called at the end of the process function Overwrite this function in the derived class to perform post-processing
Reimplemented in inviwo::LIC3D, inviwo::TornadoGenerator, inviwo::Vector3DCurl, inviwo::VectorFieldGenerator3D, inviwo::VectorMagnitudeProcessor, and inviwo::VolumeMapping.
|
protectedvirtual |
this function gets called right before the actual processing but after the shader has been activated. Overwrite this function in the derived class to perform things like custom shader setup and binding texture etc. The VolumeConfig, is based on the config from the volume inport, updated with the Config from the constructor. This config can be customized further and is used to create the output volume.
Reimplemented in inviwo::LIC3D, inviwo::TornadoGenerator, inviwo::Vector3DCurl, inviwo::VectorFieldGenerator3D, inviwo::VectorMagnitudeProcessor, inviwo::VolumeBinary, inviwo::VolumeDiff, inviwo::VolumeGradientMagnitude, inviwo::VolumeGradientProcessor, inviwo::VolumeLowPass, inviwo::VolumeMapping, and inviwo::VolumeMerger.
|
finalvirtual |
Deriving classes should override this function to do the main work of the processor. This function is called by the ProcessorNetworkEvaluator when the network is evaluated and the processor is invalid, i.e. some of its inports or properties has been modified, and is ready i.e. all non optional inports have valid data.
Reimplemented from inviwo::Processor.