Fix issues
This commit is contained in:
parent
0a4f2751fe
commit
fe176f6a73
27
Angle.cpp
27
Angle.cpp
@ -88,22 +88,24 @@ template <> Angle2<float> Angle2<float>::Normalize(Angle2<float> angle) {
|
|||||||
return angleValue;
|
return angleValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <>
|
||||||
Angle2<T> Angle2<T>::Clamp(Angle2<T> angle, Angle2<T> min, Angle2<T> max) {
|
Angle2<float> Angle2<float>::Clamp(Angle2<float> angle, Angle2<float> min,
|
||||||
|
Angle2<float> max) {
|
||||||
float normalizedAngle = Normalize(angle);
|
float normalizedAngle = Normalize(angle);
|
||||||
float r = Float::Clamp(normalizedAngle, min, max);
|
float r = Float::Clamp(normalizedAngle, min, max);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
// template <typename T>
|
||||||
Angle2<T> Angle2<T>::Difference(Angle2<T> a, Angle2<T> b) {
|
// Angle2<T> Angle2<T>::Difference(Angle2<T> a, Angle2<T> b) {
|
||||||
float r = Normalize(b - a);
|
// Angle2<T> r = Normalize(b - a);
|
||||||
return r;
|
// return r;
|
||||||
}
|
// }
|
||||||
|
|
||||||
template <typename T>
|
template <>
|
||||||
Angle2<T> Angle2<T>::MoveTowards(Angle2<T> fromAngle, Angle2<T> toAngle,
|
Angle2<float> Angle2<float>::MoveTowards(Angle2<float> fromAngle,
|
||||||
Angle2<T> maxAngle) {
|
Angle2<float> toAngle,
|
||||||
|
Angle2<float> maxAngle) {
|
||||||
float d = toAngle - fromAngle;
|
float d = toAngle - fromAngle;
|
||||||
float sign = signbit(d) ? -1 : 1;
|
float sign = signbit(d) ? -1 : 1;
|
||||||
d = sign * Float::Clamp(fabs(d), 0, maxAngle);
|
d = sign * Float::Clamp(fabs(d), 0, maxAngle);
|
||||||
@ -140,8 +142,9 @@ Angle2<float> Angle2<float>::CosineRuleAngle(float a, float b, float c) {
|
|||||||
return gamma;
|
return gamma;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <>
|
||||||
Angle2<T> Angle2<T>::SineRuleAngle(float a, Angle2<T> beta, float b) {
|
Angle2<float> Angle2<float>::SineRuleAngle(float a, Angle2<float> beta,
|
||||||
|
float b) {
|
||||||
float alpha = asin(a * sin(beta * Angle::Deg2Rad) / b);
|
float alpha = asin(a * sin(beta * Angle::Deg2Rad) / b);
|
||||||
return alpha;
|
return alpha;
|
||||||
}
|
}
|
5
Angle.h
5
Angle.h
@ -16,7 +16,10 @@ public:
|
|||||||
|
|
||||||
static Angle2<T> Normalize(Angle2<T> angle);
|
static Angle2<T> Normalize(Angle2<T> angle);
|
||||||
static Angle2<T> Clamp(Angle2<T> angle, Angle2<T> min, Angle2<T> max);
|
static Angle2<T> Clamp(Angle2<T> angle, Angle2<T> min, Angle2<T> max);
|
||||||
static Angle2<T> Difference(Angle2<T> a, Angle2<T> b);
|
static Angle2<T> Difference(Angle2<T> a, Angle2<T> b) {
|
||||||
|
Angle2<T> r = Normalize(b - a);
|
||||||
|
return r;
|
||||||
|
};
|
||||||
static Angle2<T> MoveTowards(Angle2<T> fromAngle, Angle2<T> toAngle,
|
static Angle2<T> MoveTowards(Angle2<T> fromAngle, Angle2<T> toAngle,
|
||||||
Angle2<T> maxAngle);
|
Angle2<T> maxAngle);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user