Example #1
0
// This will stop the invalidation of the network unless the dirty flag is set.
void SurfaceExtraction::invalidate(InvalidationLevel invalidationLevel,
                                   Property* modifiedProperty) {
    notifyObserversInvalidationBegin(this);
    PropertyOwner::invalidate(invalidationLevel, modifiedProperty);

    if (dirty_ || volume_.isChanged()) outport_.invalidate(InvalidationLevel::InvalidOutput);

    notifyObserversInvalidationEnd(this);
}
Example #2
0
void Processor::invalidate(InvalidationLevel invalidationLevel, Property* modifiedProperty) {
    if (!invalidationEnabled_) {
        invalidationRequestLevel_ = invalidationLevel;
        return;
    }

    notifyObserversInvalidationBegin(this);
    PropertyOwner::invalidate(invalidationLevel, modifiedProperty);
    if (!isValid()) {
        for (auto& port : outports_) port->invalidate(INVALID_OUTPUT);
    }
    notifyObserversInvalidationEnd(this);

    if (!isValid() && isEndProcessor()) {
        performEvaluateRequest();
    }
}