[wpimath] ChassisSpeeds: add equals method (#6414)

This commit is contained in:
Jade
2024-05-25 01:42:32 +08:00
committed by GitHub
parent ae655a3a71
commit 8834cb1de4
2 changed files with 32 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import edu.wpi.first.units.Time;
import edu.wpi.first.units.Velocity;
import edu.wpi.first.util.protobuf.ProtobufSerializable;
import edu.wpi.first.util.struct.StructSerializable;
import java.util.Objects;
/**
* Represents the speed of a robot chassis. Although this class contains similar members compared to
@@ -383,6 +384,28 @@ public class ChassisSpeeds implements ProtobufSerializable, StructSerializable {
vxMetersPerSecond / scalar, vyMetersPerSecond / scalar, omegaRadiansPerSecond / scalar);
}
@Override
public final int hashCode() {
return Objects.hash(vxMetersPerSecond, vyMetersPerSecond, omegaRadiansPerSecond);
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof ChassisSpeeds)) {
return false;
}
ChassisSpeeds c = (ChassisSpeeds) o;
return vxMetersPerSecond == c.vxMetersPerSecond
&& vyMetersPerSecond == c.vyMetersPerSecond
&& omegaRadiansPerSecond == c.omegaRadiansPerSecond;
}
@Override
public String toString() {
return String.format(

View File

@@ -267,6 +267,15 @@ struct WPILIB_DLLEXPORT ChassisSpeeds {
constexpr ChassisSpeeds operator/(double scalar) const {
return operator*(1.0 / scalar);
}
/**
* Compares the ChassisSpeeds with another ChassisSpeed.
*
* @param other The other ChassisSpeeds.
*
* @return The result of the comparison. Is true if they are the same.
*/
constexpr bool operator==(const ChassisSpeeds& other) const = default;
};
} // namespace frc