summaryrefslogtreecommitdiff
path: root/thirdparty/thekla_atlas/nvmath/Plane.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/thekla_atlas/nvmath/Plane.h')
-rw-r--r--thirdparty/thekla_atlas/nvmath/Plane.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/thirdparty/thekla_atlas/nvmath/Plane.h b/thirdparty/thekla_atlas/nvmath/Plane.h
new file mode 100644
index 0000000000..dc468b28e2
--- /dev/null
+++ b/thirdparty/thekla_atlas/nvmath/Plane.h
@@ -0,0 +1,42 @@
+// This code is in the public domain -- Ignacio Castaņo <castano@gmail.com>
+
+#pragma once
+#ifndef NV_MATH_PLANE_H
+#define NV_MATH_PLANE_H
+
+#include "nvmath.h"
+#include "Vector.h"
+
+namespace nv
+{
+ class Matrix;
+
+ class NVMATH_CLASS Plane
+ {
+ public:
+ Plane();
+ Plane(float x, float y, float z, float w);
+ Plane(const Vector4 & v);
+ Plane(const Vector3 & v, float d);
+ Plane(const Vector3 & normal, const Vector3 & point);
+ Plane(const Vector3 & v0, const Vector3 & v1, const Vector3 & v2);
+
+ const Plane & operator=(const Plane & v);
+
+ Vector3 vector() const;
+ float offset() const;
+ Vector3 normal() const;
+
+ void operator*=(float s);
+
+ Vector4 v;
+ };
+
+ Plane transformPlane(const Matrix &, const Plane &);
+
+ Vector3 planeIntersection(const Plane & a, const Plane & b, const Plane & c);
+
+
+} // nv namespace
+
+#endif // NV_MATH_PLANE_H