| #include "rive/shapes/path_vertex.hpp" |
| #include "rive/shapes/path.hpp" |
| |
| using namespace rive; |
| |
| StatusCode PathVertex::onAddedDirty(CoreContext* context) |
| { |
| StatusCode code = Super::onAddedDirty(context); |
| if (code != StatusCode::Ok) |
| { |
| return code; |
| } |
| #ifndef WITH_RIVE_EDITOR |
| // Runtime-only: importer guarantees parent-first hydration so |
| // `parent()` is always resolved here. Editor build moves this |
| // registration into `editorParentChanged` (called by Pass 4.5 |
| // of the dispatcher AFTER `onAddedClean` confirms parent is |
| // non-null) so coop's intra-batch out-of-order doesn't crash. |
| if (!parent()->is<Path>()) |
| { |
| return StatusCode::MissingObject; |
| } |
| parent()->as<Path>()->addVertex(this); |
| #endif |
| return StatusCode::Ok; |
| } |
| |
| void PathVertex::markGeometryDirty() |
| { |
| if (parent() == nullptr) |
| { |
| // This is an acceptable condition as the parametric paths create points |
| // that are not part of the core context. |
| return; |
| } |
| parent()->as<Path>()->markPathDirty(); |
| } |