+size_t Shape::OutlineCount() const noexcept {
+ if (bounds) {
+ return bounds->OutlineCount();
+ } else {
+ return 0;
+ }
+}
+
+size_t Shape::OutlineIndexCount() const noexcept {
+ if (bounds) {
+ return bounds->OutlineIndexCount();
+ } else {
+ return 0;
+ }
+}
+
+void Shape::Outline(OutlineMesh::Buffer &out) const {
+ if (bounds) {
+ bounds->Outline(out);
+ }
+}
+
+bool Shape::Intersects(
+ const Ray &ray,
+ const glm::mat4 &M,
+ float &dist,
+ glm::vec3 &normal
+) const noexcept {
+ if (bounds) {
+ return bounds->Intersects(ray, M, dist, normal);
+ } else {
+ return false;
+ }
+}
+
+bool Shape::Intersects(
+ const glm::mat4 &M,
+ const AABB &box,
+ const glm::mat4 &box_M,
+ float &depth,
+ glm::vec3 &normal
+) const noexcept {
+ if (bounds) {
+ return bounds->Intersects(M, box, box_M, depth, normal);
+ } else {
+ return false;
+ }
+}
+