MinGfx Toolkit  1.0
A minimal library for writing cross-platform (Windows, OSX, linux) graphics programs.
Classes | Functions
mingfx Namespace Reference

Detailed Description

Namespace for the MinGfx Toolkit.

Classes

class  AABB
 A 3D axis-aligned bounding box defined by two corners (min and max). More...
 
class  BVH
 A Bounding Volume Hierarchy (BVH) data structure that can be used to accelerate ray-object intersection tests by carving up space into a hierarchy of partitions represented in a tree. More...
 
class  Color
 Represents a 4-component (R,G,B,A) color, stored internally in a float array to be compatable with OpenGL. More...
 
class  CraftCam
 This implements a user interface for controlling the camera with the mouse. More...
 
class  DefaultShader
 A simple GLSL shader for textured per-fragment Phong shading with multiple light sources. More...
 
class  GfxMath
 This class holds a variety of static math functions that are useful to have defined with creating graphics programs. More...
 
class  GraphicsApp
 This is the main application base class for the MinGfx Toolkit. More...
 
class  Matrix4
 A 4x4 transformation matrix stored internally as an array of floats in column-major order so as to be compatible with OpenGL. More...
 
class  Mesh
 A triangle mesh data structure that can be rendered with a ShaderProgram like DefaultShader. More...
 
class  Platform
 Provides access to the underlying file system and other platform-specific routines. More...
 
class  Point2
 A 2D Point with floating point coordinates, used for storing 2D texture coordinates, screen-space graphics, and mouse input. More...
 
class  Point3
 A 3D Point with floating point coordinates, used for storing vertices and all sorts of other 3D graphics operations. More...
 
class  Quaternion
 A quaternion to represent rotations in 3D space. More...
 
class  QuickShapes
 This class provides a quick way to draw shapes for use in debugging or simple scenes. More...
 
class  Ray
 Stores the mathematical object of a ray that begins at an origin (a 3D point) and points in a direction (a unit 3D vector). More...
 
class  ShaderProgram
 A wrapper around GLSL shader programs. More...
 
class  TextShader
 
class  Texture2D
 A wrapper around a 2D texture that supports loading images from files or setting texture color data directly. More...
 
class  UniCam
 This implements a user interface for controlling the camera with the mouse. More...
 
class  Vector2
 A 2D Vector with floating point coordinates, used for storing 2D translations, mouse movements, and screen-space vectors. More...
 
class  Vector3
 A 3D Vector with floating point coordinates, used for storing normals and all sorts of other 3D graphics operations. More...
 

Functions

AABB operator+ (const AABB &A, const AABB &B)
 
std::ostream & operator<< (std::ostream &os, const Color &c)
 
std::istream & operator>> (std::istream &is, Color &c)
 
Matrix4 operator* (const Matrix4 &m, const float &s)
 Multiply matrix and scalar, returns the new matrix. More...
 
Matrix4 operator* (const float &s, const Matrix4 &m)
 Multiply matrix and scalar, returns the new matrix. More...
 
Point3 operator* (const Matrix4 &m, const Point3 &p)
 Multiply matrix and point, returns the new point. More...
 
Vector3 operator* (const Matrix4 &m, const Vector3 &v)
 Multiply matrix and vector, returns the new vector. More...
 
Matrix4 operator* (const Matrix4 &m1, const Matrix4 &m2)
 Multiply two matrices, returns the result. More...
 
Ray operator* (const Matrix4 &m, const Ray &r)
 Multiply matrix and the point and vector portions of the ray, returns the new ray. More...
 
std::ostream & operator<< (std::ostream &os, const Matrix4 &m)
 
std::istream & operator>> (std::istream &is, Matrix4 &m)
 
std::ostream & operator<< (std::ostream &os, const Point2 &p)
 
std::istream & operator>> (std::istream &is, Point2 &p)
 
std::ostream & operator<< (std::ostream &os, const Point3 &p)
 
std::istream & operator>> (std::istream &is, Point3 &p)
 
Quaternion operator* (const Quaternion &q1, const Quaternion &q2)
 
Quaternion operator/ (const Quaternion &q, const float s)
 
Quaternion operator* (const float s, const Quaternion &q)
 
Quaternion operator* (const Quaternion &q, const float s)
 
Quaternion operator- (const Quaternion &q)
 
Quaternion operator+ (const Quaternion &q1, const Quaternion &q2)
 
Quaternion operator- (const Quaternion &q1, const Quaternion &q2)
 
