Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::Processor Class Referenceabstract

A processor generally performs operation on input data and outputs the new result. More...

#include <processor.h>

Inheritance diagram for inviwo::Processor:

Public Types

using NameDispatcher = Dispatcher<void(std::string_view, std::string_view)>
using NameDispatcherHandle = typename NameDispatcher::Handle
Public Types inherited from inviwo::PropertyOwner
using iterator = std::vector<Property*>::iterator
using const_iterator = std::vector<Property*>::const_iterator

Public Member Functions

 Processor (std::string_view identifier="", std::string_view displayName="")
virtual const ProcessorInfogetProcessorInfo () const =0
const std::string & getClassIdentifier () const
const std::string & getCategory () const
CodeState getCodeState () const
const TagsgetTags () const
void setIdentifier (std::string_view identifier)
virtual const std::string & getIdentifier () const override
NameDispatcherHandle onIdentifierChange (std::function< void(std::string_view, std::string_view)> callback)
void setDisplayName (std::string_view displayName)
const std::string & getDisplayName () const
NameDispatcherHandle onDisplayNameChange (std::function< void(std::string_view, std::string_view)> callback)
virtual void setProcessorWidget (std::unique_ptr< ProcessorWidget > processorWidget)
ProcessorWidgetgetProcessorWidget () const
bool hasProcessorWidget () const
virtual void setNetwork (ProcessorNetwork *network)
ProcessorNetworkgetNetwork () const
virtual void initializeResources ()
PortgetPort (std::string_view identifier) const
InportgetInport (std::string_view identifier) const
OutportgetOutport (std::string_view identifier) const
const std::vector< Inport * > & getInports () const
const std::vector< Outport * > & getOutports () 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
bool allInportsConnected () const
bool allInportsAreReady () const
bool isSource () const
bool isSink () const
bool isReady () const
const ProcessorStatusstatus () const
virtual void process ()
virtual void doIfNotReady ()
virtual void setValid () override
virtual void invalidate (InvalidationLevel invalidationLevel, Property *modifiedProperty=nullptr) override
void addInteractionHandler (InteractionHandler *interactionHandler)
void removeInteractionHandler (InteractionHandler *interactionHandler)
bool hasInteractionHandler () const
const std::vector< InteractionHandler * > & getInteractionHandlers () const
virtual void invokeEvent (Event *event) override
virtual void propagateEvent (Event *event, Outport *source) override
virtual ProcessorgetProcessor () override
virtual const ProcessorgetProcessor () const override
virtual const PropertyOwnergetOwner () const override
virtual PropertyOwnergetOwner () override
virtual InviwoApplicationgetInviwoApplication () override
virtual void serialize (Serializer &s) const override
virtual void deserialize (Deserializer &d) override
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, 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>
T & addPort (T &port, std::string_view portGroup="default")
template<typename... Ts>
void addPorts (Ts &... ports)
PortremovePort (std::string_view identifier)
InportremovePort (Inport *port)
OutportremovePort (Outport *port)
virtual bool isConnectionActive (Inport *inport, Outport *outport) const
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.
Public Member Functions inherited from inviwo::PropertyOwner
virtual ~PropertyOwner ()
 Removes all properties and notifies its observers of the removal.
virtual void addProperty (Property *property, bool owner=true)
virtual void addProperty (Property &property)
virtual PropertyaddProperty (std::unique_ptr< Property > property)
template<typename... Ts>
void addProperties (Ts &... properties)
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.
virtual void insertProperty (size_t index, Property &property)
 insert property property at position index If index is not valid, the property is appended.
virtual 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 PropertyremoveProperty (std::string_view identifier)
virtual PropertyremoveProperty (Property *property)
virtual PropertyremoveProperty (Property &property)
virtual PropertyremoveProperty (size_t index)
 remove property referred to by index
virtual bool move (Property *property, size_t newIndex)
virtual void clear ()
 Remove all properties; Owned properties will be deleted.
const std::vector< Property * > & getProperties () const
const std::vector< CompositeProperty * > & getCompositeProperties () const
std::vector< Property * > getPropertiesRecursive () const
std::vector< Property * > & getPropertiesRecursive (std::vector< Property * > &destination) const
PropertygetPropertyByIdentifier (std::string_view identifier, bool recursiveSearch=false) const
PropertygetPropertyByPath (std::string_view path) const
template<class T>
std::vector< T * > getPropertiesByType (bool recursiveSearch=false) const
bool empty () const
size_t size () const
Propertyoperator[] (size_t)
const Propertyoperator[] (size_t) const
const_iterator find (Property *property) const
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
const_iterator cbegin () const
const_iterator cend () const
virtual bool isValid () const
InvalidationLevel getInvalidationLevel () const
virtual void setAllPropertiesCurrentStateAsDefault ()
virtual void resetAllProperties ()
Public Member Functions inherited from inviwo::PropertyOwnerObservable
void notifyObserversWillAddProperty (PropertyOwner *owner, Property *property, size_t index)
void notifyObserversDidAddProperty (Property *property, size_t index)
void notifyObserversWillRemoveProperty (Property *property, size_t index)
void notifyObserversDidRemoveProperty (PropertyOwner *owner, Property *property, size_t index)
Public Member Functions inherited from inviwo::Observable< PropertyOwnerObserver >
Observable< PropertyOwnerObserver > & operator= (const Observable< PropertyOwnerObserver > &other)
void addObserver (PropertyOwnerObserver *observer)
void removeObserver (PropertyOwnerObserver *observer)
virtual void startBlockingNotifications () override final
virtual void stopBlockingNotifications () override final
Public Member Functions inherited from inviwo::MetaDataOwner
 MetaDataOwner (const MetaDataOwner &rhs)=default
 MetaDataOwner (MetaDataOwner &rhs)=default
MetaDataOwneroperator= (const MetaDataOwner &rhs)=default
MetaDataOwneroperator= (MetaDataOwner &)=default
void copyMetaDataFrom (const MetaDataOwner &src)
void copyMetaDataTo (MetaDataOwner &dst)
template<typename T>
requires std::derived_from<T, MetaData>
T * createMetaData (std::string_view key)
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
template<typename T, typename U>
requires std::derived_from<T, MetaData> && Gettable<T, U>
getMetaData (std::string_view key, U val) const
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
MetaDataMapgetMetaDataMap ()
const MetaDataMapgetMetaDataMap () const
bool hasMetaData (std::string_view key) const
template<typename T>
requires std::derived_from<T, MetaData>
bool hasMetaData (std::string_view key) const
void serialize (Serializer &s) const
void deserialize (Deserializer &d)
Public Member Functions inherited from inviwo::Observable< ProcessorObserver >
Observable< ProcessorObserver > & operator= (const Observable< ProcessorObserver > &other)
void addObserver (ProcessorObserver *observer)
void removeObserver (ProcessorObserver *observer)
virtual void startBlockingNotifications () override final
virtual void stopBlockingNotifications () override final

Protected Member Functions

void addPortToGroup (Port *port, std::string_view portGroup)
void removePortFromGroups (Port *port)
void setInportsChanged (bool changed)
Protected Member Functions inherited from inviwo::PropertyOwner
 PropertyOwner (const PropertyOwner &rhs)
