|
| void | set_current_component (const std::string &name) |
| | Set the current component context for registration.
|
| void | clear_current_component () |
| | Clear the current component context.
|
| const std::string & | current_component () const |
| | Get the current component name.
|
| template<typename T> |
| void | register_output (const std::string &name, T *data_ptr, const std::string &unit="", const std::string &description="") |
| | Register an output signal with pointer binding.
|
| template<typename S> |
| void | register_output_vec3 (const std::string &name, Vec3< S > *data_ptr, const std::string &unit="", const std::string &description="") |
| | Register a Vec3 output signal as three scalar components.
|
| template<typename S> |
| void | register_output_quat (const std::string &name, Vec4< S > *data_ptr, const std::string &unit="", const std::string &description="") |
| | Register a Vec4/Quaternion output signal as four scalar components.
|
| template<typename T> |
| void | register_state (const std::string &name, T *value, T *derivative, const std::string &unit="", const std::string &description="") |
| | Register a scalar state with its derivative.
|
| template<typename S> |
| void | register_state_vec3 (const std::string &name, Vec3< S > *value, Vec3< S > *derivative, const std::string &unit="", const std::string &description="") |
| | Register a Vec3 state with its derivative.
|
| template<typename S> |
| void | register_state_quat (const std::string &name, Vec4< S > *value, Vec4< S > *derivative, const std::string &unit="", const std::string &description="") |
| | Register a quaternion state with its derivative.
|
| const auto & | get_state_pairs () const |
| | Get all integrable state pairs.
|
| std::vector< const SignalDescriptor * > | get_integrable_signals () const |
| | Get all integrable signal descriptors.
|
| template<typename T> |
| SignalHandle< T > | resolve (const std::string &name) |
| | Resolve a signal by name and return a type-safe handle.
|
| template<typename T> |
| SignalHandle< const T > | resolve_const (const std::string &name) const |
| | Resolve a signal as const (for read-only access).
|
| template<typename S> |
| Vec3Handle< S > | resolve_vec3 (const std::string &name) |
| | Resolve a Vec3 signal as a Vec3Handle.
|
| template<typename S> |
| QuatHandle< S > | resolve_quat (const std::string &name) |
| | Resolve a quaternion signal as a QuatHandle.
|
| SignalIndex | RegisterSignal (const SignalDescriptor &descriptor) |
| | Register a new signal output (legacy API).
|
| SignalIndex | Resolve (const std::string &name) const |
| | Resolve a signal by name (legacy API).
|
| bool | HasSignal (const std::string &name) const |
| | Check if a signal exists.
|
| const Scalar & | Get (SignalIndex index) const |
| | Get signal value by index (hot path, legacy).
|
| void | Set (SignalIndex index, const Scalar &value) |
| | Set signal value by index (hot path, legacy).
|
| const Scalar & | GetByName (const std::string &name) const |
| | Get signal value by name (slow path, for debugging).
|
| void | SetByName (const std::string &name, const Scalar &value) |
| | Set signal value by name (slow path, for initialization).
|
| const std::deque< SignalDescriptor > & | GetDescriptors () const |
| | Get all signal descriptors.
|
| std::size_t | Size () const |
| | Get number of registered signals.
|
| std::vector< const SignalDescriptor * > | query (const std::string &pattern) const |
| | Query signals matching a pattern.
|
| const SignalDescriptor * | get_descriptor (const std::string &name) const |
| | Get descriptor by name.
|
| template<typename T> |
| void | register_input (const std::string &name, InputHandle< T > *handle, const std::string &units="", const std::string &description="") |
| | Register an input port.
|
| void | register_param (const std::string &name, Scalar *storage, Scalar initial_value, const std::string &units="", const std::string &description="") |
| | Register a parameter.
|
| void | register_config (const std::string &name, int *storage, int initial_value, const std::string &description="") |
| | Register an int config value.
|
| void | register_config (const std::string &name, bool *storage, bool initial_value, const std::string &description="") |
| | Register a bool config value.
|
| template<typename T> |
| void | wire_input (const std::string &input_name, const std::string &source_name) |
| | Wire an input to a source signal.
|
| std::vector< std::string > | get_unwired_inputs () const |
| | Get list of unwired input names.
|
| void | validate_wiring () const |
| | Validate all inputs are wired.
|
| std::vector< SignalDescriptor > | get_outputs () const |
| | Get all output signal descriptors.
|
| std::vector< SignalDescriptor > | get_outputs_for_component (const std::string &component_name) const |
| | Get output signals for a specific component.
|
| std::vector< SignalDescriptor > | get_inputs_for_component (const std::string &component_name) const |
| | Get inputs for a specific component.
|
| std::vector< SignalDescriptor > | get_params_for_component (const std::string &component_name) const |
| | Get parameters for a specific component.
|
| std::vector< SignalDescriptor > | get_config_for_component (const std::string &component_name) const |
| | Get config for a specific component.
|
| std::vector< SignalDescriptor > | get_inputs () const |
| | Get all input info.
|
| std::vector< SignalDescriptor > | get_params () const |
| | Get all parameter info.
|
| std::vector< SignalDescriptor > | get_config () const |
| | Get all config info.
|
| bool | has_input (const std::string &name) const |
| | Check if an input exists.
|
| bool | has_param (const std::string &name) const |
| | Check if a parameter exists.
|
| bool | has_config (const std::string &name) const |
| | Check if a config exists.
|
| std::vector< std::string > | get_all_signal_names () const |
| | Get all output signal names.
|
| std::vector< std::string > | get_all_input_names () const |
| | Get all input signal names.
|
| std::vector< std::string > | get_all_output_names () const |
| | Get all output signal names.
|
| bool | HasOutput (const std::string &name) const |
| | Check if an output signal exists (PascalCase alias).
|
| bool | HasInput (const std::string &name) const |
| | Check if an input port exists (PascalCase alias).
|
| std::vector< std::string > | GetAllInputPaths () const |
| | Get all declared input paths (for SignalRouter validation).
|
| std::vector< std::string > | GetAllOutputPaths () const |
| | Get all declared output paths (for SignalRouter validation).
|
| template<typename T> |
| void | wire_input_with_gain (const std::string &input_name, const std::string &source_name, double gain=1.0) |
| | Wire an input to a source signal with gain factor.
|
| void | wire_input_with_gain (const std::string &input_name, const std::string &source_name, double gain=1.0) |
| | Wire an input with gain (type-erased version).
|
template<typename Scalar>
class icarus::SignalRegistry< Scalar >
Central registry for all simulation signals.
The SignalRegistry manages the signal backplane, providing:
- Signal registration during Provision (with pointer binding)
- Type-safe signal resolution during Stage (returning SignalHandle)
- Fast indexed access during Step (hot path)
- Vec3/Mat3 expansion for vector signals
- Owner tracking for collision detection
- Template Parameters
-
| Scalar | The numeric type (double or casadi::MX) |