KrisLibrary
1.0.0
|
A generic 2D geometric primitive class. More...
#include <geometry2d.h>
Public Types | |
enum | Type { Empty, Point, Segment, AABB, Triangle, Circle, Box } |
Public Member Functions | |
GeometricPrimitive2D (const GeometricPrimitive2D &rhs) | |
GeometricPrimitive2D (const Vector2 &point) | |
GeometricPrimitive2D (const Segment2D &segment) | |
GeometricPrimitive2D (const AABB2D &aabb) | |
GeometricPrimitive2D (const Box2D &box) | |
GeometricPrimitive2D (const Circle2D &circle) | |
GeometricPrimitive2D (const Triangle2D &triangle) | |
const char * | TypeName () const |
void | Set (const Vector2 &point) |
void | Set (const Segment2D &segment) |
void | Set (const AABB2D &aabb) |
void | Set (const Box2D &box) |
void | Set (const Circle2D &circle) |
void | Set (const Triangle2D &triangle) |
AABB2D | GetAABB () const |
Box2D | GetBB () const |
RigidTransform | GetFrame () const |
void | Transform (const RigidTransform2D &T) |
void | ToPolygon (std::vector< Vector2 > &outline, int divs=32) const |
bool | SupportsCollides (Type b) const |
bool | Collides (const GeometricPrimitive2D &geom) const |
bool | Collides (const Vector2 &point) const |
bool | Collides (const Segment2D &segment) const |
bool | Collides (const AABB2D &aabb) const |
bool | Collides (const Box2D &box) const |
bool | Collides (const Circle2D &circle) const |
bool | Collides (const Triangle2D &triangle) const |
bool | SupportsDistance (Type b) |
Real | Distance (const GeometricPrimitive2D &geom) const |
Real | Distance (const Vector2 &x) const |
Real | Distance (const Segment2D &segment) const |
Real | Distance (const AABB2D &aabb) const |
Real | Distance (const Box2D &box) const |
Real | Distance (const Circle2D &circle) const |
Real | Distance (const Triangle2D &triangle) const |
Static Public Member Functions | |
static const char * | TypeName (Type type) |
static bool | SupportsCollides (Type a, Type b) |
static bool | SupportsDistance (Type a, Type b) |
Public Attributes | |
Type | type |
AnyValue | data |
A generic 2D geometric primitive class.
Note: Distance() routines may actually report the signed distance, rather than 0 if there is an overlap.