summaryrefslogtreecommitdiffhomepage
path: root/Opcode/OpcodeLib/Ice/IceRay.cpp
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2021-10-03 16:51:12 +0200
committerAki <please@ignore.pl>2021-10-03 16:51:12 +0200
commit104248aabf40b692231fccd1adf1a2a494f1589a (patch)
tree5eee42a18a9688b03b483aff5c2bedffb4fe8a6c /Opcode/OpcodeLib/Ice/IceRay.cpp
parentddd76aa4e1571c8d5965709db5c3cd47a89c9a38 (diff)
parentd2f333bf998691760b8970c2784756d0fa81e820 (diff)
downloadstarshatter-104248aabf40b692231fccd1adf1a2a494f1589a.zip
starshatter-104248aabf40b692231fccd1adf1a2a494f1589a.tar.gz
starshatter-104248aabf40b692231fccd1adf1a2a494f1589a.tar.bz2
Stars45 can now be built under MSYS2/Mingw32
Diffstat (limited to 'Opcode/OpcodeLib/Ice/IceRay.cpp')
-rw-r--r--Opcode/OpcodeLib/Ice/IceRay.cpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/Opcode/OpcodeLib/Ice/IceRay.cpp b/Opcode/OpcodeLib/Ice/IceRay.cpp
deleted file mode 100644
index 20970ac..0000000
--- a/Opcode/OpcodeLib/Ice/IceRay.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-/**
- * Contains code for rays.
- * \file IceRay.cpp
- * \author Pierre Terdiman
- * \date April, 4, 2000
- */
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-/**
- * Ray class.
- * A ray is a half-line P(t) = mOrig + mDir * t, with 0 <= t <= +infinity
- * \class Ray
- * \author Pierre Terdiman
- * \version 1.0
- */
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-/*
- O = Origin = impact point
- i = normalized vector along the x axis
- j = normalized vector along the y axis = actually the normal vector in O
- D = Direction vector, norm |D| = 1
- N = Projection of D on y axis, norm |N| = normal reaction
- T = Projection of D on x axis, norm |T| = tangential reaction
- R = Reflexion vector
-
- ^y
- |
- |
- |
- _ _ _| _ _ _
- * * *|
- \ | /
- \ |N / |
- R\ | /D
- \ | / |
- \ | /
- _________\|/______*_______>x
- O T
-
- Let define theta = angle between D and N. Then cos(theta) = |N| / |D| = |N| since D is normalized.
-
- j|D = |j|*|D|*cos(theta) => |N| = j|D
-
- Then we simply have:
-
- D = N + T
-
- To compute tangential reaction :
-
- T = D - N
-
- To compute reflexion vector :
-
- R = N - T = N - (D-N) = 2*N - D
-*/
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Precompiled Header
-#include "Stdafx.h"
-
-using namespace IceMaths;
-
-float Ray::SquareDistance(const IcePoint& point, float* t) const
-{
- IcePoint Diff = point - mOrig;
- float fT = Diff | mDir;
-
- if(fT<=0.0f)
- {
- fT = 0.0f;
- }
- else
- {
- fT /= mDir.SquareMagnitude();
- Diff -= fT*mDir;
- }
-
- if(t) *t = fT;
-
- return Diff.SquareMagnitude();
-}