123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #pragma once
- #include <Mathematics/Vector.h>
- namespace WwiseGTE
- {
- template <int N, typename Real>
- class Halfspace
- {
- public:
-
-
-
- Halfspace()
- :
- constant((Real)0)
- {
- normal.MakeUnit(N - 1);
- }
-
- Halfspace(Vector<N, Real> const& inNormal, Real inConstant)
- :
- normal(inNormal),
- constant(inConstant)
- {
- }
-
- Vector<N, Real> normal;
- Real constant;
- public:
-
- bool operator==(Halfspace const& halfspace) const
- {
- return normal == halfspace.normal && constant == halfspace.constant;
- }
- bool operator!=(Halfspace const& halfspace) const
- {
- return !operator==(halfspace);
- }
- bool operator< (Halfspace const& halfspace) const
- {
- if (normal < halfspace.normal)
- {
- return true;
- }
- if (normal > halfspace.normal)
- {
- return false;
- }
- return constant < halfspace.constant;
- }
- bool operator<=(Halfspace const& halfspace) const
- {
- return !halfspace.operator<(*this);
- }
- bool operator> (Halfspace const& halfspace) const
- {
- return halfspace.operator<(*this);
- }
- bool operator>=(Halfspace const& halfspace) const
- {
- return !operator<(halfspace);
- }
- };
-
- template <typename Real>
- using Halfspace3 = Halfspace<3, Real>;
- }
|