PropertyOwneroperator= (const PropertyOwner &that)=delete
void forEachProperty (std::function< void(Property &)> callback, bool recursiveSearch=false) const
Protected Member Functions inherited from inviwo::Observable< PropertyOwnerObserver >
void forEachObserver (C callback)
Protected Member Functions inherited from inviwo::ObservableInterface
virtual void addObserver (Observer *observer)=0
virtual void removeObserver (Observer *observer)=0
void addObservationHelper (Observer *observer)
void removeObservationHelper (Observer *observer)
Protected Member Functions inherited from inviwo::ProcessorObservable
void notifyObserversAboutPropertyChange (Property *p)
void notifyObserversInvalidationBegin (Processor *p)
void notifyObserversInvalidationEnd (Processor *p)
void notifyObserversProcessorPortAdded (Processor *p, Port *port)
void notifyObserversProcessorPortRemoved (Processor *p, Port *port)
void notifyObserversAboutToProcess (Processor *p)
void notifyObserversFinishedProcess (Processor *p)
void notifyObserversSourceChange (Processor *p)
void notifyObserversSinkChange (Processor *p)
void notifyObserversReadyChange (Processor *p)
void notifyObserversActiveConnectionsChange (Processor *p)
void notifyObserversStartBackgroundWork (Processor *p, size_t jobs=1)
void notifyObserversFinishBackgroundWork (Processor *p, size_t jobs=1)
Protected Member Functions inherited from inviwo::Observable< ProcessorObserver >
void forEachObserver (C callback)

Static Protected Member Functions

static std::function< ProcessorStatus()> getDefaultIsReadyUpdater (Processor *)

Protected Attributes

std::unique_ptr< ProcessorWidgetprocessorWidget_
StateCoordinator< ProcessorStatusisReady_
StateCoordinator< bool > isSink_
StateCoordinator< bool > isSource_
Protected Attributes inherited from inviwo::PropertyOwner
std::vector< Property * > properties_
std::vector< EventProperty * > eventProperties_
std::vector< CompositeProperty * > compositeProperties_
std::vector< std::unique_ptr< Property > > ownedProperties_
Protected Attributes inherited from inviwo::MetaDataOwner
MetaDataMap metaData_
Protected Attributes inherited from inviwo::ProcessorObservable
friend ProcessorNetworkEvaluator
friend Property

Detailed Description

A processor generally performs operation on input data and outputs the new result.

It can hold arbitrary number of inports and outports, as well as properties which can be used to customize the processors behavior.

A typical flow for processing Processor 1 is shown below.

*     ┌─────────────┐
*     │             │
*     │ Processor 2 │
*     │ ┌─┐         │◀────────────────────────────────────────── Outport 2
*     └─┴┬┴─────────┘
*        └────────────────┐
*                       ┌┬▼┬──────────┐ ◀─────────────────────── Inport 1
*                       │└─┘          │
*                       │ Processor 1 │
*                       │┌─┐          │ ◀─────────────────────── Outport 1
*                       └┴┬┴──────────┘
*                         └────────────────┐
*                                        ┌┬▼┬──────────┐ ◀────── Inport 0
*                                        │└─┘          │
*                                        │ Processor 0 │
*                                        │┌─┐          │ ◀────── Outport 0
*                                        └┴─┴──────────┘
*
*       Evaluator         Processor 1         Inport 1           Outport 2
*           │                  │                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           ├─────!isValid?────▶                  │                  │
*           ◀────────No────────┤                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           ├────isReady?──────▶                  │                  │
*           │                  ├─────isValid?─────▶                  │
*           │                  │                  ├────isValid?──────▶
*           │                  │                  │                  ├─────┐
*           │                  │                  │                  │  data?
*           │                  │                  │                  │  valid?
*           │                  │                  │                  ◀─Yes─┘
*           │                  │                  ◀──────Yes─────────┤
*           │                  ◀───────Yes────────┤                  │
*           ◀──────Yes─────────┤                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           │    Inv. Level    │                  │                  │
*           ├─────────>────────▶                  │                  │
*           │   INV.RESOURCES  │                  │                  │
*           │                  │                  │                  │
*           ◀───────Yes────────┤                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           ├──Init. Resources ▶                  │                  │
*           ◀───────Done───────┤                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           ├────GetInports────▶                  │                  │
*           │                  ├──callOnChange────▶                  │
*           │                  ◀──────Done────────┤                  │
*           ◀───────Done───────┤                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           │                  │                  │                  │
*           ├────Process───────▶                  │                  │
*           │                  ├─────GetData──────▶                  │
*           │                  │                  ├────GetData───────▶
*           │                  │                  ◀──────data────────┤
*           │                  ◀───────data───────┤                  │
*           │                  │                  │                  │
*           │                  │                  ▼                  ▼
*           │                  │
*           │                  │              Outport 1
*           │                  │                  │
*           │                  ├─────SetData──────▶
*           │                  ◀───────Done───────┤
*           ◀───────Done───────┤                  │
*           │                  │                  ▼
*           │                  │
*           │                  │              Inport 1
*           ├─────SetValid─────▶    SetChanged    │
*           │                  ├─────(false)──────▶
*           │                  ◀───────Done───────┤
*           │                  │                  │
*           │                  │                  ▼
*           │                  │
*           │                  │              Outport 1          Inport 0
*           │                  │                  │                  │
*           │                  ├───SetValid───────▶                  │
*           │                  │                  ├─────SetValid─────▶
*           │                  │                  │                  ├──────┐
*           │                  │                  │                  │ SetChanged
*           │                  │                  │                  │   (true)
*           │                  │                  │                  ◀──────┘
*           │                  │                  ◀──────Done────────┤
*           │                  ◀─────Done─────────┤                  │
*           ◀───────Done───────┤                  │                  │
*           ▼                  ▼                  ▼                  ▼
*
* 

Constructor & Destructor Documentation

◆ Processor()

inviwo::Processor::Processor ( std::string_view identifier = "",
std::string_view displayName = "" )

Processor constructor, takes two optional arguments.

Parameters
identifierShould only contain alpha numeric characters, "-", "_" and " ".
displayNameName of processor, arbitrary string. If the parameters are not set, the processor factory will initiate the identifier and displayName with the ProcessorInfo displayName.

Member Function Documentation

◆ addInteractionHandler()

void inviwo::Processor::addInteractionHandler ( InteractionHandler * interactionHandler)

Adds the interaction handler such that it receives events propagated to the processor. Will not add the interaction handler if it has been added before.

Note
The processor will not take ownership of the interaction handler.
See also
InteractionHandler
Parameters
interactionHandlerInteraction handler to be added.

◆ addPort() [1/3]

template<typename T, typename std::enable_if_t< std::is_base_of< Outport, T >::value, int >>
T & inviwo::Processor::addPort ( std::unique_ptr< T > port,
std::string_view portGroup = "default" )

Add port to processor and pass ownership to processor.

Note
Port group is a concept for event propagation. Currently only used for ResizeEvents, which only propagate from outports to inports in the same port group
Parameters
portto add
portGroupname of group to propagate events through (defaults to "default")

◆ addPort() [2/3]

template<typename T, typename std::enable_if_t< std::is_base_of< Outport, T >::value, int > = 0>
T & inviwo::Processor::addPort ( std::unique_ptr< T > port,
std::string_view portGroup = "default" )

Add port to processor and pass ownership to processor.

Note
Port group is a concept for event propagation. Currently only used for ResizeEvents, which only propagate from outports to inports in the same port group
Parameters
portto add
portGroupname of group to propagate events through (defaults to "default")

◆ addPort() [3/3]

template<typename T>
T & inviwo::Processor::addPort ( T & port,
std::string_view portGroup = "default" )

Add port to processor.

Note
Port group is a concept for event propagation. Currently only used for ResizeEvents, which only propagate from outports to inports in the same port group
Parameters
portto add
portGroupname of group to propagate events through (defaults to "default")

◆ addPorts()

template<typename... Ts>
void inviwo::Processor::addPorts ( Ts &... ports)
inline

Add ports to processor.

Note
Calling this method will add all ports to the default port group. If you wish to add a port to a certain port group you will need to call addPort(myPort, "myPortGroup") explicitly instead.
Parameters
portsto add

◆ addPortToGroup()

void inviwo::Processor::addPortToGroup ( Port * port,
std::string_view portGroup )
protected

Overwrites current port group, if any.

Note
Port group will be overwritten by addPort.
See also
addPort

◆ allInportsAreReady()

bool inviwo::Processor::allInportsAreReady ( ) const

