// AUTO-GENERATED by CelerisLab compiler – DO NOT EDIT MANUALLY
// Layer: Case / Objects — packed obs (force + torque + sensor), float indices not bytes
// Derived from N_OBJS (config_objects.h) and DIM (config_grid.h); include via config.h.
#ifndef CELERIS_CONFIG_OBS_H
#define CELERIS_CONFIG_OBS_H

#if (N_OBJS) >= 1
#define OBS_N_SLOTS (N_OBJS)
#else
#define OBS_N_SLOTS 1
#endif

#define OBS_SLOT_STRIDE_FLOATS ((OBS_N_SLOTS) * (DIM))
#define OBS_FORCE_FLOATS       (OBS_SLOT_STRIDE_FLOATS)

#if DIM == 2
#define OBS_TORQUE_COMPONENTS  1
#else
#define OBS_TORQUE_COMPONENTS  (DIM)
#endif

#define OBS_TORQUE_FLOATS      ((OBS_N_SLOTS) * (OBS_TORQUE_COMPONENTS))
#define OBS_BODY_SLOT_FLOATS   (3 * (DIM))

#define OBS_FORCE0_FLOATS      0
#define OBS_TORQUE0_FLOATS     (OBS_FORCE0_FLOATS + OBS_FORCE_FLOATS)
#define OBS_SENSOR0_FLOATS     (OBS_TORQUE0_FLOATS + OBS_TORQUE_FLOATS)
#define OBS_TOTAL_FLOATS       (OBS_SENSOR0_FLOATS + OBS_SLOT_STRIDE_FLOATS)

#endif
