Point
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.
Getting ready
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.
How to do it…
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
andmatrices.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 newPoint
structure. Instead, we will re-definevec3
asPoint
using atypedef
:typedef vec3 Point;