The default function for checking whether all inports are ready. Will return true if all non optional inports are ready.

◆ deserialize()

virtual void inviwo::Processor::deserialize ( Deserializer & d)
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ doIfNotReady()

virtual void inviwo::Processor::doIfNotReady ( )
inlinevirtual

This function is called by the ProcessorNetworkEvaluator when the network is evaluated and the processor is neither ready or valid.

See also
ProcessorNetworkEvaluator

Reimplemented in inviwo::CanvasProcessor, inviwo::CanvasWithPropertiesProcessor, and inviwo::ProcessorTrampoline.

◆ getIdentifier()

virtual const std::string & inviwo::Processor::getIdentifier ( ) const
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ getInviwoApplication()

virtual InviwoApplication * inviwo::Processor::getInviwoApplication ( )
overridevirtual

Implements inviwo::PropertyOwner.

◆ getOwner() [1/2]

virtual const PropertyOwner * inviwo::Processor::getOwner ( ) const
inlineoverridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ getOwner() [2/2]

virtual PropertyOwner * inviwo::Processor::getOwner ( )
inlineoverridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ getPortGroup()

const std::string & inviwo::Processor::getPortGroup ( Port * port) const

Concept for event propagation. Currently only used for ResizeEvents, which only propagate from outports to inports in the same port group

◆ getProcessor() [1/2]

virtual const Processor * inviwo::Processor::getProcessor ( ) const
inlineoverridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ getProcessor() [2/2]

virtual Processor * inviwo::Processor::getProcessor ( )
inlineoverridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ initializeResources()

◆ invalidate()

virtual void inviwo::Processor::invalidate ( InvalidationLevel invalidationLevel,
Property * modifiedProperty = nullptr )
overridevirtual

Triggers invalidation. Perform only full reimplementation of this function, meaning never call Processor::invalidate() in your reimplemented invalidation function. The general scheme is that the processor will invalidate is self and it's outports the outports will in turn invalidate their connected inports, which will invalidate their processors. Hence all processors that depend on this one in the network will be invalidated.

Reimplemented from inviwo::PropertyOwner.

Reimplemented in inviwo::PoolProcessor, and inviwo::ProcessorTrampoline.

◆ invokeEvent()

virtual void inviwo::Processor::invokeEvent ( Event * event)
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ isConnectionActive()

virtual bool inviwo::Processor::isConnectionActive ( Inport * inport,
Outport * outport ) const
inlinevirtual

Return true if ProcessorNetworkEvaluator should evaluate the connection during ProcessorNetwork traversal. An inactive connection will propagate invalidations and events but will not be processed. Useful if the Processor has states in which it does not use an inport.

Parameters
inportThis processor's inport
outportAnother processor's outport
See also
InputSelector for an example

Reimplemented in inviwo::CacheBase, inviwo::ImageLayoutGL, inviwo::InputSelector< InportType, OutportType >, and inviwo::Layout.

◆ isReady()

bool inviwo::Processor::isReady ( ) const

Returns whether the processor is ready to be processed. By default this will call allInportsAreReady. This behavior can be customized by setting the isReady_ update functor.

See also
StateCoordinator
allInportsAreReady

◆ isSink()

bool inviwo::Processor::isSink ( ) const

Returns whether the processor is a sink. I.e. whether it pulls data from the network. By default a processor is a sink if it has no outports. This behavior can be customized by setting the isSink_ update functor. For a processor to be evaluated there have to be a sink among its descendants.

See also
StateCoordinator

◆ isSource()

bool inviwo::Processor::isSource ( ) const

Returns whether the processor is a source. I.e. whether it brings data into the network. By default a processor is a source if it has no inports. This behavior can be customized by setting the isSource_ update functor.

See also
StateCoordinator

◆ onDisplayNameChange()

NameDispatcherHandle inviwo::Processor::onDisplayNameChange ( std::function< void(std::string_view, std::string_view)> callback)

Get notified when the processor display name changes. The callback happens after the display name is changed.

Parameters
callbackgets called with the new and the old display name respectively.

