Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
icarus::ComponentType Concept Reference

Concept for types that can serve as Icarus components. More...

#include <CoreTypes.hpp>

Concept definition

template<typename T, typename Scalar>
requires(T &c, Backplane<Scalar> &bp, const ComponentConfig &cfg, Scalar t, Scalar dt) {
{ c.Name() } -> std::convertible_to<std::string>;
{ c.Provision(bp, cfg) } -> std::same_as<void>;
{ c.Stage(bp, cfg) } -> std::same_as<void>;
{ c.Step(t, dt) } -> std::same_as<void>;
}
Component-facing facade for signal registration and resolution.
Definition Backplane.hpp:32
Concept for types that can serve as Icarus components.
Definition CoreTypes.hpp:189
Configuration container for components.
Definition ComponentConfig.hpp:37

Detailed Description

Concept for types that can serve as Icarus components.

A valid component must implement the core lifecycle methods:

  • Provision(): Heavy setup, register signals
  • Stage(): Wire inputs, apply ICs
  • Step(): Hot path, compute derivatives