|
| ProcessorNetwork (InviwoApplication *application) |
|
Processor * | addProcessor (std::unique_ptr< Processor > processor) |
|
bool | addProcessor (Processor *processor) |
|
void | removeProcessor (Processor *processor) |
|
void | removeAndDeleteProcessor (Processor *processor) |
|
Processor * | getProcessorByIdentifier (std::string identifier) const |
|
template<class T > |
std::vector< T * > | getProcessorsByType () const |
|
std::vector< Processor * > | getProcessors () const |
|
template<typename C > |
void | forEachProcessor (C callback) |
|
void | addConnection (Outport *sourcePort, Inport *destPort) |
|
void | addConnection (const PortConnection &connection) |
|
bool | canConnect (const Outport *sourcePort, const Inport *destPort) const |
|
void | removeConnection (Outport *sourcePort, Inport *destPort) |
|
void | removeConnection (const PortConnection &connection) |
|
bool | isConnected (Outport *sourcePort, Inport *destPort) const |
|
bool | isConnected (const PortConnection &connection) const |
|
const std::vector< PortConnection > & | getConnections () const |
|
template<typename C > |
void | forEachConnection (C callback) |
|
bool | isPortInNetwork (Port *port) const |
|
void | addLink (Property *source, Property *destination) |
|
void | addLink (const PropertyLink &link) |
|
bool | canLink (const Property *source, const Property *destination) const |
|
void | removeLink (Property *source, Property *destination) |
|
void | removeLink (const PropertyLink &link) |
|
bool | isLinked (Property *source, Property *destination) const |
|
bool | isLinked (const PropertyLink &link) const |
|
std::vector< PropertyLink > | getLinks () const |
|
template<typename C > |
void | forEachLink (C callback) |
|
bool | isLinkedBidirectional (Property *source, Property *destination) |
|
std::vector< Property * > | getPropertiesLinkedTo (Property *property) |
|
std::vector< PropertyLink > | getLinksBetweenProcessors (Processor *p1, Processor *p2) |
|
Property * | getProperty (std::vector< std::string > path) const |
|
bool | isPropertyInNetwork (Property *prop) const |
|
InviwoApplication * | getApplication () const |
|
int | getVersion () const |
|
void | evaluateLinksFromProperty (Property *) |
|
bool | isEmpty () const |
|
bool | isInvalidating () const |
|
bool | isLinking () const |
|
void | lock () |
|
void | unlock () |
|
bool | islocked () const |
|
virtual void | serialize (Serializer &s) const override |
|
virtual void | deserialize (Deserializer &d) override |
|
bool | isDeserializing () const |
|
void | clear () |
|
void | notifyObserversProcessorNetworkChanged () |
|
void | notifyObserversProcessorNetworkEvaluateRequest () |
|
void | notifyObserversProcessorNetworkUnlocked () |
|
void | notifyObserversProcessorNetworkWillAddProcessor (Processor *processor) |
|
void | notifyObserversProcessorNetworkDidAddProcessor (Processor *processor) |
|
void | notifyObserversProcessorNetworkWillRemoveProcessor (Processor *processor) |
|
void | notifyObserversProcessorNetworkDidRemoveProcessor (Processor *processor) |
|
void | notifyObserversProcessorNetworkWillAddConnection (const PortConnection &connection) |
|
void | notifyObserversProcessorNetworkDidAddConnection (const PortConnection &connection) |
|
void | notifyObserversProcessorNetworkWillRemoveConnection (const PortConnection &connection) |
|
void | notifyObserversProcessorNetworkDidRemoveConnection (const PortConnection &connection) |
|
void | notifyObserversProcessorNetworkWillAddLink (const PropertyLink &propertyLink) |
|
void | notifyObserversProcessorNetworkDidAddLink (const PropertyLink &propertyLink) |
|
void | notifyObserversProcessorNetworkWillRemoveLink (const PropertyLink &propertyLink) |
|
void | notifyObserversProcessorNetworkDidRemoveLink (const PropertyLink &propertyLink) |
|
| Observable (const Observable< ProcessorNetworkObserver > &other) |
|
| Observable (Observable< ProcessorNetworkObserver > &&other) |
|
Observable< ProcessorNetworkObserver > & | operator= (const Observable< ProcessorNetworkObserver > &other) |
|
Observable< ProcessorNetworkObserver > & | operator= (Observable< ProcessorNetworkObserver > &&other) |
|
void | addObserver (ProcessorNetworkObserver *observer) |
|
void | removeObserver (ProcessorNetworkObserver *observer) |
|
virtual void | startBlockingNotifications () override final |
|
virtual void | stopBlockingNotifications () override final |
|
virtual void | onProcessorDisplayNameChanged (Processor *, const std::string &) |
|
virtual void | onProcessorPortAdded (Processor *, Port *) |
|
virtual void | onProcessorAboutToProcess (Processor *) |
|
virtual void | onProcessorFinishedProcess (Processor *) |
|
virtual void | onProcessorSourceChanged (Processor *) |
|
virtual void | onProcessorSinkChanged (Processor *) |
|
virtual void | onProcessorReadyChanged (Processor *) |
|
| Observer (const Observer &other) |
|
| Observer (Observer &&other) |
|
Observer & | operator= (Observer &&other) |
|
Observer & | operator= (const Observer &other) |
|
virtual | ~Observer () |
|
void | removeObservation (ObservableInterface *observable) |
|
void | removeObservations () |
|
virtual void | onWillAddProperty (Property *property, size_t index) |
|
virtual void | onDidAddProperty (Property *property, size_t index) |
|
virtual void | onDidRemoveProperty (Property *property, size_t index) |
|
This class manages the current processor network. It can be thought of as a container of Processor instances, which Port instances are connected through PortConnection instances, and which Property instances are linked through ProcessorLink instances. To manage Processors, PortConnections and ProcessorLinks, add and remove methods are available for all these entities. The network should be only modified by using these methods. Typically, these methods are called by the NetworkEditor, which enables the user to edit ProcessorNetworks.
When the ProcessorNetwork has been changed, it is flagged as modified. This mechanism is used by the ProcessorNetworkEvaluator to identify if the ProcessorNetwork needs to be analyzed before processing.
In the model view controller design pattern, the ProcessorNetwork represents the model, which means that no graphical representations are generated for the added entities. Adding and removing of the graphical representations is done in the NetworkEditor.