gfx_types_vertex.hh File Reference

Vector/vertex types. More...

#include "gfx_types_vertex_ops.hh"

Go to the source code of this file.

Namespaces

namespace  gfx

Classes

struct  gfx::Vector2
 2D vector or point. More...
struct  gfx::Vector3
 3D vector or point. More...
struct  gfx::LocalVertex
 3D vertex in local coordinate space. More...
struct  gfx::WorldVertex
 3D vertex in world coordinate space. More...
struct  gfx::EyeVertex
 3D vertex in eye coordinate space. More...
struct  gfx::NormalVertex
 3D vertex in normal space. More...

Defines

#define GFX_TYPES_VERTEX_HH   1
#define virtual   VIRTUAL_METHODS_IN_BASIC_TYPES_IS_TOO_SLOW
#define VECTOR3   Vector3
#define VECTOR3   LocalVertex
#define VECTOR3   WorldVertex
#define VECTOR3   EyeVertex
#define VECTOR3   NormalVertex

Typedefs

typedef uint16 gfx::Vix
 Vertex index ("vix").
typedef uint16 gfx::Nix
typedef Array
< LocalVertex > 
gfx::LocalVertexs
typedef Array
< WorldVertex > 
gfx::WorldVertexs
typedef Array
< EyeVertex > 
gfx::EyeVertexs
typedef Array
< NormalVertex > 
gfx::NormalVertexs
typedef Array< Vix > gfx::Vixs

Functions