◆ onIdentifierChange()

NameDispatcherHandle inviwo::Processor::onIdentifierChange ( std::function< void(std::string_view, std::string_view)> callback)

Get notified when the processor identifier changes. The callback happens after the identifier is changed.

Parameters
callbackgets called with the new and the old identifier respectively.

◆ process()

virtual void inviwo::Processor::process ( )
inlinevirtual

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 in inviwo::AxisAlignedCutPlane, inviwo::Background, inviwo::BasicWebBrowser, inviwo::BasisTransform< T >, inviwo::BrushingAndLinkingProcessor, inviwo::BufferToMeshProcessor, inviwo::CalcNormalsProcessor, inviwo::CameraFrustum, inviwo::CameraWidget, inviwo::CanvasProcessor, inviwo::CanvasWithPropertiesProcessor, inviwo::CompositeProcessor, inviwo::CompositeSink< InportType, OutportType >, inviwo::CompositeSource< InportType, OutportType >, inviwo::ConvexHull2DProcessor, inviwo::CropWidget, inviwo::CSVSource, inviwo::CubeProxyGeometry, inviwo::CubeRenderer, inviwo::DataExport< DataType, PortType >, inviwo::DataExport< Layer, ImageInport >, inviwo::DataExport< Mesh, MeshInport >, inviwo::DataExport< Volume, VolumeInport >, inviwo::DataExport< VolumeSequence, VolumeSequenceInport >, inviwo::DataFrameDockTable, inviwo::DataFrameExporter, inviwo::DataFrameFilter, inviwo::DataFrameFloat32Converter, inviwo::DataFrameJoin, inviwo::DataFrameMetaData, inviwo::DataFrameTable, inviwo::DataFrameToBuffer, inviwo::DataFrameToMesh, inviwo::DataFrameToVector, inviwo::DataSource< DataType, PortType, ReaderType >, inviwo::DataSource< DataFrame, DataFrameOutport >, inviwo::DataSource< Image, ImageOutport, Layer >, inviwo::DataSource< Layer, LayerOutport >, inviwo::DataSource< Mesh, MeshOutport >, inviwo::DepthDarkening, inviwo::DepthOfField, inviwo::DiffuseLightSourceProcessor, inviwo::DirectionalLightSourceProcessor, inviwo::DiscardShortLines, inviwo::DistanceTransformRAM, inviwo::DrawLines, inviwo::DrawPoints, inviwo::EigenMatrixToImage, inviwo::EigenMix, inviwo::EigenNormalize, inviwo::EmbeddedVolumeSlice, inviwo::EntryExitPoints, inviwo::FileCache< DataType, InportType, OutportType >, inviwo::FileList, inviwo::FirstIvwProcessor, inviwo::Fog, inviwo::FXAA, inviwo::GeometryEntryExitPoints, inviwo::glui::GLUIProcessor, inviwo::GLUITestProcessor, inviwo::GridPlanes, inviwo::hdf5::HDF5ToVolume, inviwo::hdf5::PathSelection, inviwo::hdf5::Source, inviwo::HdrBloom, inviwo::HedgeHog2D, inviwo::HeightFieldMapper, inviwo::HeightFieldProcessor, inviwo::HistogramToDataFrame< T >, inviwo::ImageChannelCombine, inviwo::ImageCompositeProcessorGL, inviwo::ImageContourProcessor, inviwo::ImageDistanceTransform, inviwo::ImageFilter, inviwo::ImageGLProcessor, inviwo::ImageInformation, inviwo::ImageLayer, inviwo::ImageLayoutGL, inviwo::ImageLowPass, inviwo::ImageMixer, inviwo::ImageOverlayGL, inviwo::ImageScaling, inviwo::ImageSnapshot, inviwo::ImageSourceSeries, inviwo::ImageStackVolumeSource, inviwo::ImageSubsetGL, inviwo::ImageToDataFrame, inviwo::ImageToLayer, inviwo::ImageToSpatialSampler, inviwo::InputSelector< InportType, OutportType >, inviwo::InstanceRenderer, inviwo::IntegralLineTracerProcessor< Tracer >, inviwo::IntegralLineTracerProcessor< PathLine3DTracer >, inviwo::IntegralLineTracerProcessor< StreamLine2DTracer >, inviwo::IntegralLineTracerProcessor< StreamLine3DTracer >, inviwo::IntegralLineVectorToMesh, inviwo::ISORaycaster, inviwo::LayerBoundingBox, inviwo::LayerCombiner, inviwo::LayerContour, inviwo::LayerDistanceTransform, inviwo::LayerGLProcessor, inviwo::LayerInformation, inviwo::LayerRenderer, inviwo::LayerResampling, inviwo::LayerSequenceSource, inviwo::LayerSeriesSource, inviwo::LayerToImage, inviwo::LayerToSpatialSampler, inviwo::Layout, inviwo::LightingRaycaster, inviwo::LightVolumeGL, inviwo::LineRendererProcessor, inviwo::LorenzSystem, inviwo::Mesh2DRenderProcessorGL, inviwo::MeshClipping, inviwo::MeshColorFromNormals, inviwo::MeshConverterProcessor, inviwo::MeshCreator, inviwo::MeshInformation, inviwo::MeshMapping, inviwo::MeshPicking, inviwo::MeshPlaneClipping, inviwo::MeshRenderProcessorGL, inviwo::MeshVolumeRenderer, inviwo::MovieExport, inviwo::MultichannelRaycaster, inviwo::NoiseGenerator2D, inviwo::NoiseGenerator3D, inviwo::OrientationIndicator, inviwo::OrthographicAxis2D, inviwo::PathLinesDeprecated, inviwo::PixelToBufferProcessor, inviwo::PixelValue, inviwo::plot::AxisRenderProcessor, inviwo::plot::ColorScaleLegend, inviwo::plot::DataFrameColumnToColorVector, inviwo::plot::ImagePlotProcessor, inviwo::plot::LayerAxis, inviwo::plot::MeshAxis, inviwo::plot::ParallelCoordinates, inviwo::plot::PersistenceDiagramPlotProcessor, inviwo::plot::ScatterPlotMatrixProcessor, inviwo::plot::ScatterPlotProcessor, inviwo::plot::VolumeAxis, inviwo::Point3DGenerationProcessor, inviwo::PointLightSourceProcessor, inviwo::PointRenderer, inviwo::PresentationProcessor, inviwo::ProcessorTrampoline, inviwo::RandomMeshGenerator, inviwo::RandomSphereGenerator, inviwo::RasterizationRenderer, inviwo::Rasterizer, inviwo::RBFVectorFieldGenerator2D, inviwo::RBFVectorFieldGenerator3D, inviwo::RedGreenProcessor, inviwo::Seed3Dto4D, inviwo::SeedPointGenerator2D, inviwo::SeedPointGenerator, inviwo::SeedPointsFromMask, inviwo::SeedsFromMaskSequence, inviwo::ShaderComponentProcessorBase, inviwo::SingleVoxel, inviwo::SphereRenderer, inviwo::SplitImage, inviwo::SpotLightSourceProcessor, inviwo::SSAO, inviwo::StereoCameraSyncer, inviwo::StreamLinesDeprecated, inviwo::StreamParticles, inviwo::StreamRibbonsDeprecated, inviwo::SurfaceExtraction, inviwo::SyntheticDataFrame, inviwo::TestMatrix, inviwo::TetraMeshBoundaryExtractor, inviwo::TetraMeshBoundingBox, inviwo::TetraMeshVolumeRaycaster, inviwo::TextOverlayGL, inviwo::TFFromDataFrameColumn, inviwo::TFSelector, inviwo::TMIP, inviwo::Transform< T >, inviwo::Transform< TetraMesh >, inviwo::TrianglesToWireframe, inviwo::TubeRendering, inviwo::VectorElementSelectorProcessor< T, OutportType >, inviwo::VectorElementSelectorProcessor< Image, ImageOutport >, inviwo::VectorElementSelectorProcessor< Layer, LayerOutport >, inviwo::VectorElementSelectorProcessor< Mesh, MeshOutport >, inviwo::VectorElementSelectorProcessor< Volume >, inviwo::VectorFieldGenerator2D, inviwo::VectorFieldGenerator3D, inviwo::VectorFieldGenerator4D, inviwo::VectorToBuffer< T >, inviwo::VolumeBoundaryPlanes, inviwo::VolumeBoundingBox, inviwo::VolumeChannelCombiner, inviwo::VolumeCombiner, inviwo::VolumeConverter, inviwo::VolumeCreator, inviwo::VolumeCurlCPUProcessor, inviwo::VolumeDivergenceCPUProcessor, inviwo::VolumeDownsample, inviwo::VolumeGLProcessor, inviwo::VolumeGradientCPUProcessor, inviwo::VolumeInformation, inviwo::VolumeLaplacianProcessor, inviwo::VolumeNormalizationProcessor, inviwo::VolumeRaycaster, inviwo::VolumeRegionMapper, inviwo::VolumeRegionShrink, inviwo::VolumeRegionStatistics, inviwo::VolumeSequenceSingleTimestepSamplerProcessor, inviwo::VolumeSequenceSource, inviwo::VolumeSequenceToDataFrame, inviwo::VolumeSequenceToSpatial4DSampler, inviwo::VolumeShifter, inviwo::VolumeSliceExtractor, inviwo::VolumeSliceGL, inviwo::VolumeSource, inviwo::VolumeSubset, inviwo::VolumeToDataFrame, inviwo::VolumeToSpatialSampler, inviwo::VolumeToTetraMesh, inviwo::VolumeVoronoiSegmentation, inviwo::WebBrowserProcessor, and inviwo::WorldTransformDeprecated< T >.

