From 5fa5be3907db58381409c9c672854a5850e7b2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Mon, 23 Jun 2008 10:02:40 +0200 Subject: Move Point3d to point3d.h --- model.h | 52 +--------------------------------------------------- point3d.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 51 deletions(-) create mode 100644 point3d.h diff --git a/model.h b/model.h index 3c95800..b219f8f 100644 --- a/model.h +++ b/model.h @@ -5,57 +5,7 @@ #include -struct Point3d -{ - float x, y, z; - - Point3d() - : x(0) - , y(0) - , z(0) - { - } - - Point3d(float x_, float y_, float z_) - : x(x_) - , y(y_) - , z(z_) - { - } - - Point3d operator-(const Point3d &p) const - { - return Point3d(x - p.x, y - p.y, z - p.z); - } - - Point3d operator+(const Point3d &p) const - { - return Point3d(x + p.x, y + p.y, z + p.z); - } - - Point3d normalize() const - { - float r = 1. / sqrt(x * x + y * y + z * z); - return Point3d(x * r, y * r, z * r); - } - - Point3d operator*(float f) const - { - return Point3d(x * f, y * f, z * f); - } -}; - -inline float dot(const Point3d &a, const Point3d &b) -{ - return a.x * b.x + a.y * b.y + a.z * b.z; -} - -inline Point3d cross(const Point3d &a, const Point3d &b) -{ - return Point3d(a.y * b.z - a.z * b.y, - a.z * b.x - a.x * b.z, - a.x * b.y - a.y * b.x); -} +#include "point3d.h" class Model { diff --git a/point3d.h b/point3d.h new file mode 100644 index 0000000..aba6136 --- /dev/null +++ b/point3d.h @@ -0,0 +1,56 @@ +#ifndef POINT3D_H +#define POINT3D_H + +struct Point3d +{ + float x, y, z; + + Point3d() + : x(0) + , y(0) + , z(0) + { + } + + Point3d(float x_, float y_, float z_) + : x(x_) + , y(y_) + , z(z_) + { + } + + Point3d operator-(const Point3d &p) const + { + return Point3d(x - p.x, y - p.y, z - p.z); + } + + Point3d operator+(const Point3d &p) const + { + return Point3d(x + p.x, y + p.y, z + p.z); + } + + Point3d normalize() const + { + float r = 1. / sqrt(x * x + y * y + z * z); + return Point3d(x * r, y * r, z * r); + } + + Point3d operator*(float f) const + { + return Point3d(x * f, y * f, z * f); + } +}; + +inline float dot(const Point3d &a, const Point3d &b) +{ + return a.x * b.x + a.y * b.y + a.z * b.z; +} + +inline Point3d cross(const Point3d &a, const Point3d &b) +{ + return Point3d(a.y * b.z - a.z * b.y, + a.z * b.x - a.x * b.z, + a.x * b.y - a.y * b.x); +} + +#endif -- cgit v1.2.3