// 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 "frc/geometry/struct/Transform3dStruct.h" namespace { constexpr size_t kTranslationOff = 0; constexpr size_t kRotationOff = kTranslationOff + wpi::Struct::kSize; } // namespace using StructType = wpi::Struct; frc::Transform3d StructType::Unpack(std::span data) { return frc::Transform3d{ wpi::UnpackStruct(data), wpi::UnpackStruct(data), }; } void StructType::Pack(std::span data, const frc::Transform3d& value) { wpi::PackStruct(data, value.Translation()); wpi::PackStruct(data, value.Rotation()); } void StructType::ForEachNested( std::invocable auto fn) { wpi::ForEachStructSchema(fn); wpi::ForEachStructSchema(fn); }