◆ propagateEvent()

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

Implements inviwo::EventPropagator.

Reimplemented in inviwo::CompositeProcessor.

◆ removeInteractionHandler()

void inviwo::Processor::removeInteractionHandler ( InteractionHandler * interactionHandler)

Remove the interaction handler such that events are not propagated. The interaction handler will not be deleted by the processor.

Parameters
interactionHandlerInteraction handler to be removed.

◆ removePortFromGroups()

void inviwo::Processor::removePortFromGroups ( Port * port)
protected

Removes port from its group, even if it is the default one.

See also
addPort

◆ serialize()

virtual void inviwo::Processor::serialize ( Serializer & s) const
overridevirtual

Reimplemented from inviwo::PropertyOwner.

◆ setDisplayName()

void inviwo::Processor::setDisplayName ( std::string_view displayName)

Name of processor, arbitrary string. By default initialized to the ProcessorInfo displayName. This name will be shown on various graphical representations.

◆ setIdentifier()

void inviwo::Processor::setIdentifier ( std::string_view identifier)

Sets the identifier of the Processor. Processor identifiers should only contain alpha numeric characters, "-", "_" and " ". If there already exist a processor with that identifier or if the identifier is invalid an Exception will be thrown. By default initialized to the ProcessorInfo displayName. When adding the processor to a network the network will use util::findUniqueIdentifier to modify the identifier if it is already used in the network.

See also
ProcessorNetwork
util::findUniqueIdentifier

◆ setValid()

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

Called by the network after Processor::process has been called. This will set the following to valid

  • The processor
  • All properties
  • All outports and their connected inports. It will also set its inports "changed" to false.

Reimplemented from inviwo::PropertyOwner.

Reimplemented in inviwo::ProcessorTrampoline, and inviwo::Rasterizer.

◆ status()

const ProcessorStatus & inviwo::Processor::status ( ) const

Returns whether the processor is ready to be processed. By default this will call allInportsAreReady. This behavior can be customized by setting the isReady_ update functor.

See also
StateCoordinator
allInportsAreReady

The documentation for this class was generated from the following file:
  • processor.h