Collaboration diagram for MLIB:
Files | |
file | global.C |
Contains values of epsilon constants from global.H and the implementation of the setEpsAbsMath function. | |
file | global.H |
The basic include file for mlib; defines constants and inline utility functions. | |
file | line.H |
Contains the definition of the Line class. | |
file | mat4.C |
Contains the definitions of member functions for the Mat4 class. | |
file | mat4.H |
Contains the declaration of the Mat4 class, a 4x4 matrix class. | |
file | nearest_pt.H |
Contains the nearest_pt_to_line_seg function. | |
file | plane.C |
Implementation of non-inline methods of class Plane. | |
file | plane.H |
Contains the definition of the Plane class. A 3D oriented plane class. | |
file | point2.C |
Contains the implementation of non-inline functions of the Point2 class and the Point2list class. | |
file | point2.H |
Contains the declarations of the Point2 and Point2list classes. | |
file | point2i.H |
Contains the definitions of the Point2i and Vec2i classes. | |
file | point3.C |
Contains the implementation of non-inline functions of the Point3 class and the Point3list class. | |
file | point3.H |
Contains the declarations of the Point3 and Point3list classes. | |
file | point3i.H |
Contains the definition of the Point3i class. | |
file | pointlist.C |
Contains the implementation of non-inline functions of the Pointlist class. | |
file | pointlist.H |
Contains the declaration of the Pointlist class. | |
file | points.H |
Definitions of geometry classes for various coordinate systems.
| |
file | quat.C |
Contains the implementation of the non-inline functions of the Quat class.
This code comes in part from Ken Shoemake's article on quaternions (available at ftp://ftp.cis.upenn.edu/pub/graphics/shoemake/quatut.ps.Z). | |
file | quat.H |
Contains the definition of the Quat class. A quaternion class. | |
file | random.C |
Contains the implementation of the non-inline functions of the RandomGen class. | |
file | random.H |
Contains the definition of the RandomGen class. | |
file | statistics.H |
Statistical functions. | |
file | tab_fn.H |
Contains the definition of the TabulatedFunction class. | |
file | vec2.H |
Contains the definition of the Vec2 class, a 2D vector class. | |
file | vec3.H |
Contains the defintion of the Vec3 class, a 3D vector class. | |
file | vec4.H |
Contains the declaration of the Vec4 class, a 4D vector class. | |
Modules | |
"World" Coordinate System | |
3D coordinates used for "world space" and "object space". | |
"XY" Coordinate System | |
2D screen coordinates running from [-1,-1] to [1,1] within window. | |
"NDC" Coordinate System | |
Normalized Device Coordinates. 2D screen coordinates running from -1 to 1 in shorter window dimension, and from -A to A in the longer window dimension, where A is the aspect ratio. | |
"NDCZ" Coordinate System | |
Same as NDC but with a 3rd coordinate z = depth. | |
"PIXEL" Coordinate System | |
2D floating point screen coordinates representing pixel locations. E.g. the lower left corner of the screen is (0,0), and the upper right is (w,h) (i.e. window width and height). | |
"UV" Coordinate System | |
2D coordinates that can be used for texture mapping, e.g. | |
Classes | |
class | mlib::Line< L, P, V > |
Templated class defining an oriented line and/or a line segment.
The Line class keeps a point and a vector. For the Line object to be valid, the vector must not be null. More... | |
class | mlib::Plane< PLANE, P, V, L > |
Declaration of a class plane, keeping a definition of an oriented plane in 3D.
The plane is defined by its (unit) normal vector and parameter 'd', which is the signed distance of the plane from the origin of the coordinate system. More... | |
class | mlib::Point2< P, V > |
A 2D point class with double precision floating point elements.
This class is designed to be base class of more specific types of 2D points. Specifically, 2D points in different coordinate systems. The template argument P is the type of the derived point class. This allows the Point2 to return new points of the same type as the derived class. The template argument V is the type of the corresponding 2D vector class for the coordinate system of the derived 2D point class. More... | |
class | mlib::Vec2i |
A 2D vector class with integer components. More... | |
class | mlib::Point2i |
A 2D point class with integer components. More... | |
class | mlib::Point3< P, V > |
A 3D point class with double precision floating point elements.
This class is designed to be base class of more specific types of 3D points. Specifically, 3D points in different coordinate systems. The template argument P is the type of the derived point class. This allows the Point3 to return new points of the same type as the derived class. The template argument V is the type of the corresponding 3D vector class for the coordinate system of the derived 3D point class. More... | |
class | mlib::Point3list< L, M, P, V, S > |
A class containing a list of Point3's. Contains functions to aid in using this list of points as a piecewise continuous curve in some 3D coordinate system.
Like the Point3 class, Point3list is designed to be the base class for more specific types of lists of 3D points. Specifically, lists of 3D points in different coordinate systems. The template argument L is the type of the derived point list class. This allows the Point3list to return new lists of the same type as the derived class. The template arguments M, P, V, and S are the types of the corresponding matrix, point, vector and line classes (respectively) for the coordinate system of the derived 3D point list class. More... | |
class | mlib::Point3i |
A 3D point class with integer components. More... | |
class | mlib::Pointlist< L, P, V, S > |
A class containing a list of points. Contains functions to aid in using this list of points as a piecewise continuous curve in some coordinate system.
Pointlist is designed to be the base class for more specific types of lists of points. Specifically, lists of points with different numbers of dimensions. The template argument L is the type of the derived point list class. This allows the Pointlist to return new lists of the same type as the derived class. The template arguments P, V, and S are the types of the corresponding point, vector and line classes (respectively) for the derived class. More... | |
class | mlib::Quat< QUAT, M, P, V, L > |
A quaternion class.
The Quat class is designed to be the base class for more specific types of quaternions. Specifically, quaternions in different 3D coordinates systems. The QUAT template argument is the type of the derived quaternion class. This allows the Quat class to return new quaternions of the same type as the derived quaternion class. The M, P, V, and L template arguments are the types of the corresponding matrix, point, vector, and line (respectively) for the coordinate system of the derived quaternion class. More... | |
class | mlib::RandomGen |
Random number generator class.
Private to objects (a la meshes) who need their own source of random variables. More... | |
class | mlib::TabulatedFunction |
Tabulates values of a given function over an interval [a,b] using a specified resolution.
Approximations of the function at values in [a,b) are returned as interpolations of the tabulated values. at values outside that range the function itself is used to compute the value. More... | |
class | mlib::Vec2< V > |
A 2D vector class with double precision floating point elements.
This class is designed to be base class of more specific types of 2D vectors. Specifically, 2D vectors in different coordinate systems. The template argument V is the type of the derived vector class. This allows the Vec2 to return new vectors of the same type as the derived class. More... | |
class | mlib::Vec3< V > |
A 3D vector class with double precision floating point elements.
This class is designed to be base class of more specific types of 3D vectors. Specifically, 3D vectors in different coordinate systems. The template argument V is the type of the derived vector class. This allows the Vec3 to return new vectors of the same type as the derived class. More... | |
class | mlib::Vec4 |
A 4D vector class with double precision floating point elements. More... |