aboutsummaryrefslogtreecommitdiff
path: root/bench/tests/BenchPlane.c
diff options
context:
space:
mode:
Diffstat (limited to 'bench/tests/BenchPlane.c')
-rw-r--r--bench/tests/BenchPlane.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/bench/tests/BenchPlane.c b/bench/tests/BenchPlane.c
new file mode 100644
index 0000000..4c5a115
--- /dev/null
+++ b/bench/tests/BenchPlane.c
@@ -0,0 +1,57 @@
+#include "BH/Bench.h"
+#include "BH/Math/Plane.h"
+
+
+static float pointA[3] = {1.0f, 2.0f, 3.0f};
+static float pointB[3] = {4.0f, 6.0f, 2.0f};
+static float pointC[3] = {2.0f, 1.0f, -1.0f};
+static float testPoint[3] = {5.0f, -3.0f, 7.0f};
+static float planeNormal[4] = {1.0f, -2.0f, 1.0f, 4.0f};
+static float outPlane[4];
+static float outPoint[3];
+
+
+BH_BENCH_TEST(FromPoints)
+{
+ while (BH_BenchIter(state))
+ {
+ int result;
+ result = BH_PlaneFromPoints(pointA, pointB, pointC, outPlane);
+ BH_BenchDoNotOptimize(result);
+ BH_BenchDoNotOptimize(outPlane);
+ }
+}
+
+
+BH_BENCH_TEST(Distance)
+{
+ while (BH_BenchIter(state))
+ {
+ float result;
+ result = BH_PlaneDistance(planeNormal, testPoint);
+ BH_BenchDoNotOptimize(result);
+ }
+}
+
+
+BH_BENCH_TEST(ClosestPoint)
+{
+ while (BH_BenchIter(state))
+ {
+ BH_PlaneClosestPoint(planeNormal, testPoint, outPoint);
+ BH_BenchDoNotOptimize(outPoint);
+ }
+}
+
+
+int main(int argc, char **argv)
+{
+ BH_UNUSED(argc);
+ BH_UNUSED(argv);
+
+ BH_BENCH_ADD(FromPoints);
+ BH_BENCH_ADD(Distance);
+ BH_BENCH_ADD(ClosestPoint);
+
+ return BH_BenchRun();
+}