Plane.hpp 924 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef CORE_PLANE_HPP
  2. #define CORE_PLANE_HPP
  3. #include "math/Vector.hpp"
  4. #include "utils/ArrayString.hpp"
  5. namespace Core {
  6. class Plane final {
  7. Vector3 abc;
  8. float d;
  9. public:
  10. Plane();
  11. Plane(const Vector3& a, const Vector3& b, const Vector3& c);
  12. float getSignedDistance(const Vector3& v) const;
  13. template<typename String>
  14. check_return Error toString(String& s) const {
  15. CORE_RETURN_ERROR(s.append("("));
  16. CORE_RETURN_ERROR(s.append(abc[0]));
  17. CORE_RETURN_ERROR(s.append(" x + "));
  18. CORE_RETURN_ERROR(s.append(abc[1]));
  19. CORE_RETURN_ERROR(s.append(" y + "));
  20. CORE_RETURN_ERROR(s.append(abc[2]));
  21. CORE_RETURN_ERROR(s.append(" z + "));
  22. CORE_RETURN_ERROR(s.append(d));
  23. CORE_RETURN_ERROR(s.append(')'));
  24. return Error::NONE;
  25. }
  26. };
  27. }
  28. #endif