Tweeker Commit (Have Fun Reviewing This)
This commit is contained in:
@@ -12,17 +12,52 @@ namespace J3ML::Geometry {
|
||||
public:
|
||||
std::vector<Vector3> vertices;
|
||||
AABB MinimalEnclosingAABB() const;
|
||||
int NumVertices() const
|
||||
{
|
||||
return (int)vertices.size();
|
||||
}
|
||||
Vector3 Vertex(int vertexIndex) const
|
||||
{
|
||||
assert(vertexIndex >= 0);
|
||||
assert(vertexIndex < (int) vertices.size());
|
||||
return vertices[vertexIndex];
|
||||
}
|
||||
int NumVertices() const;
|
||||
Vector3 Vertex(int vertexIndex) const;
|
||||
Vector3 ExtremePoint(const Vector3 &direction, float &projectionDistance) const;
|
||||
|
||||
Vector3 ExtremePoint(const Vector3 &direction) const;
|
||||
|
||||
void ProjectToAxis(const Vector3 &direction, float &outMin, float &outMax) const;
|
||||
|
||||
bool Intersects(const Capsule &capsule) const;
|
||||
bool Intersects(const Line &line) const;
|
||||
bool Intersects(const Ray &ray) const;
|
||||
bool Intersects(const LineSegment &lineSegment) const;
|
||||
bool Intersects(const Plane &plane) const;
|
||||
bool Intersects(const AABB &aabb) const;
|
||||
bool Intersects(const OBB &obb) const;
|
||||
bool Intersects(const Triangle &triangle, float polygonThickness = 1e-3f) const;
|
||||
bool Intersects(const Polygon &polygon, float polygonThickness = 1e-3f) const;
|
||||
bool Intersects(const Frustum &frustum) const;
|
||||
bool Intersects(const Polyhedron &polyhedron) const;
|
||||
bool Intersects(const Sphere &sphere) const;
|
||||
|
||||
protected:
|
||||
private:
|
||||
|
||||
std::vector<Triangle> Triangulate() const;
|
||||
/// Tests if this polygon is planar.
|
||||
/** A polygon is planar if all its vertices lie on the same plane.
|
||||
@note Almost all functions in this class require that the polygon is planar. While you can store vertices of
|
||||
non-planar polygons in this class, they are better avoided. Read the member function documentation carefully
|
||||
to avoid calling for non-planar polygons any functions which assume planarity.
|
||||
@see IsConvex(), IsSimple(), IsNull(), IsFinite(), IsDegenerate(). */
|
||||
bool IsPlanar(float epsilonSq = 1e-4f) const;
|
||||
|
||||
Vector2 MapTo2D(int i) const;
|
||||
|
||||
Vector2 MapTo2D(const Vector3 &point) const;
|
||||
|
||||
Vector3 BasisU() const;
|
||||
|
||||
Vector3 BasisV() const;
|
||||
|
||||
Plane PlaneCCW() const;
|
||||
|
||||
bool Contains(const Polygon &worldSpacePolygon, float polygonThickness) const;
|
||||
|
||||
bool Contains(const Vector3 &worldSpacePoint, float polygonThicknessSq) const;
|
||||
|
||||
bool Contains(const LineSegment &worldSpaceLineSegment, float polygonThickness) const;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user