// Copyright (c) FIRST and other WPILib contributors. // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this project. #include "wpi/math/kinematics/struct/ChassisAccelerationsStruct.hpp" #include "wpi/math/kinematics/ChassisAccelerations.hpp" #include "wpi/util/struct/Struct.hpp" wpi::math::ChassisAccelerations wpi::util::Struct< wpi::math::ChassisAccelerations>::Unpack(std::span data) { constexpr size_t kAxOff = 0; constexpr size_t kAyOff = kAxOff + 8; constexpr size_t kAlphaOff = kAyOff + 8; return wpi::math::ChassisAccelerations{ units::meters_per_second_squared_t{ wpi::util::UnpackStruct(data)}, units::meters_per_second_squared_t{ wpi::util::UnpackStruct(data)}, units::radians_per_second_squared_t{ wpi::util::UnpackStruct(data)}, }; } void wpi::util::Struct::Pack( std::span data, const wpi::math::ChassisAccelerations& value) { constexpr size_t kAxOff = 0; constexpr size_t kAyOff = kAxOff + 8; constexpr size_t kAlphaOff = kAyOff + 8; wpi::util::PackStruct(data, value.ax.value()); wpi::util::PackStruct(data, value.ay.value()); wpi::util::PackStruct(data, value.alpha.value()); }