Tweeker Commit (Have Fun Reviewing This)
This commit is contained in:
@@ -40,7 +40,7 @@ namespace J3ML::Geometry
|
||||
|
||||
Vector3 Vertex(int vertexIndex) const;
|
||||
|
||||
bool Intersects(const LineSegment&) const;
|
||||
|
||||
|
||||
bool Contains(const Vector3&) const;
|
||||
bool Contains(const LineSegment&) const;
|
||||
@@ -55,6 +55,8 @@ namespace J3ML::Geometry
|
||||
bool ContainsConvex(const LineSegment&) const;
|
||||
bool ContainsConvex(const Triangle&) const;
|
||||
|
||||
bool Intersects(const Line&) const;
|
||||
bool Intersects(const LineSegment&) const;
|
||||
bool Intersects(const Ray&) const;
|
||||
bool Intersects(const Plane&) const;
|
||||
bool Intersects(const Polyhedron&) const;
|
||||
@@ -84,9 +86,28 @@ namespace J3ML::Geometry
|
||||
|
||||
Polygon FacePolygon(int faceIndex) const;
|
||||
|
||||
Vector3 FaceNormal(int faceIndex) const;
|
||||
|
||||
bool IsConvex() const;
|
||||
|
||||
Vector3 ApproximateConvexCentroid() const;
|
||||
|
||||
int ExtremeVertex(const Vector3 &direction) const;
|
||||
|
||||
Vector3 ExtremePoint(const Vector3 &direction) const;
|
||||
|
||||
/// Tests if the given face of this Polyhedron contains the given point.
|
||||
bool FaceContains(int faceIndex, const Vector3 &worldSpacePoint, float polygonThickness = 1e-3f) const;
|
||||
|
||||
/// A helper for Contains() and FaceContains() tests: Returns a positive value if the given point is contained in the given face,
|
||||
/// and a negative value if the given point is outside the face. The magnitude of the return value reports a pseudo-distance
|
||||
/// from the point to the nearest edge of the face polygon. This is used as a robustness/stability criterion to estimate how
|
||||
/// numerically believable the result is.
|
||||
float FaceContainmentDistance2D(int faceIndex, const Vector3 &worldSpacePoint, float polygonThickness) const;
|
||||
void ProjectToAxis(const Vector3 &direction, float &outMin, float &outMax) const;
|
||||
protected:
|
||||
private:
|
||||
|
||||
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user