std::ostream & operator<< (std::ostream &os, const Quaternion &q)
 
std::istream & operator>> (std::istream &is, Quaternion &q)
 
std::ostream & operator<< (std::ostream &os, const Ray &r)
 
std::istream & operator>> (std::istream &is, Ray &r)
 
Vector2 operator/ (const Vector2 &v, const float s)
 Divide the vector by the scalar s. More...
 
Vector2 operator* (const float s, const Vector2 &v)
 Multiply the vector by the scalar s. More...
 
Vector2 operator* (const Vector2 &v, const float s)
 Multiply the vector by the scalar s. More...
 
Vector2 operator- (const Vector2 &v)
 Negate the vector. More...
 
Point2 operator+ (const Vector2 &v, const Point2 &p)
 Adds a vector and a point, returns a point. More...
 
Point2 operator+ (const Point2 &p, const Vector2 &v)
 Adds a point and a vector, returns a point. More...
 
Vector2 operator+ (const Vector2 &v1, const Vector2 &v2)
 Adds a vector and a vector, returns a vector. More...
 
Point2 operator- (const Point2 &p, const Vector2 &v)
 Subtracts a vector from a point, returns a point. More...
 
Vector2 operator- (const Vector2 &v1, const Vector2 &v2)
 Subtracts v2 from v1, returns a vector. More...
 
Vector2 operator- (const Point2 &p1, const Point2 &p2)
 Returns the vector spanning p1 and p2. More...
 
std::ostream & operator<< (std::ostream &os, const Vector2 &v)
 
std::istream & operator>> (std::istream &is, Vector2 &v)
 
Vector3 operator/ (const Vector3 &v, const float s)
 Divide the vector by the scalar s. More...
 
Vector3 operator* (const float s, const Vector3 &v)
 Multiply the vector by the scalar s. More...
 
Vector3 operator* (const Vector3 &v, const float s)
 Multiply the vector by the scalar s. More...
 
Vector3 operator- (const Vector3 &v)
 Negate the vector. More...
 
Point3 operator+ (const Vector3 &v, const Point3 &p)
 Adds a vector and a point, returns a point. More...
 
Point3 operator+ (const Point3 &p, const Vector3 &v)
 Adds a point and a vector, returns a point. More...
 
Vector3 operator+ (const Vector3 &v1, const Vector3 &v2)
 Adds a vector and a vector, returns a vector. More...
 
Point3 operator- (const Point3 &p, const Vector3 &v)
 Subtracts a vector from a point, returns a point. More...
 
Vector3 operator- (const Vector3 &v1, const Vector3 &v2)
 Subtracts v2 from v1, returns a vector. More...
 
Vector3 operator- (const Point3 &p1, const Point3 &p2)
 Returns the vector spanning p1 and p2. More...
 
std::ostream & operator<< (std::ostream &os, const Vector3 &v)
 
std::istream & operator>> (std::istream &is, Vector3 &v)
 

Function Documentation

◆ operator*() [1/13]

Matrix4 mingfx::operator* ( const float &  s,
const Matrix4 m 
)

Multiply matrix and scalar, returns the new matrix.

◆ operator*() [2/13]

Quaternion mingfx::operator* ( const float  s,
const Quaternion q 
)

◆ operator*() [3/13]

Vector2 mingfx::operator* ( const float  s,
const Vector2 v 
)

Multiply the vector by the scalar s.

◆ operator*() [4/13]

Vector3 mingfx::operator* ( const float  s,
const Vector3 v 
)

Multiply the vector by the scalar s.

◆ operator*() [5/13]

Matrix4 mingfx::operator* ( const Matrix4 m,
const float &  s 
)

Multiply matrix and scalar, returns the new matrix.

◆ operator*() [6/13]

Point3 mingfx::operator* ( const Matrix4 m,
const Point3 p 
)

Multiply matrix and point, returns the new point.

◆ operator*() [7/13]

Ray mingfx::operator* ( const Matrix4 m,
const Ray r 
)

Multiply matrix and the point and vector portions of the ray, returns the new ray.

◆ operator*() [8/13]

Vector3 mingfx::operator* ( const Matrix4 m,
const Vector3 v 
)

Multiply matrix and vector, returns the new vector.

◆ operator*() [9/13]

Matrix4 mingfx::operator* ( const Matrix4 m1,
const Matrix4 m2 
)

Multiply two matrices, returns the result.

◆ operator*() [10/13]

Quaternion mingfx::operator* ( const Quaternion q,
const float  s 
)