INLINE Vector2 gfx::operator+ (const Vector2 &v1, const Vector2 &v2)
INLINE Vector2 gfx::operator- (const Vector2 &v1, const Vector2 &v2)
INLINE Vector2 gfx::operator * (const Vector2 &v1, const Vector2 &v2)
INLINE Vector2 gfx::operator/ (const Vector2 &v1, const Vector2 &v2)
INLINE Vector2 gfx::operator+ (const Vector2 &v, fp f)
INLINE Vector2 gfx::operator- (const Vector2 &v, fp f)
INLINE Vector2 gfx::operator * (const Vector2 &v, fp f)
INLINE Vector2 gfx::operator/ (const Vector2 &v, fp f)
INLINE ostream & gfx::operator<< (ostream &strm, const Vector2 &v)
INLINE Vector3 gfx::operator+ (const Vector3 &v1, const Vector3 &v2)
INLINE Vector3 gfx::operator- (const Vector3 &v1, const Vector3 &v2)
INLINE Vector3 gfx::operator * (const Vector3 &v1, const Vector3 &v2)
INLINE Vector3 gfx::operator/ (const Vector3 &v1, const Vector3 &v2)
INLINE Vector3 gfx::operator+ (const Vector3 &v, fp f)
INLINE Vector3 gfx::operator- (const Vector3 &v, fp f)
INLINE Vector3 gfx::operator * (const Vector3 &v, fp f)
INLINE Vector3 gfx::operator/ (const Vector3 &v, fp f)
INLINE ostream & gfx::operator<< (ostream &strm, const Vector3 &v)
INLINE LocalVertex gfx::operator+ (const LocalVertex &v1, const LocalVertex &v2)
INLINE LocalVertex gfx::operator- (const LocalVertex &v1, const LocalVertex &v2)
INLINE LocalVertex gfx::operator * (const LocalVertex &v1, const LocalVertex &v2)
INLINE LocalVertex gfx::operator/ (const LocalVertex &v1, const LocalVertex &v2)
INLINE LocalVertex gfx::operator+ (const LocalVertex &v, fp f)
INLINE LocalVertex gfx::operator- (const LocalVertex &v, fp f)
INLINE LocalVertex gfx::operator * (const LocalVertex &v, fp f)
INLINE LocalVertex gfx::operator/ (const LocalVertex &v, fp f)
INLINE ostream & gfx::operator<< (ostream &strm, const LocalVertex &v)
INLINE WorldVertex gfx::operator+ (const WorldVertex &v1, const WorldVertex &v2)
INLINE WorldVertex gfx::operator- (const WorldVertex &v1, const WorldVertex &v2)
INLINE WorldVertex gfx::operator * (const WorldVertex &v1, const WorldVertex &v2)
INLINE WorldVertex gfx::operator/ (const WorldVertex &v1, const WorldVertex &v2)
INLINE WorldVertex gfx::operator+ (const WorldVertex &v, fp f)
INLINE WorldVertex gfx::operator- (const WorldVertex &v, fp f)
INLINE WorldVertex gfx::operator * (const WorldVertex &v, fp f)
INLINE WorldVertex gfx::operator/ (const WorldVertex &v, fp f)
INLINE ostream & gfx::operator<< (ostream &strm, const WorldVertex &v)
INLINE EyeVertex gfx::operator+ (const EyeVertex &v1, const EyeVertex &v2)
INLINE EyeVertex gfx::operator- (const EyeVertex &v1, const EyeVertex &v2)
INLINE EyeVertex gfx::operator * (const EyeVertex &v1, const EyeVertex &v2)
INLINE EyeVertex gfx::operator/ (const EyeVertex &v1, const EyeVertex &v2)
INLINE EyeVertex gfx::operator+ (const EyeVertex &v, fp f)
INLINE EyeVertex gfx::operator- (const EyeVertex &v, fp f)
INLINE EyeVertex gfx::operator * (const EyeVertex &v, fp f)
INLINE EyeVertex gfx::operator/ (const EyeVertex &v, fp f)
INLINE ostream & gfx::operator<< (ostream &strm, const EyeVertex &v)
INLINE NormalVertex gfx::operator+ (const NormalVertex &v1, const NormalVertex &v2)
INLINE NormalVertex gfx::operator- (const NormalVertex &v1, const NormalVertex &v2)
INLINE NormalVertex gfx::operator * (const NormalVertex &v1, const NormalVertex &v2)
INLINE NormalVertex gfx::operator/ (const NormalVertex &v1, const NormalVertex &v2)
INLINE NormalVertex gfx::operator+ (const NormalVertex &v, fp f)
INLINE NormalVertex gfx::operator- (const NormalVertex &v, fp f)
INLINE NormalVertex gfx::operator * (const NormalVertex &v, fp f)
INLINE NormalVertex gfx::operator/ (const NormalVertex &v, fp f)
INLINE ostream & gfx::operator<< (ostream &strm, const NormalVertex &v)


Detailed Description

Vector/vertex types.

Vector/vertex operator() functions.

Id
LastChangedDate

Author:
Jim E. Brooks http://www.palomino3d.org
Id
LastChangedDate

Author:
Jim E. Brooks http://www.palomino3d.org
 *
 * External operator() functions cannot be implemented
 * in terms of the base Vector3 because doing so leads
 * to erosion of the distinctiveness of the Vertex types.
 * If they were, to be useful, they would require every
 * Vertex class to define a Vertex& operator(const Vector3&).
 * That method is trouble: it would make Vertex and Vector3
 * interchangeable in some situations, and transformation problems
 * would go unnoticed since the code would compile.
 * The vertex types should be kept distinct because a vertex
 * must be mathematically transformed first before its type can change.
 *
 * LocalVertex lv;
 * WorldVertex wv;
 * wv = lv + lv;  // WorldVertex.operator=( LocalVertex + LocalVertex );
 *
 * 

Define Documentation

#define GFX_TYPES_VERTEX_HH   1

#define VECTOR3   NormalVertex

#define VECTOR3   EyeVertex

#define VECTOR3   WorldVertex

#define VECTOR3   LocalVertex

#define VECTOR3   Vector3

#define virtual   VIRTUAL_METHODS_IN_BASIC_TYPES_IS_TOO_SLOW

Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:15 2007