// 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); }
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(); } }