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.struct; 006 007import java.nio.ByteBuffer; 008import org.wpilib.math.kinematics.ChassisVelocities; 009import org.wpilib.util.struct.Struct; 010 011public class ChassisVelocitiesStruct implements Struct<ChassisVelocities> { 012 @Override 013 public Class<ChassisVelocities> getTypeClass() { 014 return ChassisVelocities.class; 015 } 016 017 @Override 018 public String getTypeName() { 019 return "ChassisVelocities"; 020 } 021 022 @Override 023 public int getSize() { 024 return kSizeDouble * 3; 025 } 026 027 @Override 028 public String getSchema() { 029 return "double vx;double vy;double omega"; 030 } 031 032 @Override 033 public ChassisVelocities unpack(ByteBuffer bb) { 034 double vx = bb.getDouble(); 035 double vy = bb.getDouble(); 036 double omega = bb.getDouble(); 037 return new ChassisVelocities(vx, vy, omega); 038 } 039 040 @Override 041 public void pack(ByteBuffer bb, ChassisVelocities value) { 042 bb.putDouble(value.vx); 043 bb.putDouble(value.vy); 044 bb.putDouble(value.omega); 045 } 046}