123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #pragma once
- #include <Mathematics/Vector2.h>
- #include <Mathematics/Vector3.h>
- namespace WwiseGTE
- {
- template <typename Real>
- class Ellipse3
- {
- public:
-
-
-
- Ellipse3()
- :
- center(Vector3<Real>::Zero()),
- normal(Vector3<Real>::Unit(2)),
- extent{ (Real)1, (Real)1 }
- {
- axis[0] = Vector3<Real>::Unit(0);
- axis[1] = Vector3<Real>::Unit(1);
- }
- Ellipse3(Vector3<Real> const& inCenter, Vector3<Real> const& inNormal,
- Vector3<Real> const inAxis[2], Vector2<Real> const& inExtent)
- :
- center(inCenter),
- normal(inNormal),
- extent(inExtent)
- {
- for (int i = 0; i < 2; ++i)
- {
- axis[i] = inAxis[i];
- }
- }
-
- Vector3<Real> center, normal;
- Vector3<Real> axis[2];
- Vector2<Real> extent;
- public:
-
- bool operator==(Ellipse3 const& ellipse) const
- {
- return center == ellipse.center
- && normal == ellipse.normal
- && axis[0] == ellipse.axis[0]
- && axis[1] == ellipse.axis[1]
- && extent == ellipse.extent;
- }
- bool operator!=(Ellipse3 const& ellipse) const
- {
- return !operator==(ellipse);
- }
- bool operator< (Ellipse3 const& ellipse) const
- {
- if (center < ellipse.center)
- {
- return true;
- }
- if (center > ellipse.center)
- {
- return false;
- }
- if (normal < ellipse.normal)
- {
- return true;
- }
- if (normal > ellipse.normal)
- {
- return false;
- }
- if (axis[0] < ellipse.axis[0])
- {
- return true;
- }
- if (axis[0] > ellipse.axis[0])
- {
- return false;
- }
- if (axis[1] < ellipse.axis[1])
- {
- return true;
- }
- if (axis[1] > ellipse.axis[1])
- {
- return false;
- }
- return extent < ellipse.extent;
- }
- bool operator<=(Ellipse3 const& ellipse) const
- {
- return !ellipse.operator<(*this);
- }
- bool operator> (Ellipse3 const& ellipse) const
- {
- return ellipse.operator<(*this);
- }
- bool operator>=(Ellipse3 const& ellipse) const
- {
- return !operator<(ellipse);
- }
- };
- }
|