Skip to content

Commit

Permalink
[wpimath] Report error when x and y components of Rotation2d are both…
Browse files Browse the repository at this point in the history
… zero (#6767)

Fixes #6766.
  • Loading branch information
calcmogul committed Jul 8, 2024
1 parent 3d22eec commit 7f6ba54
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import edu.wpi.first.math.MathSharedStore;
import edu.wpi.first.math.MathUtil;
import edu.wpi.first.math.geometry.proto.Rotation2dProto;
import edu.wpi.first.math.geometry.struct.Rotation2dStruct;
Expand Down Expand Up @@ -118,6 +119,8 @@ public Rotation2d(double x, double y) {
} else {
m_sin = 0.0;
m_cos = 1.0;
MathSharedStore.reportError(
"x and y components of Rotation2d are zero\n", Thread.currentThread().getStackTrace());
}
m_value = Math.atan2(m_sin, m_cos);
}
Expand Down
10 changes: 10 additions & 0 deletions wpimath/src/main/native/include/frc/geometry/Rotation2d.inc
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@

#pragma once

#include <string>
#include <type_traits>

#include <gcem.hpp>
#include <wpi/StackTrace.h>

#include "frc/geometry/Rotation2d.h"
#include "units/angle.h"
#include "wpimath/MathShared.h"

namespace frc {

Expand All @@ -24,6 +29,11 @@ constexpr Rotation2d::Rotation2d(double x, double y) {
} else {
m_sin = 0.0;
m_cos = 1.0;
if (!std::is_constant_evaluated()) {
wpi::math::MathSharedStore::ReportError(
"x and y components of Rotation2d are zero\n{}",
wpi::GetStackTrace(1));
}
}
m_value = units::radian_t{gcem::atan2(m_sin, m_cos)};
}
Expand Down

0 comments on commit 7f6ba54

Please sign in to comment.