KrisLibrary  1.0.0
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Math3D::GeometricPrimitive2D Class Reference

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
 

Detailed Description

A generic 2D geometric primitive class.

Note: Distance() routines may actually report the signed distance, rather than 0 if there is an overlap.


The documentation for this class was generated from the following files: