Giga Geometry Implementation
This commit is contained in:
@@ -11,6 +11,10 @@ namespace J3ML::Geometry {
|
||||
{
|
||||
public:
|
||||
std::vector<Vector3> vertices;
|
||||
|
||||
/// Quickly returns an arbitrary point inside this AABB. Used in GJK intersection test.
|
||||
Vector3 AnyPointFast() const { return !vertices.empty() ? vertices[0] : Vector3::NaN; }
|
||||
|
||||
AABB MinimalEnclosingAABB() const;
|
||||
int NumVertices() const;
|
||||
Vector3 Vertex(int vertexIndex) const;
|
||||
@@ -32,9 +36,6 @@ namespace J3ML::Geometry {
|
||||
bool Intersects(const Frustum &frustum) const;
|
||||
bool Intersects(const Polyhedron &polyhedron) const;
|
||||
bool Intersects(const Sphere &sphere) const;
|
||||
|
||||
protected:
|
||||
|
||||
std::vector<Triangle> Triangulate() const;
|
||||
/// Tests if this polygon is planar.
|
||||
/** A polygon is planar if all its vertices lie on the same plane.
|
||||
@@ -56,8 +57,31 @@ namespace J3ML::Geometry {
|
||||
|
||||
bool Contains(const Polygon &worldSpacePolygon, float polygonThickness) const;
|
||||
|
||||
bool Contains(const Vector3 &worldSpacePoint, float polygonThicknessSq) const;
|
||||
bool Contains(const Vector3 &worldSpacePoint, float polygonThicknessSq = 1e-2f) const;
|
||||
|
||||
bool Contains(const LineSegment &worldSpaceLineSegment, float polygonThickness) const;
|
||||
|
||||
bool Contains(const Triangle &worldSpaceTriangle, float polygonThickness) const;
|
||||
|
||||
LineSegment Edge(int i) const;
|
||||
|
||||
bool ConvexIntersects(const AABB &aabb) const;
|
||||
|
||||
bool ConvexIntersects(const OBB &obb) const;
|
||||
|
||||
bool ConvexIntersects(const Frustum &frustum) const;
|
||||
|
||||
Vector3 MapFrom2D(const Vector2 &point) const;
|
||||
|
||||
bool Intersects2D(const LineSegment &segment) const;
|
||||
|
||||
Vector3 ClosestPoint(const LineSegment &lineSegment) const;
|
||||
|
||||
Vector3 ClosestPoint(const LineSegment &lineSegment, Vector3 *lineSegmentPt) const;
|
||||
|
||||
Vector3 ClosestPoint(const Vector3 &point) const;
|
||||
protected:
|
||||
|
||||
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user