001// Copyright (c) FIRST and other WPILib contributors. 002// Open Source Software; you can modify and/or share it under the terms of 003// the WPILib BSD license file in the root directory of this project. 004 005package org.wpilib.math.kinematics.proto; 006 007import org.wpilib.math.geometry.Rotation2d; 008import org.wpilib.math.kinematics.SwerveModuleAcceleration; 009import org.wpilib.math.proto.ProtobufSwerveModuleAcceleration; 010import org.wpilib.util.protobuf.Protobuf; 011import us.hebi.quickbuf.Descriptors.Descriptor; 012 013public class SwerveModuleAccelerationProto 014 implements Protobuf<SwerveModuleAcceleration, ProtobufSwerveModuleAcceleration> { 015 @Override 016 public Class<SwerveModuleAcceleration> getTypeClass() { 017 return SwerveModuleAcceleration.class; 018 } 019 020 @Override 021 public Descriptor getDescriptor() { 022 return ProtobufSwerveModuleAcceleration.getDescriptor(); 023 } 024 025 @Override 026 public ProtobufSwerveModuleAcceleration createMessage() { 027 return ProtobufSwerveModuleAcceleration.newInstance(); 028 } 029 030 @Override 031 public SwerveModuleAcceleration unpack(ProtobufSwerveModuleAcceleration msg) { 032 return new SwerveModuleAcceleration( 033 msg.getAcceleration(), Rotation2d.proto.unpack(msg.getAngle())); 034 } 035 036 @Override 037 public void pack(ProtobufSwerveModuleAcceleration msg, SwerveModuleAcceleration value) { 038 msg.setAcceleration(value.acceleration); 039 Rotation2d.proto.pack(msg.getMutableAngle(), value.angle); 040 } 041}