◆ operator*() [11/13]

Quaternion mingfx::operator* ( const Quaternion q1,
const Quaternion q2 
)

◆ operator*() [12/13]

Vector2 mingfx::operator* ( const Vector2 v,
const float  s 
)

Multiply the vector by the scalar s.

◆ operator*() [13/13]

Vector3 mingfx::operator* ( const Vector3 v,
const float  s 
)

Multiply the vector by the scalar s.

◆ operator+() [1/8]

AABB mingfx::operator+ ( const AABB A,
const AABB B 
)

◆ operator+() [2/8]

Point2 mingfx::operator+ ( const Point2 p,
const Vector2 v 
)

Adds a point and a vector, returns a point.

◆ operator+() [3/8]

Point3 mingfx::operator+ ( const Point3 p,
const Vector3 v 
)

Adds a point and a vector, returns a point.

◆ operator+() [4/8]

Quaternion mingfx::operator+ ( const Quaternion q1,
const Quaternion q2 
)

◆ operator+() [5/8]

Point2 mingfx::operator+ ( const Vector2 v,
const Point2 p 
)

Adds a vector and a point, returns a point.

◆ operator+() [6/8]

Vector2 mingfx::operator+ ( const Vector2 v1,
const Vector2 v2 
)

Adds a vector and a vector, returns a vector.

◆ operator+() [7/8]

Point3 mingfx::operator+ ( const Vector3 v,
const Point3 p 
)

Adds a vector and a point, returns a point.

◆ operator+() [8/8]

Vector3 mingfx::operator+ ( const Vector3 v1,
const Vector3 v2 
)

Adds a vector and a vector, returns a vector.

◆ operator-() [1/10]

Point2 mingfx::operator- ( const Point2 p,
const Vector2 v 
)

Subtracts a vector from a point, returns a point.

◆ operator-() [2/10]

Vector2 mingfx::operator- ( const Point2 p1,
const Point2 p2 
)

Returns the vector spanning p1 and p2.

◆ operator-() [3/10]

Point3 mingfx::operator- ( const Point3 p,
const Vector3 v 
)

Subtracts a vector from a point, returns a point.

◆ operator-() [4/10]

Vector3 mingfx::operator- ( const Point3 p1,
const Point3 p2 
)

Returns the vector spanning p1 and p2.

◆ operator-() [5/10]

Quaternion mingfx::operator- ( const Quaternion q)

◆ operator-() [6/10]

Quaternion mingfx::operator- ( const Quaternion q1,
const Quaternion q2 
)

◆ operator-() [7/10]

Vector2 mingfx::operator- ( const Vector2 v)

Negate the vector.

◆ operator-() [8/10]

Vector2 mingfx::operator- ( const Vector2 v1,
const Vector2 v2 
)

Subtracts v2 from v1, returns a vector.

◆ operator-() [9/10]

Vector3 mingfx::operator- ( const Vector3 v)

Negate the vector.

◆ operator-() [10/10]

Vector3 mingfx::operator- ( const Vector3 v1,
const Vector3 v2 
)

Subtracts v2 from v1, returns a vector.

◆ operator/() [1/3]

Quaternion mingfx::operator/ ( const Quaternion q,
const float  s 
)

◆ operator/() [2/3]

Vector2 mingfx::operator/ ( const Vector2 v,
const float  s 
)

Divide the vector by the scalar s.

◆ operator/() [3/3]

Vector3 mingfx::operator/ ( const Vector3 v,
const float  s 
)

Divide the vector by the scalar s.

◆ operator<<() [1/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Color c 
)

◆ operator<<() [2/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Matrix4 m 
)

◆ operator<<() [3/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Point2 p 
)

◆ operator<<() [4/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Point3 p 
)

◆ operator<<() [5/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Quaternion q 
)

◆ operator<<() [6/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Ray r 
)

◆ operator<<() [7/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Vector2 v 
)

◆ operator<<() [8/8]

std::ostream& mingfx::operator<< ( std::ostream &  os,
const Vector3 v 
)

◆ operator>>() [1/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Color c 
)

◆ operator>>() [2/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Matrix4 m 
)

◆ operator>>() [3/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Point2 p 
)

◆ operator>>() [4/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Point3 p 
)

◆ operator>>() [5/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Quaternion q 
)

◆ operator>>() [6/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Ray r 
)

◆ operator>>() [7/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Vector2 v 
)

◆ operator>>() [8/8]

std::istream& mingfx::operator>> ( std::istream &  is,
Vector3 v 
)