From 32577f79b8e28e6a2f98bd754252a881f00f4b39 Mon Sep 17 00:00:00 2001 From: josh Date: Mon, 29 Jan 2024 14:50:00 -0500 Subject: [PATCH] Header implementations --- CMakeLists.txt | 5 ++++- include/J3ML/Geometry/AABB.h | 22 +++++++++++++++++----- include/J3ML/Geometry/OBB.h | 5 ++++- include/J3ML/Geometry/Polygon.h | 11 +++++------ include/J3ML/Geometry/Polyhedron.h | 8 ++++++++ src/J3ML/Geometry/Polygon.cpp | 5 +++++ src/J3ML/Geometry/Polyhedron.cpp | 6 ++++++ 7 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 include/J3ML/Geometry/Polyhedron.h create mode 100644 src/J3ML/Geometry/Polygon.cpp create mode 100644 src/J3ML/Geometry/Polyhedron.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index a157fe0..3bca7a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,7 +54,10 @@ add_library(J3ML SHARED ${J3ML_SRC} src/J3ML/Geometry/TriangleMesh.cpp src/J3ML/Geometry/QuadTree.cpp src/J3ML/Geometry/LineSegment.cpp - include/J3ML/Geometry/AABB2D.h) + include/J3ML/Geometry/AABB2D.h + src/J3ML/Geometry/Polygon.cpp + include/J3ML/Geometry/Polyhedron.h + src/J3ML/Geometry/Polyhedron.cpp) set_target_properties(J3ML PROPERTIES LINKER_LANGUAGE CXX) install(TARGETS ${PROJECT_NAME} DESTINATION lib/${PROJECT_NAME}) diff --git a/include/J3ML/Geometry/AABB.h b/include/J3ML/Geometry/AABB.h index 9958c13..9516243 100644 --- a/include/J3ML/Geometry/AABB.h +++ b/include/J3ML/Geometry/AABB.h @@ -1,15 +1,27 @@ #pragma once #include -#include "Plane.h" -#include "Sphere.h" -#include "OBB.h" -#include "LineSegment.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +// TODO: Fix circular include between AABB and OBB + -using namespace LinearAlgebra; namespace Geometry { + + using namespace LinearAlgebra; // A 3D axis-aligned bounding box // This data structure can be used to represent coarse bounds of objects, in situations where detailed triangle-level // computations can be avoided. In physics systems, bounding boxes are used as an efficient early-out test for geometry diff --git a/include/J3ML/Geometry/OBB.h b/include/J3ML/Geometry/OBB.h index 31b150d..572f3ec 100644 --- a/include/J3ML/Geometry/OBB.h +++ b/include/J3ML/Geometry/OBB.h @@ -1,6 +1,9 @@ #pragma once -#include "AABB.h" +#include +#include "Polyhedron.h" + + namespace Geometry { class OBB diff --git a/include/J3ML/Geometry/Polygon.h b/include/J3ML/Geometry/Polygon.h index fd70959..79fb8b1 100644 --- a/include/J3ML/Geometry/Polygon.h +++ b/include/J3ML/Geometry/Polygon.h @@ -1,8 +1,7 @@ -// -// Created by dawsh on 1/25/24. -// +#pragma once -#ifndef J3ML_POLYGON_H -#define J3ML_POLYGON_H +namespace Geometry { + class Polygon { -#endif //J3ML_POLYGON_H + }; +} \ No newline at end of file diff --git a/include/J3ML/Geometry/Polyhedron.h b/include/J3ML/Geometry/Polyhedron.h new file mode 100644 index 0000000..6922624 --- /dev/null +++ b/include/J3ML/Geometry/Polyhedron.h @@ -0,0 +1,8 @@ +#pragma once + +namespace Geometry +{ + class Polyhedron { + + }; +} \ No newline at end of file diff --git a/src/J3ML/Geometry/Polygon.cpp b/src/J3ML/Geometry/Polygon.cpp new file mode 100644 index 0000000..358a7e3 --- /dev/null +++ b/src/J3ML/Geometry/Polygon.cpp @@ -0,0 +1,5 @@ +#include + +namespace Geometry { + +} \ No newline at end of file diff --git a/src/J3ML/Geometry/Polyhedron.cpp b/src/J3ML/Geometry/Polyhedron.cpp new file mode 100644 index 0000000..1425e05 --- /dev/null +++ b/src/J3ML/Geometry/Polyhedron.cpp @@ -0,0 +1,6 @@ +#include + +namespace Geometry +{ + +} \ No newline at end of file