Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::Rasterizer Class Referenceabstract
Inheritance diagram for inviwo::Rasterizer:

Public Member Functions

virtual std::optional< mat4 > boundingBox () const
 Return the world space bounding box of the rendered geometry.
virtual void configureShader (Shader &shader)
virtual Document getInfo () const
virtual std::optional< RaycastingStategetRaycastingState () const
 Query raycasting state used for volume rendering.
virtual void initializeResources () override
virtual void process () override
virtual void propagateEvent (Event *event, Outport *source) override
virtual void rasterize (const ivec2 &imageSize, const mat4 &worldMatrixTransform)=0
 Render the fragments, with all setup and evaluation taken care of. If opaque is set, a standard render call instead.
 Rasterizer (std::string_view identifier="", std::string_view displayName="")
virtual void setUniforms (Shader &shader)
virtual void setValid () override
void setValidDelayed ()
virtual UseFragmentList usesFragmentLists () const =0
 Query whether fragments will be emitted.
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
InportgetInport (std::string_view identifier) const
const std::vector< Inport * > & getInports () const
const std::vector< InteractionHandler * > & getInteractionHandlers () const
virtual InviwoApplicationgetInviwoApplication () override
ProcessorNetworkgetNetwork () const
OutportgetOutport (std::string_view identifier) const
const std::vector< Outport * > & getOutports () const
virtual const PropertyOwner * getOwner () const override
virtual PropertyOwner * getOwner () override
PortgetPort (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 ProcessorgetProcessor () const override
virtual ProcessorgetProcessor () override
virtual const ProcessorInfogetProcessorInfo () const =0
ProcessorWidgetgetProcessorWidget () const
const TagsgetTags () 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="")
void removeInteractionHandler (InteractionHandler *interactionHandler)
InportremovePort (Inport *port)
OutportremovePort (Outport *port)
PortremovePort (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)
const ProcessorStatusstatus () 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)
PropertyaddProperty (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)
PropertygetPropertyByIdentifier (std::string_view identifier, bool recursiveSearch=false) const
PropertygetPropertyByPath (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.
PropertyinsertProperty (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
Propertyoperator[] (size_t)
const Propertyoperator[] (size_t) const
virtual PropertyremoveProperty (iterator it)
PropertyremoveProperty (Property &property)
PropertyremoveProperty (Property *property)
PropertyremoveProperty (size_t index)
 remove property referred to by index
PropertyremoveProperty (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>
getMetaData (std::string_view key, U val) const
MetaDataMapgetMetaDataMap ()
const MetaDataMapgetMetaDataMap () 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

Public Attributes

RasterizationOutport outport_

Additional Inherited Members

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
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)
Static Protected Member Functions inherited from inviwo::Processor
static std::function< ProcessorStatus()> getDefaultIsReadyUpdater (Processor *)
Protected Attributes inherited from inviwo::Processor
StateCoordinator< ProcessorStatusisReady_
StateCoordinator< bool > isSink_
StateCoordinator< bool > isSource_
std::unique_ptr< ProcessorWidgetprocessorWidget_
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

Member Function Documentation

◆ boundingBox()

virtual std::optional< mat4 > inviwo::Rasterizer::boundingBox ( ) const
inlinevirtual

Return the world space bounding box of the rendered geometry.

Reimplemented in inviwo::LineRasterizer, inviwo::MeshRasterizer, inviwo::SphereRasterizer, inviwo::TransformRasterization, and inviwo::VolumeRasterizer.

◆ getRaycastingState()

virtual std::optional< RaycastingState > inviwo::Rasterizer::getRaycastingState ( ) const
inlinevirtual

Query raycasting state used for volume rendering.

Returns
raycasting-specific parameters for volume rendering between volume fragments

Reimplemented in inviwo::VolumeRasterizer.

◆ initializeResources()

virtual void inviwo::Rasterizer::initializeResources ( )
overridevirtual

InitializeResources is called whenever a property with InvalidationLevel::InvalidResources is changes.

Reimplemented from inviwo::Processor.

Reimplemented in inviwo::LineRasterizer, inviwo::MeshRasterizer, inviwo::SphereRasterizer, and inviwo::VolumeRasterizer.

◆ process()

virtual void inviwo::Rasterizer::process ( )
overridevirtual

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.

See also
ProcessorNetworkEvaluator
Inport
Property

Reimplemented from inviwo::Processor.

◆ propagateEvent()

virtual void inviwo::Rasterizer::propagateEvent ( Event * event,
Outport * source )
overridevirtual

Reimplemented from inviwo::Processor.

◆ rasterize()

virtual void inviwo::Rasterizer::rasterize ( const ivec2 & imageSize,
const mat4 & worldMatrixTransform )
pure virtual

Render the fragments, with all setup and evaluation taken care of. If opaque is set, a standard render call instead.

Parameters
imageSizeSize in pixels.
worldMatrixTransformAdditional transform to be applied before rendering.

Implemented in inviwo::LineRasterizer, inviwo::MeshRasterizer, inviwo::SphereRasterizer, inviwo::TransformRasterization, and inviwo::VolumeRasterizer.

◆ setValid()

virtual void inviwo::Rasterizer::setValid ( )
overridevirtual

Override to maintain isModified() state of properties and isChanged() for inports as these might be accessed later during rasterization in a subsequent rasterization renderer. Note: need to set this processor to valid after rasterization using setValidDelayed.

See also
setValidDelayed

Reimplemented from inviwo::Processor.

◆ setValidDelayed()

void inviwo::Rasterizer::setValidDelayed ( )

Set this processor's state to valid. To be used after the rasterization.

See also
setValid

◆ usesFragmentLists()

virtual UseFragmentList inviwo::Rasterizer::usesFragmentLists ( ) const
pure virtual

Query whether fragments will be emitted.

Returns
True for order-independent rendering, false for opaque rasterization.

Implemented in inviwo::LineRasterizer, inviwo::MeshRasterizer, inviwo::SphereRasterizer, inviwo::TransformRasterization, and inviwo::VolumeRasterizer.


The documentation for this class was generated from the following file:
  • modules/oit/include/modules/oit/processors/rasterizer.h