![]() |
Inviwo 0.9.12-pre
Inviwo documentation
|
A processor that contains and manages a sub network and evaluates that sub network once per item in an input sequence. More...
#include <inviwo/core/processors/sequenceprocessor.h>
Public Member Functions | |
| Property * | addSuperProperty (Property *subProperty) |
| virtual void | deserialize (Deserializer &d) override |
| virtual const ProcessorInfo & | getProcessorInfo () const override |
| ProcessorNetwork & | getSubNetwork () |
| Property * | getSubProperty (Property *superProperty) |
| Property * | getSuperProperty (Property *subProperty) |
| SequenceProcessor & | operator= (const SequenceProcessor &)=delete |
| SequenceProcessor & | operator= (SequenceProcessor &&)=delete |
| virtual void | process () override |
| virtual void | propagateEvent (Event *event, Outport *source) override |
| void | removeSuperProperty (Property *subProperty) |
| void | saveSubNetwork (const std::filesystem::path &file) |
| SequenceProcessor (const SequenceProcessor &)=delete | |
| SequenceProcessor (SequenceProcessor &&)=delete | |
| SequenceProcessor (std::string_view identifier, std::string_view displayName, InviwoApplication *app, const std::filesystem::path &filename={}) | |
| virtual void | serialize (Serializer &s) const override |
| 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> | |
| T & | addPort (std::unique_ptr< T > port, std::string_view portGroup="default") |
| template<typename T> | |
| 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 | 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 |
| ProcessorWidget * | getProcessorWidget () const |
| const Tags & | getTags () const |
| bool | hasInteractionHandler () const |
| bool | hasProcessorWidget () const |
| virtual void | initializeResources () |
| 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) |
| Inport * | removePort (Inport *port) |
| Outport * | removePort (Outport *port) |
| Port * | removePort (std::string_view identifier) |
| 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> | |
| T * | createMetaData (std::string_view key) |
| void | deserialize (Deserializer &d) |
| template<typename T> | |
| T * | getMetaData (std::string_view key) |
| template<typename T> | |
| const T * | getMetaData (std::string_view key) const |
| template<typename T, typename U> | |
| U | getMetaData (std::string_view key, U val) const |
| MetaDataMap * | getMetaDataMap () |
| const MetaDataMap * | getMetaDataMap () const |
| template<typename T> | |
| 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> | |
| void | setMetaData (std::string_view key, U value) |
| template<typename T> | |
| 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 Member Functions inherited from inviwo::ProcessorNetworkObserver | |
| virtual void | onProcessorNetworkChange () |
| virtual void | onProcessorNetworkDidAddConnection (const PortConnection &) |
| virtual void | onProcessorNetworkDidAddLink (const PropertyLink &) |
| virtual void | onProcessorNetworkDidRemoveConnection (const PortConnection &) |
| virtual void | onProcessorNetworkDidRemoveLink (const PropertyLink &) |
| virtual void | onProcessorNetworkDidRemoveProcessor (Processor *) |
| virtual void | onProcessorNetworkUnlocked () |
| virtual void | onProcessorNetworkWillAddConnection (const PortConnection &) |
| virtual void | onProcessorNetworkWillAddLink (const PropertyLink &) |
| virtual void | onProcessorNetworkWillAddProcessor (Processor *) |
| virtual void | onProcessorNetworkWillRemoveConnection (const PortConnection &) |
| virtual void | onProcessorNetworkWillRemoveLink (const PropertyLink &) |
| Public Member Functions inherited from inviwo::Observer | |
| Observer (const Observer &other) | |
| Observer (Observer &&other) | |
| Observer & | operator= (const Observer &other) |
| Observer & | operator= (Observer &&other) |
| void | removeObservation (ObservableInterface *observable) |
| void | removeObservations () |
| virtual | ~Observer () |
| Public Member Functions inherited from inviwo::PropertyOwnerObserver | |
| virtual void | onDidRemoveProperty (PropertyOwner *owner, Property *property, size_t index) |
| virtual void | onWillAddProperty (PropertyOwner *owner, Property *property, size_t index) |
Static Public Attributes | |
| static const ProcessorInfo | processorInfo_ |
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 |
| Public Attributes inherited from inviwo::ProcessorNetworkObserver | |
| friend | ProcessorNetworkObservable |
| Public Attributes inherited from inviwo::PropertyOwnerObserver | |
| friend | PropertyOwnerObservable |
| 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 Member Functions inherited from inviwo::Observer | |
| void | addObservation (ObservableInterface *observable) |
| Static Protected Member Functions inherited from inviwo::Processor | |
| static std::function< ProcessorStatus()> | getDefaultIsReadyUpdater (Processor *) |
| 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 |
| Protected Attributes inherited from inviwo::Observer | |
| std::unordered_set< ObservableInterface * > | observables_ |
A processor that contains and manages a sub network and evaluates that sub network once per item in an input sequence.
The SequenceProcessor encapsulates a group of processors (the sub network) and applies the same sub network computation to every element of an input sequence. Unlike a standard composite processor that evaluates its sub network exactly once per call to process(), the SequenceProcessor iterates over an input sequence and evaluates the sub network for each item in turn. This is useful when you want to run identical processing steps for each element in a collection (e.g., frames, volumes, or any sequence of data).
Typical workflow:
Behavior when running:
Properties in the sub network added via addSuperProperty, are cloned and exposed on the SequenceProcessor. The cloned properties are synchronized with the originals using mutual onChange callbacks so that state is kept consistent between the super and sub networks.
Events are forwarded through the sub network using the super inports and outports.
| inviwo::SequenceProcessor::SequenceProcessor | ( | std::string_view | identifier, |
| std::string_view | displayName, | ||
| InviwoApplication * | app, | ||
| const std::filesystem::path & | filename = {} ) |
Construct a SequenceProcessor. An optional workspace file can be supplied in which case it is deserialized as the SequenceProcessor's sub network; otherwise the sub network is left empty. Call getSubNetwork() to add processors programmatically.
Add a corresponding property in the SequenceProcessor for the sub property 'subProperty' in the sub network. Changes in the subProperty will be reflected in the superProperty and vice versa.
|
overridevirtual |
Reimplemented from inviwo::Processor.
|
overridevirtual |
Implements inviwo::Processor.
| ProcessorNetwork & inviwo::SequenceProcessor::getSubNetwork | ( | ) |
Get access to the sub network to add or remove processors etc
Get the sub property for super property 'superProperty'.
Get the super property for sub property 'subProperty' given there is one, nullptr otherwise.
|
overridevirtual |
Evaluate the sub network for each item in the input sequence.
Reimplemented from inviwo::Processor.
|
overridevirtual |
Propagate events for the current sequence item through the sub network using the sink and source processors.
Reimplemented from inviwo::Processor.
| void inviwo::SequenceProcessor::removeSuperProperty | ( | Property * | subProperty | ) |
Remove the super property for sub property 'subProperty'.
| void inviwo::SequenceProcessor::saveSubNetwork | ( | const std::filesystem::path & | file | ) |
Save the current sub network into the sequence composites folder of the user settings dir. The current display name will be used as filename. Saved networks will automatically appear as Processors in the processor list with the same display name.
|
overridevirtual |
Reimplemented from inviwo::Processor.