// 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/Twist3d.h" #include "geometry3d.pb.h" using namespace frc; google::protobuf::Message* wpi::Protobuf::New( google::protobuf::Arena* arena) { return google::protobuf::Arena::CreateMessage( arena); } frc::Twist3d wpi::Protobuf::Unpack( const google::protobuf::Message& msg) { auto m = static_cast(&msg); return frc::Twist3d{units::meter_t{m->dx()}, units::meter_t{m->dy()}, units::meter_t{m->dz()}, units::radian_t{m->rx()}, units::radian_t{m->ry()}, units::radian_t{m->rz()}}; } void wpi::Protobuf::Pack(google::protobuf::Message* msg, const frc::Twist3d& value) { auto m = static_cast(msg); m->set_dx(value.dx.value()); m->set_dy(value.dy.value()); m->set_dz(value.dz.value()); m->set_rx(value.rx.value()); m->set_ry(value.ry.value()); m->set_rz(value.rz.value()); }