Add OBB::ClosestPoint Enclose Distance Contains
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <J3ML/Geometry/Common.h>
|
||||
#include <J3ML/Geometry/AABB.h>
|
||||
#include <J3ML/Geometry/AABB.hpp>
|
||||
#include <J3ML/Geometry/Polyhedron.h>
|
||||
|
||||
|
||||
@@ -108,5 +108,30 @@ namespace J3ML::Geometry {
|
||||
Matrix4x4 LocalToWorld() const;
|
||||
|
||||
Matrix4x4 WorldToLocal() const;
|
||||
|
||||
Vector3 ClosestPoint(const Vector3 &targetPoint) const;
|
||||
|
||||
/// Expands this OBB to enclose the given object. The axis directions of this OBB remain intact.
|
||||
/** This function operates in-place. This function does not necessarily result in an OBB that is an
|
||||
optimal fit for the previous OBB and the given point. */
|
||||
void Enclose(const Vector3 & vector3);
|
||||
|
||||
float Distance(const Vector3 &point) const;
|
||||
|
||||
|
||||
/// Tests if the given object is fully contained inside this OBB.
|
||||
/** This function returns true if the given object lies inside this OBB, and false otherwise.
|
||||
@note The comparison is performed using less-or-equal, so the faces of this OBB count as being inside,
|
||||
but due to float inaccuracies, this cannot generally be relied upon. */
|
||||
bool Contains(const Vector3& point) const;
|
||||
bool Contains(const LineSegment&) const;
|
||||
bool Contains(const AABB&) const;
|
||||
bool Contains(const OBB&) const;
|
||||
bool Contains(const Triangle&) const;
|
||||
bool Contains(const Polygon&) const;
|
||||
bool Contains(const Frustum&) const;
|
||||
bool Contains(const Polyhedron&) const;
|
||||
|
||||
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user