![]() |
Olympe Engine 2.0
2D Game Engine with ECS Architecture
|
Stateless global verifier for ATS Visual Script graphs. More...
#include <VSGraphVerifier.h>
Static Public Member Functions | |
| static VSVerificationResult | Verify (const TaskGraphTemplate &graph) |
| Run all verification rules on the given graph. | |
Private Member Functions | |
| VSGraphVerifier ()=delete | |
Stateless global verifier for ATS Visual Script graphs.
Call VSGraphVerifier::Verify(graph) to run all 14 rules on the graph. The result contains zero or more VSVerificationIssue entries.
Rules implemented: E001 — Exactly one EntryPoint node required E002 — Dangling node (no exec in or out, except EntryPoint) E003 — Exec cycle detected (iterative DFS) E004 — Circular SubGraph reference E005 — Exec connection references unknown node E006 — Incompatible data pin types E007 — Inverted pin direction (output connected to output, or input to input) E008 — Unknown Blackboard key in GetBBValue/SetBBValue E009 — Blackboard type mismatch E010 — Switch node missing switchVariable E011 — Switch node has duplicate case values E012 — Switch node has a case with empty pin name W001 — AtomicTask with empty AtomicTaskID W002 — Delay with DelaySeconds <= 0 W003 — SubGraph with empty SubGraphPath W004 — MathOp with empty MathOperator I001 — Node not reachable from EntryPoint E040 — Branch/While: Pin mode with empty pin reference E041 — Branch/While: Variable mode but variable not in blackboard E042 — Branch/While: Type mismatch between left and right operands W015 — Branch/While: Const vs Const condition (always true/false — optimisation hint) W016 — Branch/While: Pin mode selected but no DataConnection for that pin
Definition at line 88 of file VSGraphVerifier.h.
|
privatedelete |
|
staticprivate |
Definition at line 61 of file VSGraphVerifier.cpp.
References GetComponentTypeID_Static(), and Olympe::VSVerificationIssue::severity.
Referenced by CheckAtomicTaskIDs(), CheckBBKeyCompatibility(), CheckBlackboardKeys(), CheckBlackboardTypes(), CheckConditionIDs(), CheckConditionParams(), CheckConditionStructure(), CheckDanglingNodes(), CheckDataPinTypes(), CheckEntryPoint(), CheckExecCycles(), CheckExecPinTypes(), CheckMathOperators(), CheckNodeParameterWarnings(), CheckPinDirections(), CheckReachability(), CheckSubGraphCircular(), CheckSubGraphPaths(), and CheckSwitchNodes().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 806 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::AtomicTask, Olympe::AtomicTaskUIRegistry::Get(), GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::NodeID, and Olympe::Warning.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 987 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::ForEach, GetComponentTypeID_Static(), Olympe::List, Olympe::TaskNodeDefinition::NodeID, and Olympe::Warning.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 492 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::NodeID, and Olympe::SetBBValue.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 534 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::None, Olympe::DataPinDefinition::PinName, and Olympe::SetBBValue.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 835 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Branch, Olympe::Error, Olympe::ConditionRegistry::Get(), GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::NodeID, and Olympe::While.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 943 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Branch, Olympe::Error, Olympe::ConditionRegistry::Get(), GetComponentTypeID_Static(), Olympe::ConditionParamSpec::name, and Olympe::While.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 1023 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Branch, Olympe::Error, Olympe::Float, GetComponentTypeID_Static(), Olympe::Int, Olympe::None, Olympe::Warning, and Olympe::While.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 163 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::EntryPoint, Olympe::Error, Olympe::GetBBValue, GetComponentTypeID_Static(), and Olympe::MathOp.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 364 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::TaskNodeDefinition::DataPins, Olympe::Error, GetComponentTypeID_Static(), and Olympe::None.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 133 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::EntryPoint, Olympe::Error, and GetComponentTypeID_Static().
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 210 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, and GetComponentTypeID_Static().
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 329 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, GetComponentTypeID_Static(), and Olympe::ExecPinConnection::SourceNodeID.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 864 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, GetComponentTypeID_Static(), Olympe::OperatorRegistry::IsValidMathOperator(), Olympe::MathOp, and Olympe::TaskNodeDefinition::NodeID.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 657 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::AtomicTask, Olympe::Delay, GetComponentTypeID_Static(), Olympe::Literal, Olympe::MathOp, Olympe::TaskNodeDefinition::NodeID, Olympe::SubGraph, and Olympe::Warning.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 425 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::TaskNodeDefinition::DataPins, Olympe::Error, GetComponentTypeID_Static(), Olympe::Input, and Olympe::Output.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 732 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::EntryPoint, Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::Info, Olympe::MathOp, and Olympe::TaskNodeDefinition::NodeID.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 301 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::NodeID, and Olympe::SubGraph.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 891 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, GetComponentTypeID_Static(), Olympe::Literal, Olympe::SubGraph, Olympe::TaskNodeDefinition::SubGraphPath, and SYSTEM_LOG.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
staticprivate |
Definition at line 594 of file VSGraphVerifier.cpp.
References AddIssue(), Olympe::Error, GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::NodeID, Olympe::Switch, and Olympe::SwitchCaseDefinition::value.
Referenced by Verify().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Run all verification rules on the given graph.
| graph | The graph to verify (read-only). |
Definition at line 79 of file VSGraphVerifier.cpp.
References CheckAtomicTaskIDs(), CheckBBKeyCompatibility(), CheckBlackboardKeys(), CheckBlackboardTypes(), CheckConditionIDs(), CheckConditionParams(), CheckConditionStructure(), CheckDanglingNodes(), CheckDataPinTypes(), CheckEntryPoint(), CheckExecCycles(), CheckExecPinTypes(), CheckMathOperators(), CheckNodeParameterWarnings(), CheckPinDirections(), CheckReachability(), CheckSubGraphCircular(), CheckSubGraphPaths(), CheckSwitchNodes(), GetComponentTypeID_Static(), Olympe::VSVerificationResult::HasErrors(), Olympe::VSVerificationResult::HasWarnings(), Olympe::VSVerificationResult::issues, and SYSTEM_LOG.
Here is the call graph for this function: