
Game Physics Cookbook
By :

A point in 3D is very similar to a point in 2D. The 3D point adds a new Z component:
Like the 2D point, the 3D point can also be expressed by a vector. The point is where the vector points to.
We are going to create a new header file for 3D geometry, Geometry3D.h
. All future 3D geometry will be added to this file. Because a 3D point has the same definition as a 3D vector, we're not creating a point struct
. Instead we are going to re-declare the vec3
struct as a point using the typedef
keyword.
Follow these steps to redefine a 3D vector as a 3D point:
Create a new C++ header file, call this file Geometry3D.h
.
Add the basic header guards to the file and include vectors.h
and matrices.h
:
#ifndef _H_GEOMETRY_3D_ #define _H_GEOMETRY_3D_ #include "vectors.h" #include "matrices.h" #endif
Because a Point
has the same definition as a 3D vector, we are not going to make a new Point
structure. Instead, we will re-define vec3
as Point
using a typedef
:
typedef vec3 Point;