// 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/spline/proto/QuinticHermiteSplineProto.h" #include #include "spline.pb.h" google::protobuf::Message* wpi::Protobuf::New( google::protobuf::Arena* arena) { return wpi::CreateMessage(arena); } frc::QuinticHermiteSpline wpi::Protobuf::Unpack( const google::protobuf::Message& msg) { auto m = static_cast(&msg); return frc::QuinticHermiteSpline{ wpi::UnpackProtobufArray(m->x_initial()), wpi::UnpackProtobufArray(m->x_final()), wpi::UnpackProtobufArray(m->y_initial()), wpi::UnpackProtobufArray(m->y_final())}; } void wpi::Protobuf::Pack( google::protobuf::Message* msg, const frc::QuinticHermiteSpline& value) { auto m = static_cast(msg); wpi::PackProtobufArray(m->mutable_x_initial(), value.GetInitialControlVector().x); wpi::PackProtobufArray(m->mutable_x_final(), value.GetFinalControlVector().x); wpi::PackProtobufArray(m->mutable_y_initial(), value.GetInitialControlVector().y); wpi::PackProtobufArray(m->mutable_y_final(), value.GetFinalControlVector().y); }