23 private:
double m_radians;
25 private:
Angle (
double radians);
36 static Angle FromAtan2 (
double sine,
double cosine);
58 double Radians ()
const;
61 double Degrees ()
const;
64 static bool IsFullCircle (
double radians);
67 static bool IsNearZero (
double radians);
69 static bool IsNearZeroAllowPeriodShift (
double radians);
72 static bool NearlyEqual (
double radiansA,
double radiansB);
74 static bool NearlyEqualAllowPeriodShift (
double radiansA,
double radiansB);
77 static double SmallAngle ();
80 static double TinyAngle ();
84 static double MediumAngle ();
89 static double TwoPi ();
91 static double PiOver2 ();
94 static double DegreesToRadians (
double degrees);
96 static double RadiansToDegrees (
double radians);
99 static double CircleFractionToRadians (
double fraction);
103 static double AdjustToSweep (
double theta,
double thetaStart,
double sweep);
106 static double NormalizeToSweep (
double theta,
double thetaStart,
double sweep);
122 static double NormalizeToSweep (
double theta,
double thetaStart,
double sweep,
bool extend0,
bool extend1);
125 static bool InExactSweep (
double theta,
double thetaStart,
double sweep);
128 static bool InSweepAllowPeriodShift (
double theta,
double thetaStart,
double sweep);
131 static double PeriodShift (
double theta,
double periods);
134 static double ReverseComplement (
double radians);
141 static double ForwardComplement (
double radians);
144 static void HalfAngleFuctions (
double &cosA,
double &sinA,
double rCos2A,
double rSin2A);
148 static void Rotate90UntilSmallAngle (
double &x1,
double &y1,
double x0,
double y0);
160 static void TrigCombinationRangeInSweep
162 double constCoff,
double cosCoff,
double sinCoff,
163 double thetaA,
double sweep,
164 double &thetaMin,
double &fMin,
165 double &thetaMax,
double &fMax
176 static void TrigCombinationRange
178 double constCoff,
double cosCoff,
double sinCoff,
179 double &thetaMin,
double &fMin,
180 double &thetaMax,
double &fMax
188 static double EvaluateTrigCombination (
double constCoff,
double cosCoff,
double sinCoff,
double theta);
190 static double Atan2 (
double numerator,
double denominator);
192 static double Acos (
double arg);
194 static double Asin (
double arg);
199 static int Cyclic2dAxis (
int i);
201 static int Cyclic3dAxis (
int i);
206 static void Cyclic3dAxes (
int &i0,
int &i1,
int &i2,
int i);
214 static void ApplyGivensWeights
230 static void ConstructGivensWeights
242 static void TrigIntegrals (
double theta0,
double theta1,
RotMatrixR integrals);
295 double Degrees ()
const ;
297 double Radians ()
const;
334 static YawPitchRollAngles FromRadians (
double yawRadians,
double pitchRadians,
double rollRadians);
337 static YawPitchRollAngles FromDegrees (
double yawDegrees,
double pitchDegrees,
double rollDegrees);
342 RotMatrix ToRotMatrix ()
const;
344 Transform ToTransform (
DPoint3dCR origin)
const;
347 bool IsIdentity ()
const;
349 double MaxAbsRadians ()
const;
355 double MaxAbsDegrees ()
const;
struct RotMatrix & RotMatrixR
Definition: msgeomstructs_typedefs.h:135
#define END_BENTLEY_GEOMETRY_NAMESPACE
Definition: Bentley.r.h:30
bool operator<=(const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
Definition: basic_string.h:1376
struct YawPitchRollAngles & YawPitchRollAnglesR
Definition: msgeomstructs_typedefs.h:149
struct RotMatrix const & RotMatrixCR
Definition: msgeomstructs_typedefs.h:135
Compact (3 angles in degreses) description of rigid body rotation.
Definition: Angle.h:316
Angle object.
Definition: Angle.h:252
struct Angle const & AngleCR
Definition: msgeomstructs_typedefs.h:148
bool operator<(const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
Definition: basic_string.h:1326
DPoint3d operator-(DPoint3d const &point, DVec3d const &vector)
operator overload for sum of a point minus a vector
bool operator>(const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
Definition: basic_string.h:1366
basic_string< _CharT, _Traits, _Allocator > operator+(const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
Definition: basic_string.h:1230
Angle dimensional constraint which allows it to have any value between 0 and 2pi radians.
DVec3d operator*(Transform const &transform, DVec3d const &vector)
operator overload for multiplication of a transform and a vector li>The vector appears on the left as...
bool operator!=(const BentleyAllocator< _Ty > &, const BentleyAllocator< _Other > &)
Definition: BentleyAllocator.h:152
static YawPitchRollAngles FromDegrees(double yawDegrees, double pitchDegrees, double rollDegrees)
constructor from all angles in degrees
bool operator>=(const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
Definition: basic_string.h:1386
The Angle class has static methods for typical angle computations.
Definition: Angle.h:14
#define BEGIN_BENTLEY_GEOMETRY_NAMESPACE
Definition: Bentley.r.h:29
struct DPoint3d const & DPoint3dCR
Definition: msgeomstructs_typedefs.h:79
static YawPitchRollAngles FromRadians(double yawRadians, double pitchRadians, double rollRadians)
constructor from all angles in radians
bool operator==(const BentleyAllocator< _Ty > &, const BentleyAllocator< _Other > &)
Definition: BentleyAllocator.h:146