// 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/spline/struct/CubicHermiteSplineStruct.hpp" namespace { constexpr size_t kXInitialOff = 0; constexpr size_t kXFinalOff = kXInitialOff + 2 * 8; constexpr size_t kYInitialOff = kXFinalOff + 2 * 8; constexpr size_t kYFinalOff = kYInitialOff + 2 * 8; } // namespace wpi::math::CubicHermiteSpline wpi::util::Struct::Unpack( std::span data) { return wpi::math::CubicHermiteSpline{ wpi::util::UnpackStructArray(data), wpi::util::UnpackStructArray(data), wpi::util::UnpackStructArray(data), wpi::util::UnpackStructArray(data)}; } void wpi::util::Struct::Pack( std::span data, const wpi::math::CubicHermiteSpline& value) { wpi::util::PackStructArray(data, value.GetInitialControlVector().x); wpi::util::PackStructArray(data, value.GetFinalControlVector().x); wpi::util::PackStructArray(data, value.GetInitialControlVector().y); wpi::util::PackStructArray(data, value.GetFinalControlVector().y); }