|
| MeshModelSource (const QString &modelId="") |
|
| ~MeshModelSource () override |
|
QString | getExistingNormalsStateName () const |
|
const QDateTime & | getLastUpdated () const |
|
LockableRef | getLockableReference () |
|
DataExecution::InputScalar & | getMeshModelInput () |
|
const DataExecution::InputScalar & | getMeshModelInput () const |
|
MeshModelInterface * | getMeshModelInterface () |
|
MeshModelInterfaceLockedPtr | getMeshModelInterfaceLocked () |
|
QString | getModelId () |
|
const QDateTime & | getModelLastUpdated () const |
|
bool | requestModelUpdate () |
|
bool | setModelId (const QString &modelId) |
|
| ~Operation () override |
|
bool | addInput (Input &input, bool modifiedInPlace=false) |
|
bool | addOutput (Output &output) |
|
template<typename T > |
bool | assignInput (const QString &inputName, const T &value) |
|
bool | canSerialize () const override |
|
bool | connectProgressEvents (QProgressBar *progressBar) |
|
virtual Presentation::CustomOperationProperties * | createCustomPropertiesHandler () |
|
virtual void | ensureHasData () |
|
bool | getBroadcastUpdateEvents () const |
|
QColor | getColor () const |
|
virtual QString | getDefaultIconPath () const |
|
QString | getDefaultUiPath () const |
|
QString | getDeprecationMessage () const |
|
const QString & | getDescription () const |
|
SerializedItem | getExtras () |
|
const OperationFactory & | getFactory () const |
|
Operation * | getFromPath (const QString &path, Workspace &relativeTo, QStringList &errors) const override |
|
virtual GraphicsSize | getGraphicsSize () const |
|
virtual QString | getHelpPage () const |
|
QString | getIconPath () const |
|
const QUuid & | getId () const |
|
QString | getIdPath (bool scoped=true) const override |
|
QString | getIdPath (const Workspace &relativeTo) const |
|
difference_type | getIndex (const Input &input, IndexCountingOptions options=SkipNone) const |
|
difference_type | getIndex (const Output &output, IndexCountingOptions options=SkipNone) const |
|
void | getIndexPair (InputScalar &input, difference_type &mainIndex, difference_type &arrayIndex) |
|
Input * | getInput (const QString &name) |
|
const Input * | getInput (const QString &name) const |
|
Input * | getInput (size_type index) |
|
const Input * | getInput (size_type index) const |
|
InputArray * | getInputArray (const QString &name) |
|
const InputArray * | getInputArray (const QString &name) const |
|
IOBaseIteratorRange< Input, false > | getInputs () |
|
IOBaseIteratorRange< Input, true > | getInputs () const |
|
InputScalar * | getInputScalar (const QString &name) |
|
const InputScalar * | getInputScalar (const QString &name) const |
|
template<typename T > |
T & | getInputValue (const QString &inputName) |
|
template<typename T > |
const T & | getInputValue (const QString &inputName) const |
|
const QString & | getLabel () const |
|
QString | getLabelRelativeToRoot () const |
|
Output * | getOutput (const QString &name) |
|
const Output * | getOutput (const QString &name) const |
|
Output * | getOutput (size_type index) |
|
const Output * | getOutput (size_type index) const |
|
IOBaseIteratorRange< Output, false > | getOutputs () |
|
IOBaseIteratorRange< Output, true > | getOutputs () const |
|
template<typename T > |
T & | getOutputValue (const QString &outputName) |
|
template<typename T > |
const T & | getOutputValue (const QString &outputName) const |
|
bool | getProfilingEnabled () const |
|
int | getProgress () const |
|
int | getProgressContribution () const |
|
bool | getProgressResetByNotUpToDate () const |
|
virtual SchedulerFeatures | getRequiredSchedulerFeatures () const |
|
InputScalar * | getScalarInput (size_type mainIndex, difference_type arrayIndex) |
|
QString | getShortLabel () const |
|
QString | getTagName () const |
|
bool | getTerminateExecution () const |
|
QString | getUiPath () const |
|
bool | getUpToDate () const override |
|
virtual bool | hasRequiredSchedulerFeatures () const |
|
void | idPathChanged () override |
|
virtual bool | inputRebuilt (InputScalar &input) |
|
virtual bool | isAsynchronous () const |
|
virtual bool | isAsynchronousProcess () const |
|
virtual bool | isAtomicUpdate () const |
|
bool | isConnectedToAsynchronous () const override |
|
bool | isDeprecated () const |
|
bool | isEditable () const |
|
bool | isIdPathCachingEnabled () const |
|
virtual bool | isPolymorphicType () const |
|
virtual bool | isRunningAsynchronously () const |
|
virtual bool | isThreadSafe () const |
|
template<typename T > |
bool | isType () const |
|
bool | isType (const OperationFactory &type) const |
|
bool | isUpdating () const |
|
virtual bool | isUserConfigurable () |
|
bool | isUsingDefaultColor () const |
|
bool | isUsingDefaultIconPath () const |
|
bool | isUsingDefaultUiPath () const |
|
bool | isWaitingForAsynchronousUpdate () const override |
|
bool | isWorkspaceType () const |
|
bool | load (const SerializedItem &item) override |
|
void | markUpToDateWhereSafe () |
|
bool | matchesType (const Operation &otherOperation) const |
|
size_type | numInputs (IndexCountingOptions=SkipNone) const |
|
size_type | numOutputs (IndexCountingOptions=SkipNone) const |
|
bool | removeInput (const QString &name) |
|
bool | removeInput (Input &input) |
|
bool | removeOutput (const QString &name) |
|
bool | removeOutput (Output &output) |
|
virtual void | resetExecutionDependencies () |
|
bool | save (SerializedItem &item) const override |
|
virtual bool | saveWithData (SerializedItem &item) const |
|
virtual void | setAtomicUpdate (bool atomic) |
|
void | setBroadcastUpdateEvents (bool enable) |
|
void | setColor (const QColor &c) |
|
void | setDescription (const QString &description) |
|
void | setEditable (bool b) |
|
void | setIconPath (const QString &path) |
|
void | setId (const QUuid &id) |
|
virtual void | setIdPathCachingEnabled (bool b) |
|
virtual void | setInputNotUpToDate (InputScalar &input) |
|
virtual void | setIsAsynchronous (bool asynchronous) |
|
virtual void | setIsAsynchronousProcess (bool) |
|
virtual void | setIsRunningAsynchronously (bool asynchronous) |
|
void | setLabel (const QString &label) |
|
virtual void | setOutputNotUpToDate (Output &output) |
|
void | setProfilingEnabled (bool enable) |
|
virtual void | setProgress (int percent) |
|
void | setProgressContribution (int percent) |
|
void | setProgressResetByNotUpToDate (bool b) |
|
virtual void | setRequiredSchedulerFeatures (const SchedulerFeatures &) |
|
void | setTerminateExecution (bool b) |
|
void | setUiPath (const QString &path) |
|
void | setUpToDate (bool b) override |
|
bool | update (Updater *updater=nullptr) override |
|
| ~WorkspaceElement () override |
|
const Workspace * | getWorkspace () const override |
|
Workspace * | getWorkspace () override |
|
virtual void | workspaceChanged (Workspace *oldWorkspace) |
|
| ~Updatable () override |
|
virtual bool | comesFromExternal () const |
|
QString | getEnclosingScope () const |
|
virtual Updatable * | getFromPath (const QString &path, Workspace &relativeTo, QStringList &errors) const =0 |
|
const QString & | getGlobalName () const |
|
virtual QString | getIdPath (bool scoped=true) const =0 |
|
virtual Workspace * | getRootWorkspace () |
|
virtual const Workspace * | getRootWorkspace () const |
|
QString | getScopedGlobalName () const |
|
virtual bool | getUpToDate () const =0 |
|
virtual const Workspace * | getWorkspace () const =0 |
|
virtual Workspace * | getWorkspace ()=0 |
|
virtual void | idPathChanged () |
|
virtual bool | isConnectedToAsynchronous () const =0 |
|
virtual bool | isWaitingForAsynchronousUpdate () const =0 |
|
void | setGlobalName (const QString &name) |
|
virtual void | setUpToDate (bool b)=0 |
|
virtual bool | update (Updater *updater=nullptr)=0 |
|
virtual | ~Observable () |
|
void | attachObserver (Observer &observer) |
|
void | destroy () |
|
void | detachObserver (Observer &observer) |
|
void | notifyEvent (const ObservableEvent &event) |
|
virtual | ~Serialize ()=default |
|
virtual bool | canSerialize () const =0 |
|
virtual bool | load (const SerializedItem &item)=0 |
|
virtual bool | save (SerializedItem &item) const =0 |
|
| TextLogger () |
|
| TextLogger (const DataExecution::IOBase &io) |
|
| TextLogger (const DataExecution::Operation &operation) |
|
| TextLogger (const TextLogger &logger) |
|
| TextLogger (TextLogger &&logger) |
|
virtual | ~TextLogger () |
|
void | logLine (const Application::LogManager::MessageCategory &category, const QString &msg) const |
|
void | logLine (const QString &msg) const |
|
void | logText (const Application::LogManager::MessageCategory &category, const QString &msg) const |
|
void | logText (const QString &msg) const |
|
TextLogger & | operator= (TextLogger) |
|
This operation does not function like most workspace operations. Normally, an operation updates its inputs when the operation's outputs are requested. The MeshModelSource, however, instead passes itself as one of its own outputs and only updates the input which provides the ID for the model. The input associated with the MeshModel itself is not updated until something calls requestModelUpdate(), after which the next call to update() will bring the model input up to date. For as long as the model input is up to date, the model can be obtained by calling getMeshModelInterface().
By passing itself as its output, the MeshModelSource operation essentially becomes a DataObject that can be passed around and used by clients to trigger the source to read the model only when they need it. This provides a way to express a relationship in a conventional workspace arrangement, but delay the actual execution of parts of that workspace until something needs the actual data generated by the execution. One of the more useful techniques this enables is to express the structure of some data with workspace operations, but delay the population of that structured data (or portions thereof) until something actually needs it.
A consequence of all this is that updating a MeshModelSource operation does not typically update all its inputs, only some. The bringInputsUpToDate(), makeOutputsValid() and execute() functions are all overridden to provide this custom behaviour.
bool bringInputsUpToDate |
( |
| ) |
|
|
overrideprotectedvirtual |
This function is responsible for first bringing the dependency input up to date, then determining all the inputs required to update the operation's outputs and bring those inputs up to date as well.
The default implementation assumes all inputs need to be brought up to date, but some operations may only require some of the inputs to be up to date in order to calculate the outputs. Indeed, some of the inputs may need to be up to date, their values checked and then some combination of the rest brought up to date. An example where this could be useful is where an operation should behave differently for different iterations of a loop.
Subclasses which choose to override this function should call the other overloaded version of this function as necessary to actually bring the inputs it needs up to date, since it will handle multi-threading in a future implementation. It must update the dependency input first on its own before anything else.
- Returns
- True if required inputs were able to be brought up to date.
- See also
- update(), execute(), bringInputUpToDate(), bringArrayOfInputsUpToDate()
The MeshModelSource override of this function does not try to update the MeshModelInterface input unless the model ID input holds an empty string. If the model ID is not empty, the function allows the model input to remain not up to date until something asks the source to request it by calling requestModelUpdate(). If the model ID is empty, then the model input is needed to use the name assigned to the model as the model ID instead.
Reimplemented from Operation.
Reimplemented in MeshModelInstanceBuilder.