mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-26 01:51:41 +00:00
[wpilib] Implement Trajectory.equals() (#2517)
This commit is contained in:
@@ -151,3 +151,11 @@ void frc::from_json(const wpi::json& json, Trajectory::State& state) {
|
||||
units::meters_per_second_squared_t{json.at("acceleration").get<double>()};
|
||||
state.curvature = units::curvature_t{json.at("curvature").get<double>()};
|
||||
}
|
||||
|
||||
bool Trajectory::operator==(const Trajectory& other) const {
|
||||
return m_states == other.States();
|
||||
}
|
||||
|
||||
bool Trajectory::operator!=(const Trajectory& other) const {
|
||||
return !operator==(other);
|
||||
}
|
||||
|
||||
@@ -127,6 +127,22 @@ class Trajectory {
|
||||
*/
|
||||
Pose2d InitialPose() const { return Sample(0_s).pose; }
|
||||
|
||||
/**
|
||||
* Checks equality between this Trajectory and another object.
|
||||
*
|
||||
* @param other The other object.
|
||||
* @return Whether the two objects are equal.
|
||||
*/
|
||||
bool operator==(const Trajectory& other) const;
|
||||
|
||||
/**
|
||||
* Checks inequality between this Trajectory and another object.
|
||||
*
|
||||
* @param other The other object.
|
||||
* @return Whether the two objects are inequal.
|
||||
*/
|
||||
bool operator!=(const Trajectory& other) const;
|
||||
|
||||
private:
|
||||
std::vector<State> m_states;
|
||||
units::second_t m_totalTime = 0_s;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2019 FIRST. All Rights Reserved. */
|
||||
/* Copyright (c) 2019-2020 FIRST. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
@@ -328,4 +328,14 @@ public class Trajectory {
|
||||
String stateList = m_states.stream().map(State::toString).collect(Collectors.joining(", \n"));
|
||||
return String.format("Trajectory - Seconds: %.2f, States:\n%s", m_totalTimeSeconds, stateList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return m_states.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof Trajectory && m_states.equals(((Trajectory) obj).getStates());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user