diff options
Diffstat (limited to 'thirdparty/thekla_atlas/nvmath/Box.h')
-rw-r--r-- | thirdparty/thekla_atlas/nvmath/Box.h | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/thirdparty/thekla_atlas/nvmath/Box.h b/thirdparty/thekla_atlas/nvmath/Box.h deleted file mode 100644 index 19b5f2a3a5..0000000000 --- a/thirdparty/thekla_atlas/nvmath/Box.h +++ /dev/null @@ -1,103 +0,0 @@ -// This code is in the public domain -- castanyo@yahoo.es - -#pragma once -#ifndef NV_MATH_BOX_H -#define NV_MATH_BOX_H - -#include "Vector.h" - -#include <float.h> // FLT_MAX - -namespace nv -{ - class Vector; - class Stream; - class Sphere; - - // Axis Aligned Bounding Box. - class Box - { - public: - - inline Box() {} - inline Box(const Box & b) : minCorner(b.minCorner), maxCorner(b.maxCorner) {} - inline Box(const Vector3 & mins, const Vector3 & maxs) : minCorner(mins), maxCorner(maxs) {} - - Box & operator=(const Box & b); - - operator const float * () const { return reinterpret_cast<const float *>(this); } - - // Clear the bounds. - void clearBounds(); - - // min < max - bool isValid() const; - - // Build a cube centered on center and with edge = 2*dist - void cube(const Vector3 & center, float dist); - - // Build a box, given center and extents. - void setCenterExtents(const Vector3 & center, const Vector3 & extents); - - // Get box center. - Vector3 center() const; - - // Return extents of the box. - Vector3 extents() const; - - // Return extents of the box. - float extents(uint axis) const; - - // Add a point to this box. - void addPointToBounds(const Vector3 & p); - - // Add a box to this box. - void addBoxToBounds(const Box & b); - - // Add sphere to this box. - void addSphereToBounds(const Vector3 & p, float r); - - // Translate box. - void translate(const Vector3 & v); - - // Scale the box. - void scale(float s); - - // Expand the box by a fixed amount. - void expand(float r); - - // Get the area of the box. - float area() const; - - // Get the volume of the box. - float volume() const; - - // Return true if the box contains the given point. - bool contains(const Vector3 & p) const; - - // Split the given box in 8 octants and assign the ith one to this box. - void setOctant(const Box & box, const Vector3 & center, int i); - - - // Clip the given segment against this box. - bool clipSegment(const Vector3 & origin, const Vector3 & dir, float * t_near, float * t_far) const; - - - friend Stream & operator<< (Stream & s, Box & box); - - const Vector3 & corner(int i) const { return (&minCorner)[i]; } - - Vector3 minCorner; - Vector3 maxCorner; - }; - - float distanceSquared(const Box &box, const Vector3 &point); - bool overlap(const Box &box, const Sphere &sphere); - - // p is ray origin, id is inverse ray direction. - bool intersect(const Box & box, const Vector3 & p, const Vector3 & id, float * t); - -} // nv namespace - - -#endif // NV_MATH_BOX_H |