diff --git a/Doxygen/.gitignore b/Doxygen/.gitignore new file mode 100644 index 0000000..567609b --- /dev/null +++ b/Doxygen/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/Doxygen/build/Collider_8cpp.html b/Doxygen/build/Collider_8cpp.html deleted file mode 100644 index b84bff0..0000000 --- a/Doxygen/build/Collider_8cpp.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Collider.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Collider.cpp File Reference
-
-
-
#include "Collider.h"
-
-Include dependency graph for Collider.cpp:
-
-
- - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
- - - - diff --git a/Doxygen/build/Collider_8cpp__incl.map b/Doxygen/build/Collider_8cpp__incl.map deleted file mode 100644 index c94adde..0000000 --- a/Doxygen/build/Collider_8cpp__incl.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/Doxygen/build/Collider_8cpp__incl.md5 b/Doxygen/build/Collider_8cpp__incl.md5 deleted file mode 100644 index 0f1a642..0000000 --- a/Doxygen/build/Collider_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -a0ca2d0389b8e053b94a9d04c38298d1 \ No newline at end of file diff --git a/Doxygen/build/Collider_8cpp__incl.png b/Doxygen/build/Collider_8cpp__incl.png deleted file mode 100644 index 9d9cbfd..0000000 Binary files a/Doxygen/build/Collider_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/Collider_8cpp_source.html b/Doxygen/build/Collider_8cpp_source.html deleted file mode 100644 index 7d6ade8..0000000 --- a/Doxygen/build/Collider_8cpp_source.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Collider.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Collider.cpp
-
-
-Go to the documentation of this file.
1 #include "Collider.h"
-
-
Collider.h
- - - - diff --git a/Doxygen/build/Collider_8h.html b/Doxygen/build/Collider_8h.html deleted file mode 100644 index d275e5d..0000000 --- a/Doxygen/build/Collider_8h.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Collider.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces
-
-
Collider.h File Reference
-
-
-
#include "Vector3.h"
-
-Include dependency graph for Collider.h:
-
-
- - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  Eule::Collider
 Abstract class of a collider domain. More...
 
- - - -

-Namespaces

 Eule
 
-
- - - - diff --git a/Doxygen/build/Collider_8h__dep__incl.map b/Doxygen/build/Collider_8h__dep__incl.map deleted file mode 100644 index f7be80a..0000000 --- a/Doxygen/build/Collider_8h__dep__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Doxygen/build/Collider_8h__dep__incl.md5 b/Doxygen/build/Collider_8h__dep__incl.md5 deleted file mode 100644 index 69ad73f..0000000 --- a/Doxygen/build/Collider_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -a3862d315002f8b279d1429df3698c3b \ No newline at end of file diff --git a/Doxygen/build/Collider_8h__dep__incl.png b/Doxygen/build/Collider_8h__dep__incl.png deleted file mode 100644 index b321190..0000000 Binary files a/Doxygen/build/Collider_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Collider_8h__incl.map b/Doxygen/build/Collider_8h__incl.map deleted file mode 100644 index 050531c..0000000 --- a/Doxygen/build/Collider_8h__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/Doxygen/build/Collider_8h__incl.md5 b/Doxygen/build/Collider_8h__incl.md5 deleted file mode 100644 index 87b8976..0000000 --- a/Doxygen/build/Collider_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9948039f41f85f1963fada39f6f03f97 \ No newline at end of file diff --git a/Doxygen/build/Collider_8h__incl.png b/Doxygen/build/Collider_8h__incl.png deleted file mode 100644 index 27e8cfd..0000000 Binary files a/Doxygen/build/Collider_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Collider_8h_source.html b/Doxygen/build/Collider_8h_source.html deleted file mode 100644 index bb7cafb..0000000 --- a/Doxygen/build/Collider_8h_source.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Collider.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Collider.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include "Vector3.h"
-
3 
-
4 namespace Eule
-
5 {
-
10  class Collider
-
11  {
-
12  public:
-
14  virtual bool Contains(const Vector3d& point) const = 0;
-
15  };
-
16 }
-
-
Eule::Collider
Abstract class of a collider domain.
Definition: Collider.h:10
-
Eule::Vector3< double >
-
Eule::Collider::Contains
virtual bool Contains(const Vector3d &point) const =0
Tests, if this Collider contains a point.
-
Vector3.h
-
Eule
Definition: Collider.h:4
- - - - diff --git a/Doxygen/build/Constants_8h.html b/Doxygen/build/Constants_8h.html deleted file mode 100644 index 61c611f..0000000 --- a/Doxygen/build/Constants_8h.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Constants.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Variables
-
-
Constants.h File Reference
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Variables

static constexpr double PI = 3.14159265358979323846264338327950288419716939937510
 Pi up to 50 decimal places. More...
 
static constexpr double HALF_PI = 1.57079632679489661923132169163975144209858469968755
 Pi divided by two. More...
 
static constexpr double Deg2Rad = 0.0174532925199432957692369076848861271344287188854172222222222222
 Factor to convert degrees to radians. More...
 
static constexpr double Rad2Deg = 57.295779513082320876798154814105170332405472466564427711013084788
 Factor to convert radians to degrees. More...
 
-

Variable Documentation

- -

◆ Deg2Rad

- -
-
- - - - - -
- - - - -
constexpr double Deg2Rad = 0.0174532925199432957692369076848861271344287188854172222222222222
-
-staticconstexpr
-
- -

Factor to convert degrees to radians.

- -

Definition at line 12 of file Constants.h.

- -
-
- -

◆ HALF_PI

- -
-
- - - - - -
- - - - -
constexpr double HALF_PI = 1.57079632679489661923132169163975144209858469968755
-
-staticconstexpr
-
- -

Pi divided by two.

- -

Definition at line 9 of file Constants.h.

- -
-
- -

◆ PI

- -
-
- - - - - -
- - - - -
constexpr double PI = 3.14159265358979323846264338327950288419716939937510
-
-staticconstexpr
-
- -

Pi up to 50 decimal places.

- -

Definition at line 6 of file Constants.h.

- -
-
- -

◆ Rad2Deg

- -
-
- - - - - -
- - - - -
constexpr double Rad2Deg = 57.295779513082320876798154814105170332405472466564427711013084788
-
-staticconstexpr
-
- -

Factor to convert radians to degrees.

- -

Definition at line 15 of file Constants.h.

- -
-
-
- - - - diff --git a/Doxygen/build/Constants_8h__dep__incl.map b/Doxygen/build/Constants_8h__dep__incl.map deleted file mode 100644 index fd16cfe..0000000 --- a/Doxygen/build/Constants_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Doxygen/build/Constants_8h__dep__incl.md5 b/Doxygen/build/Constants_8h__dep__incl.md5 deleted file mode 100644 index 9f34a03..0000000 --- a/Doxygen/build/Constants_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b7f0f6fcf28de72df643fef9d219e14d \ No newline at end of file diff --git a/Doxygen/build/Constants_8h__dep__incl.png b/Doxygen/build/Constants_8h__dep__incl.png deleted file mode 100644 index beb6f19..0000000 Binary files a/Doxygen/build/Constants_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Constants_8h_source.html b/Doxygen/build/Constants_8h_source.html deleted file mode 100644 index 6c4cbef..0000000 --- a/Doxygen/build/Constants_8h_source.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Constants.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Constants.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 
-
3 // Pretty sure the compiler will optimize these calculations out...
-
4 
-
6 static constexpr double PI = 3.14159265358979323846264338327950288419716939937510;
-
7 
-
9 static constexpr double HALF_PI = 1.57079632679489661923132169163975144209858469968755;
-
10 
-
12 static constexpr double Deg2Rad = 0.0174532925199432957692369076848861271344287188854172222222222222;
-
13 
-
15 static constexpr double Rad2Deg = 57.295779513082320876798154814105170332405472466564427711013084788;
-
-
PI
static constexpr double PI
Pi up to 50 decimal places.
Definition: Constants.h:6
-
Deg2Rad
static constexpr double Deg2Rad
Factor to convert degrees to radians.
Definition: Constants.h:12
-
Rad2Deg
static constexpr double Rad2Deg
Factor to convert radians to degrees.
Definition: Constants.h:15
-
HALF_PI
static constexpr double HALF_PI
Pi divided by two.
Definition: Constants.h:9
- - - - diff --git a/Doxygen/build/Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html b/Doxygen/build/Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html deleted file mode 100644 index 257f8b8..0000000 --- a/Doxygen/build/Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Debug/Eule.vcxproj.FileListAbsolute.txt File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Eule/Debug/Eule.vcxproj.FileListAbsolute.txt File Reference
-
-
-
- - - - diff --git a/Doxygen/build/Math_8cpp.html b/Doxygen/build/Math_8cpp.html deleted file mode 100644 index 1737852..0000000 --- a/Doxygen/build/Math_8cpp.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Math.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Macros
-
-
Math.cpp File Reference
-
-
-
#include "Math.h"
-#include "Constants.h"
-#include <array>
-
-Include dependency graph for Math.cpp:
-
-
- - - - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Macros

#define MAKE_SURE_RNG_IS_INITIALIZED   if (!isRngInitialized) InitRng();
 
-

Macro Definition Documentation

- -

◆ MAKE_SURE_RNG_IS_INITIALIZED

- -
-
- - - - -
#define MAKE_SURE_RNG_IS_INITIALIZED   if (!isRngInitialized) InitRng();
-
- -

Definition at line 8 of file Math.cpp.

- -
-
-
- - - - diff --git a/Doxygen/build/Math_8cpp__incl.map b/Doxygen/build/Math_8cpp__incl.map deleted file mode 100644 index bf72fb5..0000000 --- a/Doxygen/build/Math_8cpp__incl.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Doxygen/build/Math_8cpp__incl.md5 b/Doxygen/build/Math_8cpp__incl.md5 deleted file mode 100644 index a0793aa..0000000 --- a/Doxygen/build/Math_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -64f48b056a74ba18f5f53630c99b02b9 \ No newline at end of file diff --git a/Doxygen/build/Math_8cpp__incl.png b/Doxygen/build/Math_8cpp__incl.png deleted file mode 100644 index 8a08b15..0000000 Binary files a/Doxygen/build/Math_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/Math_8cpp_source.html b/Doxygen/build/Math_8cpp_source.html deleted file mode 100644 index 6cb8c05..0000000 --- a/Doxygen/build/Math_8cpp_source.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Math.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Math.cpp
-
-
-Go to the documentation of this file.
1 #include "Math.h"
-
2 #include "Constants.h"
-
3 #include <array>
-
4 
-
5 using namespace Eule;
-
6 
-
7 // Checks if the random number generator is initialized. Does nothing if it is, initializes if it isn't.
-
8 #define MAKE_SURE_RNG_IS_INITIALIZED if (!isRngInitialized) InitRng();
-
9 
-
10 void Math::InitRng()
-
11 {
-
12  // Create truly random source (from hardware events)
-
13  std::random_device randomSource;
-
14 
-
15  // Generate enough truly random values to populate the entire state of the mersenne twister
-
16  std::array<int, std::mt19937::state_size> seedValues;
-
17  std::generate_n(seedValues.data(), seedValues.size(), std::ref(randomSource));
-
18  std::seed_seq seedSequence(seedValues.begin(), seedValues.end());
-
19 
-
20  // Seed the mersenne twister with these values
-
21  rng = std::mt19937(seedSequence);
-
22 
-
23  isRngInitialized = true;
-
24 
-
25  return;
-
26 }
-
27 
-
28 // Will return a random double between 0 and 1
-
29 double Math::Random()
-
30 {
- -
32 
-
33  return (rng() % 694206942069ll) / 694206942069.0;
-
34 }
-
35 
-
36 // Will return a random unsigned integer.
-
37 unsigned int Math::RandomUint()
-
38 {
- -
40 
-
41  return rng();
-
42 }
-
43 
-
44 // Will return a random integer
-
45 unsigned int Math::RandomInt()
-
46 {
- -
48 
-
49  // Since this is supposed to return a random value anyways,
-
50  // we can let the random uint overflow without any problems.
-
51  return (int)rng();
-
52 }
-
53 
-
54 // Will return a random double within a range
-
55 // These bounds are INCLUSIVE!
-
56 double Math::RandomRange(double min, double max)
-
57 {
-
58  return (Random() * (max - min)) + min;
-
59 }
-
60 
-
61 // Will return a random integer within a range. This is faster than '(int)RandomRange(x,y)'
-
62 // These bounds are INCLUSIVE!
-
63 int Math::RandomIntRange(int min, int max)
-
64 {
-
65  return (rng() % (max + 1 - min)) + min;
-
66 }
-
67 
-
68 double Math::Oscillate(const double a, const double b, const double counter, const double speed)
-
69 {
-
70  return (sin(counter * speed * PI - HALF_PI) * 0.5 + 0.5) * (b-a) + a;
-
71 }
-
72 
-
73 bool Math::RandomChance(const double chance)
-
74 {
-
75  return Random() <= chance;
-
76 }
-
77 
-
78 int Math::Mod(const int numerator, const int denominator)
-
79 {
-
80  if (denominator == 0)
-
81  throw std::logic_error("Divide by zero");
-
82 
-
83  // Quick optimizations:
-
84 
-
85  // -> 0/n is always 0
-
86  if (numerator == 0)
-
87  return 0;
-
88 
-
89  // -> operator% works for a > 0 && b > 0
-
90  if (denominator > 0 && numerator > 0)
-
91  return numerator % denominator;
-
92 
-
93  // Else: generalized formula
-
94  return (denominator + (numerator % denominator)) % denominator;
-
95 }
-
96 
-
97 std::mt19937 Math::rng;
-
98 bool Math::isRngInitialized = true;
-
-
MAKE_SURE_RNG_IS_INITIALIZED
#define MAKE_SURE_RNG_IS_INITIALIZED
Definition: Math.cpp:8
-
Eule::Math::RandomChance
static bool RandomChance(const double chance)
Will 'roll' a dice, returning true percent of the time.
Definition: Math.cpp:73
-
PI
static constexpr double PI
Pi up to 50 decimal places.
Definition: Constants.h:6
-
Eule::Math::RandomRange
static double RandomRange(const double min, const double max)
Will return a random double within a range These bounds are INCLUSIVE!
Definition: Math.cpp:56
-
Eule::Math::Mod
static int Mod(const int numerator, const int denominator)
Will compute the actual modulo of a fraction.
Definition: Math.cpp:78
-
Constants.h
-
Eule::Math::RandomInt
static unsigned int RandomInt()
Will return a random integer.
Definition: Math.cpp:45
-
Math.h
-
Eule::Math::RandomIntRange
static int RandomIntRange(const int max, const int min)
Will return a random integer within a range.
Definition: Math.cpp:63
-
Eule::Math::Random
static double Random()
Will return a random double between 0 and 1
Definition: Math.cpp:29
-
Eule::Math::RandomUint
static unsigned int RandomUint()
Will return a random unsigned integer.
Definition: Math.cpp:37
-
HALF_PI
static constexpr double HALF_PI
Pi divided by two.
Definition: Constants.h:9
-
Eule
Definition: Collider.h:4
-
Eule::Math::Oscillate
static double Oscillate(const double a, const double b, const double counter, const double speed)
Kind of like , but it oscillates over instead of , by a given speed.
Definition: Math.cpp:68
- - - - diff --git a/Doxygen/build/Math_8h.html b/Doxygen/build/Math_8h.html deleted file mode 100644 index 1ba7b05..0000000 --- a/Doxygen/build/Math_8h.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Math.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces
-
-
Math.h File Reference
-
-
-
#include <random>
-#include <stdexcept>
-
-Include dependency graph for Math.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  Eule::Math
 Math utility class containing basic functions. More...
 
- - - -

-Namespaces

 Eule
 
-
- - - - diff --git a/Doxygen/build/Math_8h__dep__incl.map b/Doxygen/build/Math_8h__dep__incl.map deleted file mode 100644 index 0305d75..0000000 --- a/Doxygen/build/Math_8h__dep__incl.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Doxygen/build/Math_8h__dep__incl.md5 b/Doxygen/build/Math_8h__dep__incl.md5 deleted file mode 100644 index 439b315..0000000 --- a/Doxygen/build/Math_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -73207d65ad51e6c8ebeaac070e30ef55 \ No newline at end of file diff --git a/Doxygen/build/Math_8h__dep__incl.png b/Doxygen/build/Math_8h__dep__incl.png deleted file mode 100644 index aa88a7f..0000000 Binary files a/Doxygen/build/Math_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Math_8h__incl.map b/Doxygen/build/Math_8h__incl.map deleted file mode 100644 index ab15bad..0000000 --- a/Doxygen/build/Math_8h__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Doxygen/build/Math_8h__incl.md5 b/Doxygen/build/Math_8h__incl.md5 deleted file mode 100644 index a77a0ab..0000000 --- a/Doxygen/build/Math_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -30e3340847668dd6d0fcf574a3f1e946 \ No newline at end of file diff --git a/Doxygen/build/Math_8h__incl.png b/Doxygen/build/Math_8h__incl.png deleted file mode 100644 index f3cbb31..0000000 Binary files a/Doxygen/build/Math_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Math_8h_source.html b/Doxygen/build/Math_8h_source.html deleted file mode 100644 index 410a0a1..0000000 --- a/Doxygen/build/Math_8h_source.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Math.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Math.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include <random>
-
3 #include <stdexcept>
-
4 
-
5 namespace Eule
-
6 {
-
9  class Math
-
10  {
-
11  public:
-
13  [[nodiscard]] static constexpr double Max(const double a, const double b);
-
14 
-
16  [[nodiscard]] static constexpr double Min(const double a, const double b);
-
17 
-
19  [[nodiscard]] static constexpr double Clamp(const double v, const double min, const double max);
-
20 
-
22  [[nodiscard]] static constexpr double Lerp(double a, double b, double t);
-
23 
-
25  [[nodiscard]] static constexpr double Abs(const double a);
-
26 
-
28  [[nodiscard]] static constexpr bool Similar(const double a, const double b, const double epsilon = 0.00001);
-
29 
-
32  [[nodiscard]] static int Mod(const int numerator, const int denominator);
-
33 
-
35  static double Random();
-
36 
-
38  static unsigned int RandomUint();
-
39 
-
41  static unsigned int RandomInt();
-
42 
-
45  static double RandomRange(const double min, const double max);
-
46 
-
49  static int RandomIntRange(const int max, const int min);
-
50 
-
52  static bool RandomChance(const double chance);
-
53 
-
58  static double Oscillate(const double a, const double b, const double counter, const double speed);
-
59 
-
60  private:
-
62  static void InitRng();
-
63 
-
64  static std::mt19937 rng;
-
65  static bool isRngInitialized;
-
66 
-
67  // No instanciation! >:(
-
68  Math();
-
69  };
-
70 
-
71 
-
72 
-
73  /* These are just the inline methods. They have to lie in the header file. */
-
74  /* The more sophisticated methods are in the .cpp */
-
75 
-
76  constexpr inline double Math::Max(double a, double b)
-
77  {
-
78  return (a > b) ? a : b;
-
79  }
-
80 
-
81  constexpr inline double Math::Min(double a, double b)
-
82  {
-
83  return (a < b) ? a : b;
-
84  }
-
85 
-
86  constexpr inline double Math::Clamp(double v, double min, double max)
-
87  {
-
88  return Max(Min(v, max), min);
-
89  }
-
90 
-
91  constexpr inline double Math::Lerp(double a, double b, double t)
-
92  {
-
93  const double it = 1.0 - t;
-
94  return (a * it) + (b * t);
-
95  }
-
96 
-
97  constexpr inline double Math::Abs(const double a)
-
98  {
-
99  return (a > 0.0) ? a : -a;
-
100  }
-
101 
-
102  constexpr inline bool Math::Similar(const double a, const double b, const double epsilon)
-
103  {
-
104  return Abs(a - b) <= epsilon;
-
105  }
-
106 }
-
-
Eule::Math::RandomChance
static bool RandomChance(const double chance)
Will 'roll' a dice, returning true percent of the time.
Definition: Math.cpp:73
-
Eule::Math::Abs
static constexpr double Abs(const double a)
Will return the absolute value of a
Definition: Math.h:97
-
Eule::Math::RandomRange
static double RandomRange(const double min, const double max)
Will return a random double within a range These bounds are INCLUSIVE!
Definition: Math.cpp:56
-
Eule::Math::Lerp
static constexpr double Lerp(double a, double b, double t)
Will return the linear interpolation between a and b by t
Definition: Math.h:91
-
Eule::Math::Mod
static int Mod(const int numerator, const int denominator)
Will compute the actual modulo of a fraction.
Definition: Math.cpp:78
-
Eule::Math::RandomInt
static unsigned int RandomInt()
Will return a random integer.
Definition: Math.cpp:45
-
Eule::Math::Max
static constexpr double Max(const double a, const double b)
Will return the bigger of two values.
Definition: Math.h:76
-
Eule::Math
Math utility class containing basic functions.
Definition: Math.h:9
-
Eule::Math::Clamp
static constexpr double Clamp(const double v, const double min, const double max)
Will return v, but at least min, and at most max
Definition: Math.h:86
-
Eule::Math::Min
static constexpr double Min(const double a, const double b)
Will return the smaller of two values.
Definition: Math.h:81
-
Eule::Math::RandomIntRange
static int RandomIntRange(const int max, const int min)
Will return a random integer within a range.
Definition: Math.cpp:63
-
Eule::Math::Similar
static constexpr bool Similar(const double a, const double b, const double epsilon=0.00001)
Compares two double values with a given accuracy.
Definition: Math.h:102
-
Eule::Math::Random
static double Random()
Will return a random double between 0 and 1
Definition: Math.cpp:29
-
Eule::Math::RandomUint
static unsigned int RandomUint()
Will return a random unsigned integer.
Definition: Math.cpp:37
-
Eule
Definition: Collider.h:4
-
Eule::Math::Oscillate
static double Oscillate(const double a, const double b, const double counter, const double speed)
Kind of like , but it oscillates over instead of , by a given speed.
Definition: Math.cpp:68
- - - - diff --git a/Doxygen/build/Matrix4x4_8cpp.html b/Doxygen/build/Matrix4x4_8cpp.html deleted file mode 100644 index 1501ab2..0000000 --- a/Doxygen/build/Matrix4x4_8cpp.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Matrix4x4.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Namespaces | -Functions
-
-
Matrix4x4.cpp File Reference
-
-
-
#include "Matrix4x4.h"
-#include "Vector3.h"
-#include "Math.h"
-#include <immintrin.h>
-
-Include dependency graph for Matrix4x4.cpp:
-
-
- - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Namespaces

 Eule
 
- - - - - -

-Functions

std::ostream & Eule::operator<< (std::ostream &os, const Matrix4x4 &m)
 
std::wostream & Eule::operator<< (std::wostream &os, const Matrix4x4 &m)
 
-
- - - - diff --git a/Doxygen/build/Matrix4x4_8cpp__incl.map b/Doxygen/build/Matrix4x4_8cpp__incl.map deleted file mode 100644 index c1238c4..0000000 --- a/Doxygen/build/Matrix4x4_8cpp__incl.map +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Doxygen/build/Matrix4x4_8cpp__incl.md5 b/Doxygen/build/Matrix4x4_8cpp__incl.md5 deleted file mode 100644 index 3ea338d..0000000 --- a/Doxygen/build/Matrix4x4_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -249160e44e952572df002a88ede6eb16 \ No newline at end of file diff --git a/Doxygen/build/Matrix4x4_8cpp__incl.png b/Doxygen/build/Matrix4x4_8cpp__incl.png deleted file mode 100644 index 811988b..0000000 Binary files a/Doxygen/build/Matrix4x4_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/Matrix4x4_8cpp_source.html b/Doxygen/build/Matrix4x4_8cpp_source.html deleted file mode 100644 index dde9492..0000000 --- a/Doxygen/build/Matrix4x4_8cpp_source.html +++ /dev/null @@ -1,786 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Matrix4x4.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Matrix4x4.cpp
-
-
-Go to the documentation of this file.
1 #include "Matrix4x4.h"
-
2 #include "Vector3.h"
-
3 #include "Math.h"
-
4 
-
5 //#define _EULE_NO_INTRINSICS_
-
6 #ifndef _EULE_NO_INTRINSICS_
-
7 #include <immintrin.h>
-
8 #endif
-
9 
-
10 using namespace Eule;
-
11 
- -
13 {
-
14  // Create identity matrix
-
15  for (std::size_t i = 0; i < 4; i++)
-
16  for (std::size_t j = 0; j < 4; j++)
-
17  v[i][j] = double(i == j);
-
18 
-
19  return;
-
20 }
-
21 
- -
23 {
-
24  v = other.v;
-
25  return;
-
26 }
-
27 
- -
29 {
-
30  v = std::move(other.v);
-
31  return;
-
32 }
-
33 
- -
35 {
-
36  Matrix4x4 newMatrix;
-
37  newMatrix.p = 1;
-
38 
-
39  #ifndef _EULE_NO_INTRINSICS_
-
40 
-
41 
-
42  /* <= Matrix3x3 multiplication => */
-
43 
-
44  // Load matrix components
-
45  __m256d __va1 = _mm256_set_pd(v[0][0], v[0][0], v[0][0], v[1][0]);
-
46  __m256d __va2 = _mm256_set_pd(v[1][0], v[1][0], v[2][0], v[2][0]);
-
47 
-
48  __m256d __oa1 = _mm256_set_pd(other[0][0], other[0][1], other[0][2], other[0][0]);
-
49  __m256d __oa2 = _mm256_set_pd(other[0][1], other[0][2], other[0][0], other[0][1]);
-
50 
-
51  __m256d __vb1 = _mm256_set_pd(v[0][1], v[0][1], v[0][1], v[1][1]);
-
52  __m256d __vb2 = _mm256_set_pd(v[1][1], v[1][1], v[2][1], v[2][1]);
-
53 
-
54  __m256d __ob1 = _mm256_set_pd(other[1][0], other[1][1], other[1][2], other[1][0]);
-
55  __m256d __ob2 = _mm256_set_pd(other[1][1], other[1][2], other[1][0], other[1][1]);
-
56 
-
57  __m256d __vc1 = _mm256_set_pd(v[0][2], v[0][2], v[0][2], v[1][2]);
-
58  __m256d __vc2 = _mm256_set_pd(v[1][2], v[1][2], v[2][2], v[2][2]);
-
59 
-
60  __m256d __oc1 = _mm256_set_pd(other[2][0], other[2][1], other[2][2], other[2][0]);
-
61  __m256d __oc2 = _mm256_set_pd(other[2][1], other[2][2], other[2][0], other[2][1]);
-
62 
-
63  // Initialize sums
-
64  __m256d __sum1 = _mm256_set1_pd(0);
-
65  __m256d __sum2 = _mm256_set1_pd(0);
-
66 
-
67  // Let's multiply-add them together
-
68  // First, the first block
-
69  __sum1 = _mm256_fmadd_pd(__va1, __oa1, __sum1);
-
70  __sum1 = _mm256_fmadd_pd(__vb1, __ob1, __sum1);
-
71  __sum1 = _mm256_fmadd_pd(__vc1, __oc1, __sum1);
-
72 
-
73  // Then the second block
-
74  __sum2 = _mm256_fmadd_pd(__va2, __oa2, __sum2);
-
75  __sum2 = _mm256_fmadd_pd(__vb2, __ob2, __sum2);
-
76  __sum2 = _mm256_fmadd_pd(__vc2, __oc2, __sum2);
-
77 
-
78  // Retrieve results
-
79  double sum1[4];
-
80  double sum2[4];
-
81 
-
82  _mm256_storeu_pd(sum1, __sum1);
-
83  _mm256_storeu_pd(sum2, __sum2);
-
84 
-
85  // Apply results
-
86  // Block 1
-
87  newMatrix[0][0] = sum1[3];
-
88  newMatrix[0][1] = sum1[2];
-
89  newMatrix[0][2] = sum1[1];
-
90  newMatrix[1][0] = sum1[0];
-
91 
-
92  // Block 2
-
93  newMatrix[1][1] = sum2[3];
-
94  newMatrix[1][2] = sum2[2];
-
95  newMatrix[2][0] = sum2[1];
-
96  newMatrix[2][1] = sum2[0];
-
97 
-
98  // Does not fit in the intrinsic calculation. Might just calculate 'by hand'.
-
99  newMatrix[2][2] = (v[2][0] * other[0][2]) + (v[2][1] * other[1][2]) + (v[2][2] * other[2][2]);
-
100 
-
101 
-
102  /* <= Translation component => */
-
103 
-
104  // Load translation components into registers
-
105  __m256d __transSelf = _mm256_set_pd(0, l, h, d);
-
106  __m256d __transOther = _mm256_set_pd(0, other.l, other.h, other.d);
-
107 
-
108  // Let's add them
-
109  __m256d __sum = _mm256_add_pd(__transSelf, __transOther);
-
110 
-
111  // Retrieve results
-
112  double sum[4];
-
113  _mm256_storeu_pd(sum, __sum);
-
114 
-
115  // Apply them
-
116  newMatrix.d = sum[0];
-
117  newMatrix.h = sum[1];
-
118  newMatrix.l = sum[2];
-
119 
-
120  #else
-
121 
-
122 
-
123  // Rotation, Scaling
-
124  newMatrix[0][0] = (v[0][0] * other[0][0]) + (v[0][1] * other[1][0]) + (v[0][2] * other[2][0]);
-
125  newMatrix[0][1] = (v[0][0] * other[0][1]) + (v[0][1] * other[1][1]) + (v[0][2] * other[2][1]);
-
126  newMatrix[0][2] = (v[0][0] * other[0][2]) + (v[0][1] * other[1][2]) + (v[0][2] * other[2][2]);
-
127 
-
128  newMatrix[1][0] = (v[1][0] * other[0][0]) + (v[1][1] * other[1][0]) + (v[1][2] * other[2][0]);
-
129  newMatrix[1][1] = (v[1][0] * other[0][1]) + (v[1][1] * other[1][1]) + (v[1][2] * other[2][1]);
-
130  newMatrix[1][2] = (v[1][0] * other[0][2]) + (v[1][1] * other[1][2]) + (v[1][2] * other[2][2]);
-
131 
-
132  newMatrix[2][0] = (v[2][0] * other[0][0]) + (v[2][1] * other[1][0]) + (v[2][2] * other[2][0]);
-
133  newMatrix[2][1] = (v[2][0] * other[0][1]) + (v[2][1] * other[1][1]) + (v[2][2] * other[2][1]);
-
134  newMatrix[2][2] = (v[2][0] * other[0][2]) + (v[2][1] * other[1][2]) + (v[2][2] * other[2][2]);
-
135 
-
136 
-
137  // Translation
-
138  newMatrix[0][3] = v[0][3] + other[0][3];
-
139  newMatrix[1][3] = v[1][3] + other[1][3];
-
140  newMatrix[2][3] = v[2][3] + other[2][3];
-
141 
-
142  #endif
-
143 
-
144  return newMatrix;
-
145 }
-
146 
- -
148 {
-
149  *this = *this * other;
-
150  return;
-
151 }
-
152 
- -
154 {
-
155  return *this * other.Inverse3x3();
-
156 }
-
157 
- -
159 {
-
160  *this = *this * other.Inverse3x3();
-
161  return;
-
162 }
-
163 
-
164 Matrix4x4 Matrix4x4::operator*(const double scalar) const
-
165 {
-
166  Matrix4x4 m;
-
167 
-
168  #ifndef _EULE_NO_INTRINSICS_
-
169 
-
170  // Load matrix rows
-
171  __m256d __row0 = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
172  __m256d __row1 = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
173  __m256d __row2 = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
174  __m256d __row3 = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
175 
-
176  // Load scalar
-
177  __m256d __scalar = _mm256_set1_pd(scalar);
-
178 
-
179  // Scale values
-
180  __m256d __sr0 = _mm256_mul_pd(__row0, __scalar);
-
181  __m256d __sr1 = _mm256_mul_pd(__row1, __scalar);
-
182  __m256d __sr2 = _mm256_mul_pd(__row2, __scalar);
-
183  __m256d __sr3 = _mm256_mul_pd(__row3, __scalar);
-
184 
-
185  // Extract results
-
186  _mm256_storeu_pd(m.v[0].data(), __sr0);
-
187  _mm256_storeu_pd(m.v[1].data(), __sr1);
-
188  _mm256_storeu_pd(m.v[2].data(), __sr2);
-
189  _mm256_storeu_pd(m.v[3].data(), __sr3);
-
190 
-
191  #else
-
192 
-
193  for (std::size_t x = 0; x < 4; x++)
-
194  for (std::size_t y = 0; y < 4; y++)
-
195  m[x][y] = v[x][y] * scalar;
-
196 
-
197  #endif
-
198 
-
199  return m;
-
200 }
-
201 
-
202 void Matrix4x4::operator*=(const double scalar)
-
203 {
-
204  *this = *this * scalar;
-
205  return;
-
206 }
-
207 
-
208 Matrix4x4 Matrix4x4::operator/(const double denominator) const
-
209 {
-
210  const double precomputeDivision = 1.0 / denominator;
-
211 
-
212  return *this * precomputeDivision;
-
213 }
-
214 
-
215 void Matrix4x4::operator/=(const double denominator)
-
216 {
-
217  *this = *this / denominator;
-
218  return;
-
219 }
-
220 
- -
222 {
-
223  Matrix4x4 m;
-
224 
-
225  #ifndef _EULE_NO_INTRINSICS_
-
226 
-
227  // Load matrix rows
-
228  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
229  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
230  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
231  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
232 
-
233  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
234  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
235  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
236  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
237 
-
238  // Add rows
-
239  __m256d __sr0 = _mm256_add_pd(__row0a, __row0b);
-
240  __m256d __sr1 = _mm256_add_pd(__row1a, __row1b);
-
241  __m256d __sr2 = _mm256_add_pd(__row2a, __row2b);
-
242  __m256d __sr3 = _mm256_add_pd(__row3a, __row3b);
-
243 
-
244  // Extract results
-
245  _mm256_storeu_pd(m.v[0].data(), __sr0);
-
246  _mm256_storeu_pd(m.v[1].data(), __sr1);
-
247  _mm256_storeu_pd(m.v[2].data(), __sr2);
-
248  _mm256_storeu_pd(m.v[3].data(), __sr3);
-
249 
-
250  #else
-
251 
-
252  for (std::size_t x = 0; x < 4; x++)
-
253  for (std::size_t y = 0; y < 4; y++)
-
254  m[x][y] = v[x][y] + other[x][y];
-
255 
-
256  #endif
-
257 
-
258  return m;
-
259 }
-
260 
- -
262 {
-
263  #ifndef _EULE_NO_INTRINSICS_
-
264  // Doing it again is a tad directer, and thus faster. We avoid an intermittent Matrix4x4 instance
-
265 
-
266  // Load matrix rows
-
267  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
268  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
269  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
270  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
271 
-
272  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
273  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
274  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
275  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
276 
-
277  // Add rows
-
278  __m256d __sr0 = _mm256_add_pd(__row0a, __row0b);
-
279  __m256d __sr1 = _mm256_add_pd(__row1a, __row1b);
-
280  __m256d __sr2 = _mm256_add_pd(__row2a, __row2b);
-
281  __m256d __sr3 = _mm256_add_pd(__row3a, __row3b);
-
282 
-
283  // Extract results
-
284  _mm256_storeu_pd(v[0].data(), __sr0);
-
285  _mm256_storeu_pd(v[1].data(), __sr1);
-
286  _mm256_storeu_pd(v[2].data(), __sr2);
-
287  _mm256_storeu_pd(v[3].data(), __sr3);
-
288 
-
289  #else
-
290 
-
291  *this = *this + other;
-
292 
-
293  #endif
-
294 
-
295  return;
-
296 }
-
297 
- -
299 {
-
300  Matrix4x4 m;
-
301 
-
302  #ifndef _EULE_NO_INTRINSICS_
-
303 
-
304  // Load matrix rows
-
305  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
306  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
307  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
308  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
309 
-
310  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
311  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
312  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
313  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
314 
-
315  // Subtract rows
-
316  __m256d __sr0 = _mm256_sub_pd(__row0a, __row0b);
-
317  __m256d __sr1 = _mm256_sub_pd(__row1a, __row1b);
-
318  __m256d __sr2 = _mm256_sub_pd(__row2a, __row2b);
-
319  __m256d __sr3 = _mm256_sub_pd(__row3a, __row3b);
-
320 
-
321  // Extract results
-
322  _mm256_storeu_pd(m.v[0].data(), __sr0);
-
323  _mm256_storeu_pd(m.v[1].data(), __sr1);
-
324  _mm256_storeu_pd(m.v[2].data(), __sr2);
-
325  _mm256_storeu_pd(m.v[3].data(), __sr3);
-
326 
-
327  #else
-
328 
-
329  for (std::size_t x = 0; x < 4; x++)
-
330  for (std::size_t y = 0; y < 4; y++)
-
331  m[x][y] = v[x][y] - other[x][y];
-
332 
-
333  #endif
-
334 
-
335  return m;
-
336 }
-
337 
- -
339 {
-
340  #ifndef _EULE_NO_INTRINSICS_
-
341  // Doing it again is a tad directer, and thus faster. We avoid an intermittent Matrix4x4 instance
-
342 
-
343  // Load matrix rows
-
344  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
345  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
346  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
347  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
348 
-
349  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
350  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
351  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
352  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
353 
-
354  // Subtract rows
-
355  __m256d __sr0 = _mm256_sub_pd(__row0a, __row0b);
-
356  __m256d __sr1 = _mm256_sub_pd(__row1a, __row1b);
-
357  __m256d __sr2 = _mm256_sub_pd(__row2a, __row2b);
-
358  __m256d __sr3 = _mm256_sub_pd(__row3a, __row3b);
-
359 
-
360  // Extract results
-
361  _mm256_storeu_pd(v[0].data(), __sr0);
-
362  _mm256_storeu_pd(v[1].data(), __sr1);
-
363  _mm256_storeu_pd(v[2].data(), __sr2);
-
364  _mm256_storeu_pd(v[3].data(), __sr3);
-
365 
-
366  #else
-
367 
-
368  * this = *this - other;
-
369 
-
370  #endif
-
371 
-
372  return;
-
373 }
-
374 
-
375 std::array<double, 4>& Matrix4x4::operator[](std::size_t y)
-
376 {
-
377  return v[y];
-
378 }
-
379 
-
380 const std::array<double, 4>& Matrix4x4::operator[](std::size_t y) const
-
381 {
-
382  return v[y];
-
383 }
-
384 
-
385 void Matrix4x4::operator=(const Matrix4x4& other)
-
386 {
-
387  v = other.v;
-
388  return;
-
389 }
-
390 
-
391 void Matrix4x4::operator=(Matrix4x4&& other) noexcept
-
392 {
-
393  v = std::move(other.v);
-
394  return;
-
395 }
-
396 
- -
398 {
-
399  return v == other.v;
-
400 }
-
401 
- -
403 {
-
404  return !operator==(other);
-
405 }
-
406 
- -
408 {
-
409  return Vector3d(d, h, l);
-
410 }
-
411 
- -
413 {
-
414  d = trans.x;
-
415  h = trans.y;
-
416  l = trans.z;
-
417  return;
-
418 }
-
419 
- -
421 {
-
422  Matrix4x4 m(*this);
-
423  m.d = 0;
-
424  m.h = 0;
-
425  m.l = 0;
-
426  return m;
-
427 }
-
428 
- -
430 {
-
431  Matrix4x4 trans(*this); // Keep other cells
-
432 
-
433  for (std::size_t i = 0; i < 3; i++)
-
434  for (std::size_t j = 0; j < 3; j++)
-
435  trans[j][i] = v[i][j];
-
436 
-
437  return trans;
-
438 }
-
439 
- -
441 {
-
442  Matrix4x4 trans;
-
443 
-
444  for (std::size_t i = 0; i < 4; i++)
-
445  for (std::size_t j = 0; j < 4; j++)
-
446  trans[j][i] = v[i][j];
-
447 
-
448  return trans;
-
449 }
-
450 
- -
452 {
-
453  Matrix4x4 m;
-
454 
-
455  m[0][0] = (v[0][0]*o[0][0]) + (v[0][1]*o[1][0]) + (v[0][2]*o[2][0]) + (v[0][3]*o[3][0]);
-
456  m[0][1] = (v[0][0]*o[0][1]) + (v[0][1]*o[1][1]) + (v[0][2]*o[2][1]) + (v[0][3]*o[3][1]);
-
457  m[0][2] = (v[0][0]*o[0][2]) + (v[0][1]*o[1][2]) + (v[0][2]*o[2][2]) + (v[0][3]*o[3][2]);
-
458  m[0][3] = (v[0][0]*o[0][3]) + (v[0][1]*o[1][3]) + (v[0][2]*o[2][3]) + (v[0][3]*o[3][3]);
-
459 
-
460  m[1][0] = (v[1][0]*o[0][0]) + (v[1][1]*o[1][0]) + (v[1][2]*o[2][0]) + (v[1][3]*o[3][0]);
-
461  m[1][1] = (v[1][0]*o[0][1]) + (v[1][1]*o[1][1]) + (v[1][2]*o[2][1]) + (v[1][3]*o[3][1]);
-
462  m[1][2] = (v[1][0]*o[0][2]) + (v[1][1]*o[1][2]) + (v[1][2]*o[2][2]) + (v[1][3]*o[3][2]);
-
463  m[1][3] = (v[1][0]*o[0][3]) + (v[1][1]*o[1][3]) + (v[1][2]*o[2][3]) + (v[1][3]*o[3][3]);
-
464 
-
465  m[2][0] = (v[2][0]*o[0][0]) + (v[2][1]*o[1][0]) + (v[2][2]*o[2][0]) + (v[2][3]*o[3][0]);
-
466  m[2][1] = (v[2][0]*o[0][1]) + (v[2][1]*o[1][1]) + (v[2][2]*o[2][1]) + (v[2][3]*o[3][1]);
-
467  m[2][2] = (v[2][0]*o[0][2]) + (v[2][1]*o[1][2]) + (v[2][2]*o[2][2]) + (v[2][3]*o[3][2]);
-
468  m[2][3] = (v[2][0]*o[0][3]) + (v[2][1]*o[1][3]) + (v[2][2]*o[2][3]) + (v[2][3]*o[3][3]);
-
469 
-
470  m[3][0] = (v[3][0]*o[0][0]) + (v[3][1]*o[1][0]) + (v[3][2]*o[2][0]) + (v[3][3]*o[3][0]);
-
471  m[3][1] = (v[3][0]*o[0][1]) + (v[3][1]*o[1][1]) + (v[3][2]*o[2][1]) + (v[3][3]*o[3][1]);
-
472  m[3][2] = (v[3][0]*o[0][2]) + (v[3][1]*o[1][2]) + (v[3][2]*o[2][2]) + (v[3][3]*o[3][2]);
-
473  m[3][3] = (v[3][0]*o[0][3]) + (v[3][1]*o[1][3]) + (v[3][2]*o[2][3]) + (v[3][3]*o[3][3]);
-
474 
-
475  return m;
-
476 }
-
477 
-
478 Matrix4x4 Matrix4x4::GetCofactors(std::size_t p, std::size_t q, std::size_t n) const
-
479 {
-
480  if (n > 4)
-
481  throw std::runtime_error("Dimension out of range! 0 <= n <= 4");
-
482 
-
483  Matrix4x4 cofs;
-
484 
-
485  std::size_t i = 0;
-
486  std::size_t j = 0;
-
487 
-
488  for (std::size_t y = 0; y < n; y++)
-
489  for (std::size_t x = 0; x < n; x++)
-
490  {
-
491  if ((y != p) && (x != q))
-
492  {
-
493  cofs[i][j] = v[y][x];
-
494  j++;
-
495  }
-
496 
-
497  if (j == n - 1)
-
498  {
-
499  j = 0;
-
500  i++;
-
501  }
-
502  }
-
503 
-
504  return cofs;
-
505 }
-
506 
-
507 /*
-
508 * BEGIN_REF
-
509 * https://www.geeksforgeeks.org/adjoint-inverse-matrix/
-
510 */
-
511 double Matrix4x4::Determinant(std::size_t n) const
-
512 {
-
513  if (n > 4)
-
514  throw std::runtime_error("Dimension out of range! 0 <= n <= 4");
-
515 
-
516  double d = 0;
-
517  double sign = 1;
-
518 
-
519  if (n == 1)
-
520  return v[0][0];
-
521 
-
522  for (std::size_t x = 0; x < n; x++)
-
523  {
-
524  Matrix4x4 cofs = GetCofactors(0, x, n);
-
525 
-
526  d += sign * v[0][x] * cofs.Determinant(n - 1);
-
527  sign = -sign;
-
528  }
-
529 
-
530  return d;
-
531 }
-
532 
-
533 Matrix4x4 Matrix4x4::Adjoint(std::size_t n) const
-
534 {
-
535  if (n > 4)
-
536  throw std::runtime_error("Dimension out of range! 0 <= n <= 4");
-
537 
-
538  Matrix4x4 adj;
-
539  double sign = 1;
-
540 
-
541  for (std::size_t i = 0; i < n; i++)
-
542  for (std::size_t j = 0; j < n; j++)
-
543  {
-
544  Matrix4x4 cofs = GetCofactors(i, j, n);
-
545 
-
546  // sign of adj[j][i] positive if sum of row
-
547  // and column indexes is even.
-
548  sign = ((i + j) % 2 == 0) ? 1 : -1;
-
549 
-
550  // Interchanging rows and columns to get the
-
551  // transpose of the cofactor matrix
-
552  adj[j][i] = sign * (cofs.Determinant(n - 1));
-
553  }
-
554 
-
555  return adj;
-
556 }
-
557 
- -
559 {
-
560  Matrix4x4 inv;
-
561 
-
562  double det = Determinant(3);
-
563  if (det == 0.0)
-
564  throw std::runtime_error("Matrix3x3 not inversible!");
-
565 
-
566  Matrix4x4 adj = Adjoint(3);
-
567 
-
568  for (std::size_t i = 0; i < 3; i++)
-
569  for (std::size_t j = 0; j < 3; j++)
-
570  inv[i][j] = adj[i][j] / det;
-
571 
- -
573 
-
574  return inv;
-
575 }
-
576 
- -
578 {
-
579  Matrix4x4 inv;
-
580 
-
581  double det = Determinant(4);
-
582  if (det == 0.0)
-
583  throw std::runtime_error("Matrix4x4 not inversible!");
-
584 
-
585  Matrix4x4 adj = Adjoint(4);
-
586 
-
587  for (std::size_t i = 0; i < 4; i++)
-
588  for (std::size_t j = 0; j < 4; j++)
-
589  inv[i][j] = adj[i][j] / det;
-
590 
-
591  return inv;
-
592 }
-
593 
-
594 /*
-
595 * END REF
-
596 */
-
597 
- -
599 {
-
600  return (Determinant(3) != 0);
-
601 }
-
602 
- -
604 {
-
605  return (Determinant(4) != 0);
-
606 }
-
607 
-
608 bool Matrix4x4::Similar(const Matrix4x4& other, double epsilon) const
-
609 {
-
610  for (std::size_t i = 0; i < 4; i++)
-
611  for (std::size_t j = 0; j < 4; j++)
-
612  if (!Math::Similar(v[i][j], other[i][j], epsilon))
-
613  return false;
-
614 
-
615  return true;
-
616 }
-
617 
-
618 namespace Eule
-
619 {
-
620  std::ostream& operator<<(std::ostream& os, const Matrix4x4& m)
-
621  {
-
622  os << std::endl;
-
623 
-
624  for (std::size_t y = 0; y < 4; y++)
-
625  {
-
626  for (std::size_t x = 0; x < 4; x++)
-
627  os << " | " << m[y][x];
-
628 
-
629  os << " |" << std::endl;
-
630  }
-
631 
-
632  return os;
-
633  }
-
634 
-
635  std::wostream& operator<<(std::wostream& os, const Matrix4x4& m)
-
636  {
-
637  os << std::endl;
-
638 
-
639  for (std::size_t y = 0; y < 4; y++)
-
640  {
-
641  for (std::size_t x = 0; x < 4; x++)
-
642  os << L" | " << m[y][x];
-
643 
-
644  os << L" |" << std::endl;
-
645  }
-
646 
-
647  return os;
-
648  }
-
649 }
-
-
Eule::Matrix4x4::j
double & j
Definition: Matrix4x4.h:137
-
Eule::Matrix4x4::Inverse4x4
Matrix4x4 Inverse4x4() const
Will return the full 4x4-inverse of this matrix.
Definition: Matrix4x4.cpp:577
-
Eule::Matrix4x4::Adjoint
Matrix4x4 Adjoint(std::size_t n) const
Will return the adjoint of this matrix, by dimension n.
Definition: Matrix4x4.cpp:533
-
Eule::Matrix4x4::operator==
bool operator==(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:397
-
Eule::Matrix4x4::operator+
Matrix4x4 operator+(const Matrix4x4 &other) const
Cellwise addition.
Definition: Matrix4x4.cpp:221
-
Eule::Matrix4x4::i
double & i
Definition: Matrix4x4.h:136
-
Eule::Matrix4x4::operator-=
void operator-=(const Matrix4x4 &other)
Cellwise subtraction.
Definition: Matrix4x4.cpp:338
-
Eule::Matrix4x4::Transpose4x4
Matrix4x4 Transpose4x4() const
Will return the 4x4 transpose of this matrix.
Definition: Matrix4x4.cpp:440
-
Eule::Matrix4x4::operator!=
bool operator!=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:402
-
Eule::Vector3< double >
-
Eule::Matrix4x4::operator[]
std::array< double, 4 > & operator[](std::size_t y)
Definition: Matrix4x4.cpp:375
-
Eule::Matrix4x4::DropTranslationComponents
Matrix4x4 DropTranslationComponents() const
Will return this Matrix4x4 with d,h,l being set to 0.
Definition: Matrix4x4.cpp:420
-
Eule::Matrix4x4::operator*=
void operator*=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:147
-
Eule::Matrix4x4::Inverse3x3
Matrix4x4 Inverse3x3() const
Will return the 3x3-inverse of this matrix.
Definition: Matrix4x4.cpp:558
-
Eule::Matrix4x4::operator/
Matrix4x4 operator/(const Matrix4x4 &other) const
Definition: Matrix4x4.cpp:153
-
Eule::Matrix4x4::v
std::array< std::array< double, 4 >, 4 > v
Array holding the matrices values.
Definition: Matrix4x4.h:44
-
Eule::Matrix4x4::operator*
Matrix4x4 operator*(const Matrix4x4 &other) const
Definition: Matrix4x4.cpp:34
-
Math.h
-
Eule::Vector3d
Vector3< double > Vector3d
Definition: Matrix4x4.h:9
-
Matrix4x4.h
-
Eule::Matrix4x4::operator=
void operator=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:385
-
Eule::Vector3::z
T z
Definition: Vector3.h:96
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Eule::Matrix4x4::IsInversible4x4
bool IsInversible4x4() const
Will check if the entire matrix is inversible.
Definition: Matrix4x4.cpp:603
-
Eule::Matrix4x4::Similar
bool Similar(const Matrix4x4 &other, double epsilon=0.00001) const
Will compare if two matrices are similar to a certain epsilon value.
Definition: Matrix4x4.cpp:608
-
Eule::Matrix4x4::operator/=
void operator/=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:158
-
Eule::Vector3::x
T x
Definition: Vector3.h:94
-
Eule::Matrix4x4::p
double & p
Definition: Matrix4x4.h:143
-
Eule::Math::Similar
static constexpr bool Similar(const double a, const double b, const double epsilon=0.00001)
Compares two double values with a given accuracy.
Definition: Math.h:102
-
Eule::Matrix4x4::IsInversible3x3
bool IsInversible3x3() const
Will check if the 3x3-component is inversible.
Definition: Matrix4x4.cpp:598
-
Eule::Matrix4x4::Transpose3x3
Matrix4x4 Transpose3x3() const
Will return the 3x3 transpose of this matrix.
Definition: Matrix4x4.cpp:429
-
Eule::operator<<
std::ostream & operator<<(std::ostream &os, const Matrix4x4 &m)
Definition: Matrix4x4.cpp:620
-
Eule::Matrix4x4::l
double & l
Definition: Matrix4x4.h:139
-
Eule::Matrix4x4::operator-
Matrix4x4 operator-(const Matrix4x4 &other) const
Cellwise subtraction.
Definition: Matrix4x4.cpp:298
-
Eule::Matrix4x4::Determinant
double Determinant(std::size_t n) const
Will return the determinant, by dimension n.
Definition: Matrix4x4.cpp:511
-
Vector3.h
-
Eule::Matrix4x4::operator+=
void operator+=(const Matrix4x4 &other)
Cellwise addition.
Definition: Matrix4x4.cpp:261
-
Eule::Matrix4x4::Matrix4x4
Matrix4x4()
Definition: Matrix4x4.cpp:12
-
Eule::Matrix4x4::SetTranslationComponent
void SetTranslationComponent(const Vector3d &trans)
Will set d,h,l from a Vector3d(x,y,z)
Definition: Matrix4x4.cpp:412
-
Eule::Matrix4x4::Multiply4x4
Matrix4x4 Multiply4x4(const Matrix4x4 &o) const
Will return the Matrix4x4 of an actual 4x4 multiplication. operator* only does a 3x3.
Definition: Matrix4x4.cpp:451
-
Eule::Matrix4x4::o
double & o
Definition: Matrix4x4.h:142
-
Eule::Matrix4x4::m
double & m
Definition: Matrix4x4.h:140
-
Eule::Matrix4x4::GetCofactors
Matrix4x4 GetCofactors(std::size_t p, std::size_t q, std::size_t n) const
Will return the cofactors of this matrix, by dimension n.
Definition: Matrix4x4.cpp:478
-
Eule::Matrix4x4::GetTranslationComponent
const Vector3d GetTranslationComponent() const
Will return d,h,l as a Vector3d(x,y,z)
Definition: Matrix4x4.cpp:407
-
Eule::Matrix4x4::n
double & n
Definition: Matrix4x4.h:141
-
Eule::Matrix4x4::h
double & h
Definition: Matrix4x4.h:135
-
Eule
Definition: Collider.h:4
-
Eule::Matrix4x4::d
double & d
Definition: Matrix4x4.h:131
-
Eule::Vector3::y
T y
Definition: Vector3.h:95
- - - - diff --git a/Doxygen/build/Matrix4x4_8h.html b/Doxygen/build/Matrix4x4_8h.html deleted file mode 100644 index 5028ec7..0000000 --- a/Doxygen/build/Matrix4x4_8h.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Matrix4x4.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces | -Typedefs
-
-
Matrix4x4.h File Reference
-
-
-
#include <cstring>
-#include <array>
-#include <ostream>
-
-Include dependency graph for Matrix4x4.h:
-
-
- - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - -

-Classes

class  Eule::Vector3< T >
 Representation of a 3d vector. More...
 
class  Eule::Matrix4x4
 A matrix 4x4 class representing a 3d transformation. More...
 
- - - -

-Namespaces

 Eule
 
- - - -

-Typedefs

typedef Vector3< double > Eule::Vector3d
 
-
- - - - diff --git a/Doxygen/build/Matrix4x4_8h__dep__incl.map b/Doxygen/build/Matrix4x4_8h__dep__incl.map deleted file mode 100644 index 702c3aa..0000000 --- a/Doxygen/build/Matrix4x4_8h__dep__incl.map +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Doxygen/build/Matrix4x4_8h__dep__incl.md5 b/Doxygen/build/Matrix4x4_8h__dep__incl.md5 deleted file mode 100644 index 3a01bcf..0000000 --- a/Doxygen/build/Matrix4x4_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5154dfffad2d15709c7dfb374c8ae661 \ No newline at end of file diff --git a/Doxygen/build/Matrix4x4_8h__dep__incl.png b/Doxygen/build/Matrix4x4_8h__dep__incl.png deleted file mode 100644 index c4d2384..0000000 Binary files a/Doxygen/build/Matrix4x4_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Matrix4x4_8h__incl.map b/Doxygen/build/Matrix4x4_8h__incl.map deleted file mode 100644 index fdee30a..0000000 --- a/Doxygen/build/Matrix4x4_8h__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Doxygen/build/Matrix4x4_8h__incl.md5 b/Doxygen/build/Matrix4x4_8h__incl.md5 deleted file mode 100644 index 0c4deeb..0000000 --- a/Doxygen/build/Matrix4x4_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ab989368f6dcbdc7dd60a9f3b05fea6e \ No newline at end of file diff --git a/Doxygen/build/Matrix4x4_8h__incl.png b/Doxygen/build/Matrix4x4_8h__incl.png deleted file mode 100644 index 3627873..0000000 Binary files a/Doxygen/build/Matrix4x4_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Matrix4x4_8h_source.html b/Doxygen/build/Matrix4x4_8h_source.html deleted file mode 100644 index 8358bcd..0000000 --- a/Doxygen/build/Matrix4x4_8h_source.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Matrix4x4.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Matrix4x4.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include <cstring>
-
3 #include <array>
-
4 #include <ostream>
-
5 
-
6 namespace Eule
-
7 {
-
8  template <class T>
-
9  class Vector3;
-
10  typedef Vector3<double> Vector3d;
-
11 
-
36  class Matrix4x4
-
37  {
-
38  public:
-
39  Matrix4x4();
-
40  Matrix4x4(const Matrix4x4& other);
-
41  Matrix4x4(Matrix4x4&& other) noexcept;
-
42 
-
44  std::array<std::array<double, 4>, 4> v;
-
45 
-
46  Matrix4x4 operator*(const Matrix4x4& other) const;
-
47  void operator*=(const Matrix4x4& other);
-
48 
-
49  Matrix4x4 operator/(const Matrix4x4& other) const;
-
50  void operator/=(const Matrix4x4& other);
-
51 
-
53  Matrix4x4 operator*(const double scalar) const;
-
55  void operator*=(const double scalar);
-
56 
-
58  Matrix4x4 operator/(const double denominator) const;
-
60  void operator/=(const double denominator);
-
61 
-
63  Matrix4x4 operator+(const Matrix4x4& other) const;
-
65  void operator+=(const Matrix4x4& other);
-
66 
-
68  Matrix4x4 operator-(const Matrix4x4& other) const;
-
70  void operator-=(const Matrix4x4& other);
-
71 
-
72 
-
73  std::array<double, 4>& operator[](std::size_t y);
-
74  const std::array<double, 4>& operator[](std::size_t y) const;
-
75 
-
76  void operator=(const Matrix4x4& other);
-
77  void operator=(Matrix4x4&& other) noexcept;
-
78 
-
79  bool operator==(const Matrix4x4& other);
-
80  bool operator!=(const Matrix4x4& other);
-
81 
-
83  const Vector3d GetTranslationComponent() const;
-
85  void SetTranslationComponent(const Vector3d& trans);
-
86 
- -
89 
-
91  Matrix4x4 Transpose3x3() const;
-
92 
-
94  Matrix4x4 Transpose4x4() const;
-
95 
-
97  Matrix4x4 Multiply4x4(const Matrix4x4& o) const;
-
98 
-
100  Matrix4x4 GetCofactors(std::size_t p, std::size_t q, std::size_t n) const;
-
101 
-
103  double Determinant(std::size_t n) const;
-
104 
-
106  Matrix4x4 Adjoint(std::size_t n) const;
-
107 
-
110  Matrix4x4 Inverse3x3() const;
-
111 
-
113  Matrix4x4 Inverse4x4() const;
-
114 
-
116  bool IsInversible3x3() const;
-
117 
-
119  bool IsInversible4x4() const;
-
120 
-
122  bool Similar(const Matrix4x4& other, double epsilon = 0.00001) const;
-
123 
-
124  friend std::ostream& operator<<(std::ostream& os, const Matrix4x4& m);
-
125  friend std::wostream& operator<<(std::wostream& os, const Matrix4x4& m);
-
126 
-
127  // Shorthands
-
128  double& a = v[0][0];
-
129  double& b = v[0][1];
-
130  double& c = v[0][2];
-
131  double& d = v[0][3];
-
132  double& e = v[1][0];
-
133  double& f = v[1][1];
-
134  double& g = v[1][2];
-
135  double& h = v[1][3];
-
136  double& i = v[2][0];
-
137  double& j = v[2][1];
-
138  double& k = v[2][2];
-
139  double& l = v[2][3];
-
140  double& m = v[3][0];
-
141  double& n = v[3][1];
-
142  double& o = v[3][2];
-
143  double& p = v[3][3];
-
144  };
-
145 }
-
-
Eule::Matrix4x4::j
double & j
Definition: Matrix4x4.h:137
-
Eule::Matrix4x4::Inverse4x4
Matrix4x4 Inverse4x4() const
Will return the full 4x4-inverse of this matrix.
Definition: Matrix4x4.cpp:577
-
Eule::Matrix4x4::Adjoint
Matrix4x4 Adjoint(std::size_t n) const
Will return the adjoint of this matrix, by dimension n.
Definition: Matrix4x4.cpp:533
-
Eule::Matrix4x4::operator==
bool operator==(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:397
-
Eule::Matrix4x4::operator+
Matrix4x4 operator+(const Matrix4x4 &other) const
Cellwise addition.
Definition: Matrix4x4.cpp:221
-
Eule::Matrix4x4::i
double & i
Definition: Matrix4x4.h:136
-
Eule::Matrix4x4::operator-=
void operator-=(const Matrix4x4 &other)
Cellwise subtraction.
Definition: Matrix4x4.cpp:338
-
Eule::Matrix4x4::Transpose4x4
Matrix4x4 Transpose4x4() const
Will return the 4x4 transpose of this matrix.
Definition: Matrix4x4.cpp:440
-
Eule::Matrix4x4::operator!=
bool operator!=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:402
-
Eule::Vector3
Representation of a 3d vector.
Definition: Matrix4x4.h:9
-
Eule::Matrix4x4::operator[]
std::array< double, 4 > & operator[](std::size_t y)
Definition: Matrix4x4.cpp:375
-
Eule::Matrix4x4::DropTranslationComponents
Matrix4x4 DropTranslationComponents() const
Will return this Matrix4x4 with d,h,l being set to 0.
Definition: Matrix4x4.cpp:420
-
Eule::Matrix4x4::e
double & e
Definition: Matrix4x4.h:132
-
Eule::Matrix4x4::f
double & f
Definition: Matrix4x4.h:133
-
Eule::Matrix4x4::operator*=
void operator*=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:147
-
Eule::Matrix4x4::Inverse3x3
Matrix4x4 Inverse3x3() const
Will return the 3x3-inverse of this matrix.
Definition: Matrix4x4.cpp:558
-
Eule::Matrix4x4::k
double & k
Definition: Matrix4x4.h:138
-
Eule::Matrix4x4::operator/
Matrix4x4 operator/(const Matrix4x4 &other) const
Definition: Matrix4x4.cpp:153
-
Eule::Matrix4x4::v
std::array< std::array< double, 4 >, 4 > v
Array holding the matrices values.
Definition: Matrix4x4.h:44
-
Eule::Matrix4x4::operator*
Matrix4x4 operator*(const Matrix4x4 &other) const
Definition: Matrix4x4.cpp:34
-
Eule::Vector3d
Vector3< double > Vector3d
Definition: Matrix4x4.h:9
-
Eule::Matrix4x4::operator=
void operator=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:385
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Eule::Matrix4x4::IsInversible4x4
bool IsInversible4x4() const
Will check if the entire matrix is inversible.
Definition: Matrix4x4.cpp:603
-
Eule::Matrix4x4::b
double & b
Definition: Matrix4x4.h:129
-
Eule::Matrix4x4::Similar
bool Similar(const Matrix4x4 &other, double epsilon=0.00001) const
Will compare if two matrices are similar to a certain epsilon value.
Definition: Matrix4x4.cpp:608
-
Eule::Matrix4x4::g
double & g
Definition: Matrix4x4.h:134
-
Eule::Matrix4x4::operator/=
void operator/=(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:158
-
Eule::Matrix4x4::operator<<
friend std::ostream & operator<<(std::ostream &os, const Matrix4x4 &m)
Definition: Matrix4x4.cpp:620
-
Eule::Matrix4x4::p
double & p
Definition: Matrix4x4.h:143
-
Eule::Matrix4x4::IsInversible3x3
bool IsInversible3x3() const
Will check if the 3x3-component is inversible.
Definition: Matrix4x4.cpp:598
-
Eule::Matrix4x4::Transpose3x3
Matrix4x4 Transpose3x3() const
Will return the 3x3 transpose of this matrix.
Definition: Matrix4x4.cpp:429
-
Eule::Matrix4x4::l
double & l
Definition: Matrix4x4.h:139
-
Eule::Matrix4x4::operator-
Matrix4x4 operator-(const Matrix4x4 &other) const
Cellwise subtraction.
Definition: Matrix4x4.cpp:298
-
Eule::Matrix4x4::Determinant
double Determinant(std::size_t n) const
Will return the determinant, by dimension n.
Definition: Matrix4x4.cpp:511
-
Eule::Matrix4x4::operator+=
void operator+=(const Matrix4x4 &other)
Cellwise addition.
Definition: Matrix4x4.cpp:261
-
Eule::Matrix4x4::Matrix4x4
Matrix4x4()
Definition: Matrix4x4.cpp:12
-
Eule::Matrix4x4::SetTranslationComponent
void SetTranslationComponent(const Vector3d &trans)
Will set d,h,l from a Vector3d(x,y,z)
Definition: Matrix4x4.cpp:412
-
Eule::Matrix4x4::c
double & c
Definition: Matrix4x4.h:130
-
Eule::Matrix4x4::Multiply4x4
Matrix4x4 Multiply4x4(const Matrix4x4 &o) const
Will return the Matrix4x4 of an actual 4x4 multiplication. operator* only does a 3x3.
Definition: Matrix4x4.cpp:451
-
Eule::Matrix4x4::o
double & o
Definition: Matrix4x4.h:142
-
Eule::Matrix4x4::a
double & a
Definition: Matrix4x4.h:128
-
Eule::Matrix4x4::m
double & m
Definition: Matrix4x4.h:140
-
Eule::Matrix4x4::GetCofactors
Matrix4x4 GetCofactors(std::size_t p, std::size_t q, std::size_t n) const
Will return the cofactors of this matrix, by dimension n.
Definition: Matrix4x4.cpp:478
-
Eule::Matrix4x4::GetTranslationComponent
const Vector3d GetTranslationComponent() const
Will return d,h,l as a Vector3d(x,y,z)
Definition: Matrix4x4.cpp:407
-
Eule::Matrix4x4::n
double & n
Definition: Matrix4x4.h:141
-
Eule::Matrix4x4::h
double & h
Definition: Matrix4x4.h:135
-
Eule
Definition: Collider.h:4
-
Eule::Matrix4x4::d
double & d
Definition: Matrix4x4.h:131
- - - - diff --git a/Doxygen/build/Quaternion_8cpp.html b/Doxygen/build/Quaternion_8cpp.html deleted file mode 100644 index 2ef11a9..0000000 --- a/Doxygen/build/Quaternion_8cpp.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Quaternion.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Namespaces | -Functions
-
-
Quaternion.cpp File Reference
-
-
-
#include "Quaternion.h"
-#include "Constants.h"
-#include <immintrin.h>
-
-Include dependency graph for Quaternion.cpp:
-
-
- - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - -

-Namespaces

 Eule
 
- - - - - -

-Functions

std::ostream & Eule::operator<< (std::ostream &os, const Quaternion &q)
 
std::wostream & Eule::operator<< (std::wostream &os, const Quaternion &q)
 
-
- - - - diff --git a/Doxygen/build/Quaternion_8cpp__incl.map b/Doxygen/build/Quaternion_8cpp__incl.map deleted file mode 100644 index e2e3f3a..0000000 --- a/Doxygen/build/Quaternion_8cpp__incl.map +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/Doxygen/build/Quaternion_8cpp__incl.md5 b/Doxygen/build/Quaternion_8cpp__incl.md5 deleted file mode 100644 index 292eb8c..0000000 --- a/Doxygen/build/Quaternion_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -57d3a0062141f1640bb90bcf0db84cb2 \ No newline at end of file diff --git a/Doxygen/build/Quaternion_8cpp__incl.png b/Doxygen/build/Quaternion_8cpp__incl.png deleted file mode 100644 index 2d003b8..0000000 Binary files a/Doxygen/build/Quaternion_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/Quaternion_8cpp_source.html b/Doxygen/build/Quaternion_8cpp_source.html deleted file mode 100644 index 6768fa0..0000000 --- a/Doxygen/build/Quaternion_8cpp_source.html +++ /dev/null @@ -1,476 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Quaternion.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Quaternion.cpp
-
-
-Go to the documentation of this file.
1 #include "Quaternion.h"
-
2 #include "Constants.h"
-
3 
-
4 //#define _EULE_NO_INTRINSICS_
-
5 #ifndef _EULE_NO_INTRINSICS_
-
6 #include <immintrin.h>
-
7 #endif
-
8 
-
9 using namespace Eule;
-
10 
- -
12 {
-
13  v = Vector4d(0, 0, 0, 1);
-
14  return;
-
15 }
-
16 
- -
18 {
-
19  v = values;
-
20  return;
-
21 }
-
22 
- -
24 {
-
25  v = q.v;
-
26  return;
-
27 }
-
28 
-
29 Quaternion::Quaternion(const Vector3d eulerAngles)
-
30 {
-
31  Vector3d eulerRad = eulerAngles * Deg2Rad;
-
32 
-
33  #ifndef _EULE_NO_INTRINSICS_
-
34 
-
35  // Calculate sine and cos values
-
36  __m256d __vec = _mm256_set_pd(0, eulerRad.z, eulerRad.y, eulerRad.x);
-
37  __vec = _mm256_mul_pd(__vec, _mm256_set1_pd(0.5));
-
38  __m256d __cos;
-
39  __m256d __sin = _mm256_sincos_pd(&__cos, __vec);
-
40 
-
41  // Create multiplication vectors
-
42  double sin[4];
-
43  double cos[4];
-
44 
-
45  _mm256_storeu_pd(sin, __sin);
-
46  _mm256_storeu_pd(cos, __cos);
-
47 
-
48  __m256d __a = _mm256_set_pd(cos[0], cos[0], sin[0], cos[0]);
-
49  __m256d __b = _mm256_set_pd(cos[1], sin[1], cos[1], cos[1]);
-
50  __m256d __c = _mm256_set_pd(sin[2], cos[2], cos[2], cos[2]);
-
51 
-
52  __m256d __d = _mm256_set_pd(sin[0], sin[0], cos[0], sin[0]);
-
53  __m256d __e = _mm256_set_pd(sin[1], cos[1], sin[1], sin[1]);
-
54  __m256d __f = _mm256_set_pd(cos[2], sin[2], sin[2], sin[2]);
-
55 
-
56  // Multiply them
-
57  __m256d __abc;
-
58  __abc = _mm256_mul_pd(__a, __b);
-
59  __abc = _mm256_mul_pd(__abc, __c);
-
60 
-
61  __m256d __def;
-
62  __def = _mm256_mul_pd(__d, __e);
-
63  __def = _mm256_mul_pd(__def, __f);
-
64 
-
65  // Extract results
-
66  double abc[4];
-
67  double def[4];
-
68 
-
69  _mm256_storeu_pd(abc, __abc);
-
70  _mm256_storeu_pd(def, __def);
-
71 
-
72  // Sum them up
-
73  v.w = abc[0] + def[0];
-
74  v.x = abc[1] - def[1];
-
75  v.y = abc[2] + def[2];
-
76  v.z = abc[3] - def[3];
-
77 
-
78  #else
-
79 
-
80  const double cy = cos(eulerRad.z * 0.5);
-
81  const double sy = sin(eulerRad.z * 0.5);
-
82  const double cp = cos(eulerRad.y * 0.5);
-
83  const double sp = sin(eulerRad.y * 0.5);
-
84  const double cr = cos(eulerRad.x * 0.5);
-
85  const double sr = sin(eulerRad.x * 0.5);
-
86 
-
87  v.w = cr * cp * cy + sr * sp * sy;
-
88  v.x = sr * cp * cy - cr * sp * sy;
-
89  v.y = cr * sp * cy + sr * cp * sy;
-
90  v.z = cr * cp * sy - sr * sp * cy;
-
91 
-
92  #endif
-
93 
-
94  return;
-
95 }
-
96 
- -
98 {
-
99  return;
-
100 }
-
101 
- -
103 {
-
104  InvalidateCache();
-
105 
-
106  v = q.v;
-
107 
-
108  return (*this);
-
109 }
-
110 
- -
112 {
-
113  return Quaternion(Vector4d(
-
114  v.w * q.v.x + v.x * q.v.w + v.y * q.v.z - v.z * q.v.y,
-
115  v.w * q.v.y + v.y * q.v.w + v.z * q.v.x - v.x * q.v.z,
-
116  v.w * q.v.z + v.z * q.v.w + v.x * q.v.y - v.y * q.v.x,
-
117  v.w * q.v.w - v.x * q.v.x - v.y * q.v.y - v.z * q.v.z
-
118  ));
-
119 }
-
120 
-
121 Quaternion Quaternion::operator*(const double scale) const
-
122 {
-
123  return Quaternion(v * scale);
-
124 }
-
125 
- -
127 {
-
128  return ((*this) * (q.Inverse()));
-
129 }
-
130 
- -
132 {
-
133  InvalidateCache();
-
134 
-
135  Vector4d bufr = v;
-
136  v.x = bufr.w * q.v.x + bufr.x * q.v.w + bufr.y * q.v.z - bufr.z * q.v.y; // x
-
137  v.y = bufr.w * q.v.y + bufr.y * q.v.w + bufr.z * q.v.x - bufr.x * q.v.z; // y
-
138  v.z = bufr.w * q.v.z + bufr.z * q.v.w + bufr.x * q.v.y - bufr.y * q.v.x; // z
-
139  v.w = bufr.w * q.v.w - bufr.x * q.v.x - bufr.y * q.v.y - bufr.z * q.v.z; // w
-
140 
-
141  return (*this);
-
142 }
-
143 
-
144 Quaternion& Quaternion::operator*=(const double scale)
-
145 {
-
146  InvalidateCache();
-
147 
-
148  v *= scale;
-
149  return (*this);
-
150 }
-
151 
- -
153 {
-
154  InvalidateCache();
-
155 
-
156  (*this) = (*this) * q.Inverse();
-
157  return (*this);
-
158 }
-
159 
- -
161 {
-
162  return RotateVector(p);
-
163 }
-
164 
- -
166 {
-
167  return (v.Similar(q.v)) || (v.Similar(q.v * -1));
-
168 }
-
169 
- -
171 {
-
172  return (!v.Similar(q.v)) && (!v.Similar(q.v * -1));
-
173 }
-
174 
- -
176 {
-
177  if (!isCacheUpToDate_inverse)
-
178  {
-
179  cache_inverse = (Conjugate() * (1.0 / v.SqrMagnitude())).v;
-
180 
-
181  isCacheUpToDate_inverse = true;
-
182  }
-
183 
-
184  return Quaternion(cache_inverse);
-
185 }
-
186 
- -
188 {
-
189  return Quaternion(Vector4d(-v.x, -v.y, -v.z, v.w));
-
190 }
-
191 
- -
193 {
-
194  return (*this) * (1.0 / v.Magnitude());
-
195 }
-
196 
- -
198 {
-
199  Quaternion pure(Vector4d(vec.x, vec.y, vec.z, 0));
-
200 
-
201  //Quaternion f = Conjugate() * pure * (*this);
-
202  //Quaternion f = Inverse().Conjugate() * pure * (this->Inverse());
-
203 
-
204 
-
205  Quaternion f = Inverse() * pure * (*this);
-
206 
-
207  Vector3d toRet;
-
208  toRet.x = f.v.x;
-
209  toRet.y = f.v.y;
-
210  toRet.z = f.v.z;
-
211 
-
212  return toRet;
-
213 }
-
214 
- -
216 {
-
217  if (!isCacheUpToDate_euler)
-
218  {
-
219  Vector3d euler;
-
220  // roll (x-axis rotation)
-
221  double sinr_cosp = 2.0 * (v.w * v.x + v.y * v.z);
-
222  double cosr_cosp = 1.0 - 2.0 * (v.x * v.x + v.y * v.y);
-
223  euler.x = std::atan2(sinr_cosp, cosr_cosp);
-
224 
-
225  // pitch (y-axis rotation)
-
226  double sinp = 2.0 * (v.w * v.y - v.z * v.x);
-
227  if (std::abs(sinp) >= 1)
-
228  euler.y = std::copysign(PI / 2, sinp); // use 90 degrees if out of range
-
229  else
-
230  euler.y = std::asin(sinp);
-
231 
-
232  // yaw (z-axis rotation)
-
233  double siny_cosp = 2.0 * (v.w * v.z + v.x * v.y);
-
234  double cosy_cosp = 1.0 - 2.0 * (v.y * v.y + v.z * v.z);
-
235  euler.z = std::atan2(siny_cosp, cosy_cosp);
-
236 
-
237  euler *= Rad2Deg;
-
238 
-
239  cache_euler = euler;
-
240  isCacheUpToDate_matrix = true;
-
241  }
-
242 
-
243  return cache_euler;
-
244 }
-
245 
- -
247 {
-
248  if (!isCacheUpToDate_matrix)
-
249  {
-
250  Matrix4x4 m;
-
251 
-
252  const double sqx = v.x * v.x;
-
253  const double sqy = v.y * v.y;
-
254  const double sqz = v.z * v.z;
-
255  const double sqw = v.w * v.w;
-
256  const double x = v.x;
-
257  const double y = v.y;
-
258  const double z = v.z;
-
259  const double w = v.w;
-
260 
-
261  // invs (inverse square length) is only required if quaternion is not already normalised
-
262  double invs = 1.0 / (sqx + sqy + sqz + sqw);
-
263 
-
264  // since sqw + sqx + sqy + sqz =1/invs*invs
-
265 
-
266  // yaw (y)
-
267  m.c = ((2 * x * z) - (2 * w * y)) * invs;
-
268  m.f = (1 - (2 * sqx) - (2 * sqz)) * invs;
-
269  m.i = ((2 * x * z) + (2 * w * y)) * invs;
-
270 
-
271  // pitch (x)
-
272  m.a = (1 - (2 * sqy) - (2 * sqz)) * invs;
-
273  m.g = ((2 * y * z) + (2 * w * x)) * invs;
-
274  m.j = ((2 * y * z) - (2 * w * x)) * invs;
-
275 
-
276  // roll (z)
-
277  m.b = ((2 * x * v.y) + (2 * w * z)) * invs;
-
278  m.e = ((2 * x * v.y) - (2 * w * z)) * invs;
-
279  m.k = (1 - (2 * sqx) - (2 * sqy)) * invs;
-
280 
-
281  m.p = 1;
-
282 
-
283  cache_matrix = m;
-
284  isCacheUpToDate_matrix = true;
-
285  }
-
286 
-
287  return cache_matrix;
-
288 }
-
289 
- -
291 {
-
292  return v;
-
293 }
-
294 
- -
296 {
-
297  return other * Conjugate();
-
298 }
-
299 
- -
301 {
-
302  InvalidateCache();
-
303 
-
304  v = values;
-
305 
-
306  return;
-
307 }
-
308 
-
309 Quaternion Quaternion::Lerp(const Quaternion& other, double t) const
-
310 {
-
311  return Quaternion(v.Lerp(other.v, t)).UnitQuaternion();
-
312 }
-
313 
-
314 void Quaternion::InvalidateCache()
-
315 {
-
316  isCacheUpToDate_euler = false;
-
317  isCacheUpToDate_matrix = false;
-
318  isCacheUpToDate_inverse = false;
-
319 
-
320  return;
-
321 }
-
322 
-
323 namespace Eule
-
324 {
-
325  std::ostream& operator<< (std::ostream& os, const Quaternion& q)
-
326  {
-
327  os << "[" << q.v << "]";
-
328  return os;
-
329  }
-
330 
-
331  std::wostream& operator<<(std::wostream& os, const Quaternion& q)
-
332  {
-
333  os << L"[" << q.v << L"]";
-
334  return os;
-
335  }
-
336 }
-
-
Eule::Quaternion::operator/
Quaternion operator/(Quaternion &q) const
Divides (applies)
Definition: Quaternion.cpp:126
-
Eule::Matrix4x4::j
double & j
Definition: Matrix4x4.h:137
-
Eule::Quaternion::ToRotationMatrix
Matrix4x4 ToRotationMatrix() const
Will return a rotation matrix representing this Quaternions rotation.
Definition: Quaternion.cpp:246
-
Eule::Quaternion::GetRawValues
Vector4d GetRawValues() const
Will return the raw four-dimensional values.
Definition: Quaternion.cpp:290
-
PI
static constexpr double PI
Pi up to 50 decimal places.
Definition: Constants.h:6
-
Eule::Matrix4x4::i
double & i
Definition: Matrix4x4.h:136
-
Eule::Quaternion::AngleBetween
Quaternion AngleBetween(const Quaternion &other) const
Will return the value between two Quaternion's as another Quaternion.
Definition: Quaternion.cpp:295
-
Eule::Vector3< double >
-
Eule::Quaternion::Lerp
Quaternion Lerp(const Quaternion &other, double t) const
Will return the lerp result between two quaternions.
Definition: Quaternion.cpp:309
-
Eule::Vector4::x
T x
Definition: Vector4.h:88
-
Eule::Quaternion::UnitQuaternion
Quaternion UnitQuaternion() const
Definition: Quaternion.cpp:192
-
Eule::Matrix4x4::e
double & e
Definition: Matrix4x4.h:132
-
Eule::Vector4::z
T z
Definition: Vector4.h:90
-
Eule::Vector4d
Vector4< double > Vector4d
Definition: Vector4.h:107
-
Constants.h
-
Eule::Matrix4x4::f
double & f
Definition: Matrix4x4.h:133
-
Eule::Quaternion::ToEulerAngles
Vector3d ToEulerAngles() const
Will return euler angles representing this Quaternion's rotation.
Definition: Quaternion.cpp:215
-
Deg2Rad
static constexpr double Deg2Rad
Factor to convert degrees to radians.
Definition: Constants.h:12
-
Eule::Matrix4x4::k
double & k
Definition: Matrix4x4.h:138
-
Eule::Vector4::Lerp
Vector4< double > Lerp(const Vector4< T > &other, double t) const
Will return a lerp result between this and another vector.
Definition: Vector4.cpp:287
-
Eule::Quaternion::operator=
Quaternion operator=(const Quaternion &q)
Copies.
Definition: Quaternion.cpp:102
-
Eule::Vector4::w
T w
Definition: Vector4.h:91
-
Eule::Vector3::z
T z
Definition: Vector3.h:96
-
Eule::Quaternion::~Quaternion
~Quaternion()
Definition: Quaternion.cpp:97
-
Eule::Quaternion::operator*
Quaternion operator*(const Quaternion &q) const
Multiplies (applies)
Definition: Quaternion.cpp:111
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Quaternion.h
-
Eule::Quaternion::operator*=
Quaternion & operator*=(const Quaternion &q)
Also multiplies.
Definition: Quaternion.cpp:131
-
Eule::Vector4::Similar
bool Similar(const Vector4< T > &other, double epsilon=0.00001) const
Will compare if two vectors are similar to a certain epsilon value.
Definition: Vector4.cpp:162
-
Eule::Matrix4x4::b
double & b
Definition: Matrix4x4.h:129
-
Eule::Quaternion::SetRawValues
void SetRawValues(const Vector4d values)
Will set the raw four-dimensional values.
Definition: Quaternion.cpp:300
-
Eule::Vector4::Magnitude
double Magnitude() const
Will compute the magnitude.
Definition: Vector4.cpp:38
-
Eule::Matrix4x4::g
double & g
Definition: Matrix4x4.h:134
-
Eule::Vector3::x
T x
Definition: Vector3.h:94
-
Eule::Matrix4x4::p
double & p
Definition: Matrix4x4.h:143
-
Eule::Quaternion::RotateVector
Vector3d RotateVector(const Vector3d &vec) const
Will rotate a vector by this quaternion.
Definition: Quaternion.cpp:197
-
Eule::Vector4::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector4.cpp:31
-
Eule::Quaternion::Quaternion
Quaternion()
Definition: Quaternion.cpp:11
-
Eule::operator<<
std::ostream & operator<<(std::ostream &os, const Matrix4x4 &m)
Definition: Matrix4x4.cpp:620
-
Rad2Deg
static constexpr double Rad2Deg
Factor to convert radians to degrees.
Definition: Constants.h:15
-
Eule::Quaternion::Conjugate
Quaternion Conjugate() const
Definition: Quaternion.cpp:187
-
Eule::Quaternion::Inverse
Quaternion Inverse() const
Definition: Quaternion.cpp:175
-
Eule::Quaternion::operator==
bool operator==(const Quaternion &q) const
Definition: Quaternion.cpp:165
-
Eule::Matrix4x4::c
double & c
Definition: Matrix4x4.h:130
-
Eule::Quaternion
3D rotation representation
Definition: Quaternion.h:10
-
Eule::Matrix4x4::a
double & a
Definition: Matrix4x4.h:128
-
Eule::Vector4::y
T y
Definition: Vector4.h:89
-
Eule::Quaternion::operator!=
bool operator!=(const Quaternion &q) const
Definition: Quaternion.cpp:170
-
Eule::Quaternion::operator/=
Quaternion & operator/=(const Quaternion &q)
Also divides.
Definition: Quaternion.cpp:152
-
Eule
Definition: Collider.h:4
-
Eule::Vector3::y
T y
Definition: Vector3.h:95
-
Eule::Vector4< double >
- - - - diff --git a/Doxygen/build/Quaternion_8h.html b/Doxygen/build/Quaternion_8h.html deleted file mode 100644 index 06407f5..0000000 --- a/Doxygen/build/Quaternion_8h.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Quaternion.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces
-
-
Quaternion.h File Reference
-
-
-
#include "Vector3.h"
-#include "Vector4.h"
-#include "Matrix4x4.h"
-
-Include dependency graph for Quaternion.h:
-
-
- - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  Eule::Quaternion
 3D rotation representation More...
 
- - - -

-Namespaces

 Eule
 
-
- - - - diff --git a/Doxygen/build/Quaternion_8h__dep__incl.map b/Doxygen/build/Quaternion_8h__dep__incl.map deleted file mode 100644 index 6c700c6..0000000 --- a/Doxygen/build/Quaternion_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/Quaternion_8h__dep__incl.md5 b/Doxygen/build/Quaternion_8h__dep__incl.md5 deleted file mode 100644 index 513a0cb..0000000 --- a/Doxygen/build/Quaternion_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0219cd7956ac16cdc9c91c9605d3285a \ No newline at end of file diff --git a/Doxygen/build/Quaternion_8h__dep__incl.png b/Doxygen/build/Quaternion_8h__dep__incl.png deleted file mode 100644 index 542be95..0000000 Binary files a/Doxygen/build/Quaternion_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Quaternion_8h__incl.map b/Doxygen/build/Quaternion_8h__incl.map deleted file mode 100644 index 774d6a5..0000000 --- a/Doxygen/build/Quaternion_8h__incl.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/Doxygen/build/Quaternion_8h__incl.md5 b/Doxygen/build/Quaternion_8h__incl.md5 deleted file mode 100644 index b35b1f6..0000000 --- a/Doxygen/build/Quaternion_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -634a4ab00421470b51e923cdf9e8b35f \ No newline at end of file diff --git a/Doxygen/build/Quaternion_8h__incl.png b/Doxygen/build/Quaternion_8h__incl.png deleted file mode 100644 index 7dc20f0..0000000 Binary files a/Doxygen/build/Quaternion_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Quaternion_8h_source.html b/Doxygen/build/Quaternion_8h_source.html deleted file mode 100644 index 1c49620..0000000 --- a/Doxygen/build/Quaternion_8h_source.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Quaternion.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Quaternion.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include "Vector3.h"
-
3 #include "Vector4.h"
-
4 #include "Matrix4x4.h"
-
5 
-
6 namespace Eule
-
7 {
-
10  class Quaternion
-
11  {
-
12  public:
-
13  Quaternion();
-
14 
-
16  explicit Quaternion(const Vector4d values);
-
17 
-
19  Quaternion(const Quaternion& q);
-
20 
-
22  Quaternion(const Vector3d eulerAngles);
-
23 
-
24  ~Quaternion();
-
25 
- -
28 
-
30  Quaternion operator* (const Quaternion& q) const;
-
31 
- -
34 
- -
37 
- -
40 
-
42  Vector3d operator* (const Vector3d& p) const;
-
43 
-
44  bool operator== (const Quaternion& q) const;
-
45  bool operator!= (const Quaternion& q) const;
-
46 
-
47  Quaternion Inverse() const;
-
48 
-
49  Quaternion Conjugate() const;
-
50 
-
51  Quaternion UnitQuaternion() const;
-
52 
-
54  Vector3d RotateVector(const Vector3d& vec) const;
-
55 
-
57  Vector3d ToEulerAngles() const;
-
58 
- -
61 
-
63  Vector4d GetRawValues() const;
-
64 
-
66  Quaternion AngleBetween(const Quaternion& other) const;
-
67 
-
69  void SetRawValues(const Vector4d values);
-
70 
-
72  Quaternion Lerp(const Quaternion& other, double t) const;
-
73 
-
74  friend std::ostream& operator<< (std::ostream& os, const Quaternion& q);
-
75  friend std::wostream& operator<< (std::wostream& os, const Quaternion& q);
-
76 
-
77  private:
-
79  Quaternion operator* (const double scale) const;
-
80  Quaternion& operator*= (const double scale);
-
81 
-
83  Vector4d v;
-
84 
-
86  void InvalidateCache();
-
87 
-
88  // Caches for conversions
-
89  mutable bool isCacheUpToDate_euler = false;
-
90  mutable Vector3d cache_euler;
-
91 
-
92  mutable bool isCacheUpToDate_matrix = false;
-
93  mutable Matrix4x4 cache_matrix;
-
94 
-
95  mutable bool isCacheUpToDate_inverse = false;
-
96  mutable Vector4d cache_inverse;
-
97 
-
98  };
-
99 }
-
-
Eule::Quaternion::operator/
Quaternion operator/(Quaternion &q) const
Divides (applies)
Definition: Quaternion.cpp:126
-
Eule::Quaternion::ToRotationMatrix
Matrix4x4 ToRotationMatrix() const
Will return a rotation matrix representing this Quaternions rotation.
Definition: Quaternion.cpp:246
-
Eule::Quaternion::GetRawValues
Vector4d GetRawValues() const
Will return the raw four-dimensional values.
Definition: Quaternion.cpp:290
-
Eule::Quaternion::AngleBetween
Quaternion AngleBetween(const Quaternion &other) const
Will return the value between two Quaternion's as another Quaternion.
Definition: Quaternion.cpp:295
-
Eule::Vector3< double >
-
Eule::Quaternion::Lerp
Quaternion Lerp(const Quaternion &other, double t) const
Will return the lerp result between two quaternions.
Definition: Quaternion.cpp:309
-
Eule::Quaternion::UnitQuaternion
Quaternion UnitQuaternion() const
Definition: Quaternion.cpp:192
-
Eule::Quaternion::ToEulerAngles
Vector3d ToEulerAngles() const
Will return euler angles representing this Quaternion's rotation.
Definition: Quaternion.cpp:215
-
Eule::Quaternion::operator=
Quaternion operator=(const Quaternion &q)
Copies.
Definition: Quaternion.cpp:102
-
Matrix4x4.h
-
Eule::Quaternion::~Quaternion
~Quaternion()
Definition: Quaternion.cpp:97
-
Eule::Quaternion::operator*
Quaternion operator*(const Quaternion &q) const
Multiplies (applies)
Definition: Quaternion.cpp:111
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Eule::Quaternion::operator*=
Quaternion & operator*=(const Quaternion &q)
Also multiplies.
Definition: Quaternion.cpp:131
-
Eule::Quaternion::SetRawValues
void SetRawValues(const Vector4d values)
Will set the raw four-dimensional values.
Definition: Quaternion.cpp:300
-
Vector4.h
-
Eule::Quaternion::RotateVector
Vector3d RotateVector(const Vector3d &vec) const
Will rotate a vector by this quaternion.
Definition: Quaternion.cpp:197
-
Eule::Quaternion::Quaternion
Quaternion()
Definition: Quaternion.cpp:11
-
Vector3.h
-
Eule::Quaternion::Conjugate
Quaternion Conjugate() const
Definition: Quaternion.cpp:187
-
Eule::Quaternion::Inverse
Quaternion Inverse() const
Definition: Quaternion.cpp:175
-
Eule::Quaternion::operator==
bool operator==(const Quaternion &q) const
Definition: Quaternion.cpp:165
-
Eule::Quaternion::operator<<
friend std::ostream & operator<<(std::ostream &os, const Quaternion &q)
Definition: Quaternion.cpp:325
-
Eule::Quaternion
3D rotation representation
Definition: Quaternion.h:10
-
Eule::Quaternion::operator!=
bool operator!=(const Quaternion &q) const
Definition: Quaternion.cpp:170
-
Eule::Quaternion::operator/=
Quaternion & operator/=(const Quaternion &q)
Also divides.
Definition: Quaternion.cpp:152
-
Eule
Definition: Collider.h:4
-
Eule::Vector4< double >
- - - - diff --git a/Doxygen/build/Rect_8h.html b/Doxygen/build/Rect_8h.html deleted file mode 100644 index 8c90be9..0000000 --- a/Doxygen/build/Rect_8h.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Rect.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces
-
-
Rect.h File Reference
-
-
-
#include "../Eule/Vector2.h"
-
-Include dependency graph for Rect.h:
-
-
- - - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

struct  Eule::Rect
 Trivial data structure representing a rectangle. More...
 
- - - -

-Namespaces

 Eule
 
-
- - - - diff --git a/Doxygen/build/Rect_8h__incl.map b/Doxygen/build/Rect_8h__incl.map deleted file mode 100644 index bb6e123..0000000 --- a/Doxygen/build/Rect_8h__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Doxygen/build/Rect_8h__incl.md5 b/Doxygen/build/Rect_8h__incl.md5 deleted file mode 100644 index fa4dce9..0000000 --- a/Doxygen/build/Rect_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5b67ebb9ac1fb7c31a00bb159f2570b2 \ No newline at end of file diff --git a/Doxygen/build/Rect_8h__incl.png b/Doxygen/build/Rect_8h__incl.png deleted file mode 100644 index 7dc6251..0000000 Binary files a/Doxygen/build/Rect_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Rect_8h_source.html b/Doxygen/build/Rect_8h_source.html deleted file mode 100644 index 22ec769..0000000 --- a/Doxygen/build/Rect_8h_source.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Rect.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Rect.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include "../Eule/Vector2.h"
-
3 
-
4 namespace Eule
-
5 {
-
8  struct Rect
-
9  {
- - -
12  };
-
13 }
-
-
Eule::Rect
Trivial data structure representing a rectangle.
Definition: Rect.h:8
-
Eule::Rect::size
Vector2d size
Definition: Rect.h:11
-
Eule::Vector2< double >
-
Eule::Rect::pos
Vector2d pos
Definition: Rect.h:10
-
Eule
Definition: Collider.h:4
- - - - diff --git a/Doxygen/build/TrapazoidalPrismCollider_8cpp.html b/Doxygen/build/TrapazoidalPrismCollider_8cpp.html deleted file mode 100644 index db68681..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8cpp.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/TrapazoidalPrismCollider.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TrapazoidalPrismCollider.cpp File Reference
-
-
-
#include "TrapazoidalPrismCollider.h"
-
-Include dependency graph for TrapazoidalPrismCollider.cpp:
-
-
- - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
- - - - diff --git a/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.map b/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.map deleted file mode 100644 index 0ead1cb..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.md5 b/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.md5 deleted file mode 100644 index 8ece64c..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -35039ee1e3ae4141890e6d8a89d1e486 \ No newline at end of file diff --git a/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.png b/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.png deleted file mode 100644 index 19f4f0c..0000000 Binary files a/Doxygen/build/TrapazoidalPrismCollider_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/TrapazoidalPrismCollider_8cpp_source.html b/Doxygen/build/TrapazoidalPrismCollider_8cpp_source.html deleted file mode 100644 index ffdb8b0..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8cpp_source.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/TrapazoidalPrismCollider.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TrapazoidalPrismCollider.cpp
-
-
-Go to the documentation of this file.
-
2 
-
3 using namespace Eule;
-
4 
- -
6 {
-
7  return;
-
8 }
-
9 
- -
11 {
-
12  vertices = other.vertices;
-
13  faceNormals = other.faceNormals;
-
14 
-
15  return;
-
16 }
-
17 
- -
19 {
-
20  vertices = std::move(other.vertices);
-
21  faceNormals = std::move(other.faceNormals);
-
22 
-
23  return;
-
24 }
-
25 
-
26 const Vector3d& TrapazoidalPrismCollider::GetVertex(std::size_t index) const
-
27 {
-
28  return vertices[index];
-
29 }
-
30 
-
31 void TrapazoidalPrismCollider::SetVertex(std::size_t index, const Vector3d value)
-
32 {
-
33  vertices[index] = value;
-
34  GenerateNormalsFromVertices();
-
35  return;
-
36 }
-
37 
-
38 void TrapazoidalPrismCollider::GenerateNormalsFromVertices()
-
39 {
-
40  faceNormals[(std::size_t)FACE_NORMALS::LEFT] =
-
41  (vertices[BACK|LEFT|BOTTOM] - vertices[FRONT|LEFT|BOTTOM])
-
42  .CrossProduct(vertices[FRONT|LEFT|TOP] - vertices[FRONT|LEFT|BOTTOM]);
-
43 
-
44  faceNormals[(std::size_t)FACE_NORMALS::RIGHT] =
-
45  (vertices[FRONT|RIGHT|TOP] - vertices[FRONT|RIGHT|BOTTOM])
-
46  .CrossProduct(vertices[BACK|RIGHT|BOTTOM] - vertices[FRONT|RIGHT|BOTTOM]);
-
47 
-
48  faceNormals[(std::size_t)FACE_NORMALS::FRONT] =
-
49  (vertices[FRONT|LEFT|TOP] - vertices[FRONT|LEFT|BOTTOM])
-
50  .CrossProduct(vertices[FRONT|RIGHT|BOTTOM] - vertices[FRONT|LEFT|BOTTOM]);
-
51 
-
52  faceNormals[(std::size_t)FACE_NORMALS::BACK] =
-
53  (vertices[BACK|RIGHT|BOTTOM] - vertices[BACK|LEFT|BOTTOM])
-
54  .CrossProduct(vertices[BACK|LEFT|TOP] - vertices[BACK|LEFT|BOTTOM]);
-
55 
-
56  faceNormals[(std::size_t)FACE_NORMALS::TOP] =
-
57  (vertices[BACK|LEFT|TOP] - vertices[FRONT|LEFT|TOP])
-
58  .CrossProduct(vertices[FRONT|RIGHT|TOP] - vertices[FRONT|LEFT|TOP]);
-
59 
-
60  faceNormals[(std::size_t)FACE_NORMALS::BOTTOM] =
-
61  (vertices[FRONT|RIGHT|BOTTOM] - vertices[FRONT|LEFT|BOTTOM])
-
62  .CrossProduct(vertices[BACK|LEFT|BOTTOM] - vertices[FRONT|LEFT|BOTTOM]);
-
63 
-
64  return;
-
65 }
-
66 
-
67 double TrapazoidalPrismCollider::FaceDot(FACE_NORMALS face, const Vector3d& point) const
-
68 {
-
69  // This vertex is the one being used twice to calculate the normals
-
70  std::size_t coreVertexIdx;
-
71  switch (face)
-
72  {
-
73  case FACE_NORMALS::LEFT:
-
74  coreVertexIdx = FRONT|LEFT|BOTTOM;
-
75  break;
-
76 
-
77  case FACE_NORMALS::RIGHT:
-
78  coreVertexIdx = FRONT|RIGHT|BOTTOM;
-
79  break;
-
80 
-
81  case FACE_NORMALS::FRONT:
-
82  coreVertexIdx = FRONT|LEFT|BOTTOM;
-
83  break;
-
84 
-
85  case FACE_NORMALS::BACK:
-
86  coreVertexIdx = BACK|LEFT|BOTTOM;
-
87  break;
-
88 
-
89  case FACE_NORMALS::TOP:
-
90  coreVertexIdx = FRONT|LEFT|TOP;
-
91  break;
-
92 
-
93  case FACE_NORMALS::BOTTOM:
-
94  coreVertexIdx = FRONT|LEFT|BOTTOM;
-
95  break;
-
96  }
-
97 
-
98  if ((std::size_t)face < 6)
-
99  return faceNormals[(std::size_t)face].DotProduct(point - vertices[coreVertexIdx]);
-
100  return 1;
-
101 }
-
102 
- -
104 {
-
105  for (std::size_t i = 0; i < 6; i++)
-
106  if (FaceDot((FACE_NORMALS)i, point) < 0)
-
107  return false;
-
108 
-
109  return true;
-
110 }
-
-
Eule::TrapazoidalPrismCollider::RIGHT
static constexpr std::size_t RIGHT
Definition: TrapazoidalPrismCollider.h:35
-
TrapazoidalPrismCollider.h
-
Eule::TrapazoidalPrismCollider::BACK
static constexpr std::size_t BACK
Definition: TrapazoidalPrismCollider.h:32
-
Eule::Vector3< double >
-
Eule::TrapazoidalPrismCollider::FRONT
static constexpr std::size_t FRONT
Definition: TrapazoidalPrismCollider.h:33
-
Eule::TrapazoidalPrismCollider::BOTTOM
static constexpr std::size_t BOTTOM
Definition: TrapazoidalPrismCollider.h:36
-
Eule::TrapazoidalPrismCollider::operator=
void operator=(const TrapazoidalPrismCollider &other)
Definition: TrapazoidalPrismCollider.cpp:10
-
Eule::TrapazoidalPrismCollider::LEFT
static constexpr std::size_t LEFT
Definition: TrapazoidalPrismCollider.h:34
-
Eule::TrapazoidalPrismCollider::SetVertex
void SetVertex(std::size_t index, const Vector3d value)
Will set the value of a specific vertex.
Definition: TrapazoidalPrismCollider.cpp:31
-
Eule::TrapazoidalPrismCollider::Contains
bool Contains(const Vector3d &point) const override
Tests, if this Collider contains a point.
Definition: TrapazoidalPrismCollider.cpp:103
-
Eule::TrapazoidalPrismCollider
A collider describing a trapazoidal prism.
Definition: TrapazoidalPrismCollider.h:13
-
Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider
TrapazoidalPrismCollider()
Definition: TrapazoidalPrismCollider.cpp:5
-
Eule::TrapazoidalPrismCollider::GetVertex
const Vector3d & GetVertex(std::size_t index) const
Will return a specific vertex.
Definition: TrapazoidalPrismCollider.cpp:26
-
Eule::TrapazoidalPrismCollider::TOP
static constexpr std::size_t TOP
Definition: TrapazoidalPrismCollider.h:37
-
Eule
Definition: Collider.h:4
- - - - diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h.html b/Doxygen/build/TrapazoidalPrismCollider_8h.html deleted file mode 100644 index 439dd56..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8h.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/TrapazoidalPrismCollider.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces
-
-
TrapazoidalPrismCollider.h File Reference
-
-
-
#include "Vector3.h"
-#include "Collider.h"
-#include <array>
-
-Include dependency graph for TrapazoidalPrismCollider.h:
-
-
- - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  Eule::TrapazoidalPrismCollider
 A collider describing a trapazoidal prism. More...
 
- - - -

-Namespaces

 Eule
 
-
- - - - diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.map b/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.map deleted file mode 100644 index 2f2c4ce..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.md5 b/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.md5 deleted file mode 100644 index 7b5ae4c..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -454e47315f9721a30455a4d878793baf \ No newline at end of file diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.png b/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.png deleted file mode 100644 index b277e77..0000000 Binary files a/Doxygen/build/TrapazoidalPrismCollider_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h__incl.map b/Doxygen/build/TrapazoidalPrismCollider_8h__incl.map deleted file mode 100644 index bdf82b8..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8h__incl.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h__incl.md5 b/Doxygen/build/TrapazoidalPrismCollider_8h__incl.md5 deleted file mode 100644 index 140b189..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0a77a0b440c18a81fcd925c01f564edc \ No newline at end of file diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h__incl.png b/Doxygen/build/TrapazoidalPrismCollider_8h__incl.png deleted file mode 100644 index ccb508b..0000000 Binary files a/Doxygen/build/TrapazoidalPrismCollider_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/TrapazoidalPrismCollider_8h_source.html b/Doxygen/build/TrapazoidalPrismCollider_8h_source.html deleted file mode 100644 index 79e9dc3..0000000 --- a/Doxygen/build/TrapazoidalPrismCollider_8h_source.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/TrapazoidalPrismCollider.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
TrapazoidalPrismCollider.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include "Vector3.h"
-
3 #include "Collider.h"
-
4 #include <array>
-
5 
-
6 namespace Eule
-
7 {
- -
14  {
-
15  public:
- -
17  TrapazoidalPrismCollider(const TrapazoidalPrismCollider& other) = default;
-
18  TrapazoidalPrismCollider(TrapazoidalPrismCollider&& other) noexcept = default;
-
19  void operator=(const TrapazoidalPrismCollider& other);
-
20  void operator=(TrapazoidalPrismCollider&& other) noexcept;
-
21 
-
23  const Vector3d& GetVertex(std::size_t index) const;
-
24 
-
26  void SetVertex(std::size_t index, const Vector3d value);
-
27 
-
29  bool Contains(const Vector3d& point) const override;
-
30 
-
31  /* Vertex identifiers */
-
32  static constexpr std::size_t BACK = 0;
-
33  static constexpr std::size_t FRONT = 4;
-
34  static constexpr std::size_t LEFT = 0;
-
35  static constexpr std::size_t RIGHT = 2;
-
36  static constexpr std::size_t BOTTOM = 0;
-
37  static constexpr std::size_t TOP = 1;
-
38 
-
39  private:
-
40  enum class FACE_NORMALS : std::size_t;
-
41 
-
43  void GenerateNormalsFromVertices();
-
44 
-
46  double FaceDot(FACE_NORMALS face, const Vector3d& point) const;
-
47 
-
48  std::array<Vector3d, 8> vertices;
-
49 
-
50 
-
51  // Face normals
-
52  enum class FACE_NORMALS : std::size_t
-
53  {
-
54  LEFT = 0,
-
55  RIGHT = 1,
-
56  FRONT = 2,
-
57  BACK = 3,
-
58  TOP = 4,
-
59  BOTTOM = 5
-
60  };
-
61  std::array<Vector3d, 6> faceNormals;
-
62  };
-
63 }
-
-
Eule::TrapazoidalPrismCollider::RIGHT
static constexpr std::size_t RIGHT
Definition: TrapazoidalPrismCollider.h:35
-
Eule::Collider
Abstract class of a collider domain.
Definition: Collider.h:10
-
Eule::TrapazoidalPrismCollider::BACK
static constexpr std::size_t BACK
Definition: TrapazoidalPrismCollider.h:32
-
Eule::Vector3< double >
-
Eule::TrapazoidalPrismCollider::FRONT
static constexpr std::size_t FRONT
Definition: TrapazoidalPrismCollider.h:33
-
Eule::TrapazoidalPrismCollider::BOTTOM
static constexpr std::size_t BOTTOM
Definition: TrapazoidalPrismCollider.h:36
-
Eule::TrapazoidalPrismCollider::operator=
void operator=(const TrapazoidalPrismCollider &other)
Definition: TrapazoidalPrismCollider.cpp:10
-
Eule::TrapazoidalPrismCollider::LEFT
static constexpr std::size_t LEFT
Definition: TrapazoidalPrismCollider.h:34
-
Eule::TrapazoidalPrismCollider::SetVertex
void SetVertex(std::size_t index, const Vector3d value)
Will set the value of a specific vertex.
Definition: TrapazoidalPrismCollider.cpp:31
-
Eule::TrapazoidalPrismCollider::Contains
bool Contains(const Vector3d &point) const override
Tests, if this Collider contains a point.
Definition: TrapazoidalPrismCollider.cpp:103
-
Vector3.h
-
Eule::TrapazoidalPrismCollider
A collider describing a trapazoidal prism.
Definition: TrapazoidalPrismCollider.h:13
-
Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider
TrapazoidalPrismCollider()
Definition: TrapazoidalPrismCollider.cpp:5
-
Eule::TrapazoidalPrismCollider::GetVertex
const Vector3d & GetVertex(std::size_t index) const
Will return a specific vertex.
Definition: TrapazoidalPrismCollider.cpp:26
-
Collider.h
-
Eule::TrapazoidalPrismCollider::TOP
static constexpr std::size_t TOP
Definition: TrapazoidalPrismCollider.h:37
-
Eule
Definition: Collider.h:4
- - - - diff --git a/Doxygen/build/Vector2_8cpp.html b/Doxygen/build/Vector2_8cpp.html deleted file mode 100644 index d395002..0000000 --- a/Doxygen/build/Vector2_8cpp.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector2.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector2.cpp File Reference
-
-
-
#include "Vector2.h"
-#include "Math.h"
-#include <iostream>
-#include <immintrin.h>
-#include "Vector3.h"
-#include "Vector4.h"
-
-Include dependency graph for Vector2.cpp:
-
-
- - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
- - - - diff --git a/Doxygen/build/Vector2_8cpp__incl.map b/Doxygen/build/Vector2_8cpp__incl.map deleted file mode 100644 index 4c2de4a..0000000 --- a/Doxygen/build/Vector2_8cpp__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/Doxygen/build/Vector2_8cpp__incl.md5 b/Doxygen/build/Vector2_8cpp__incl.md5 deleted file mode 100644 index 67ab26c..0000000 --- a/Doxygen/build/Vector2_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -deda7dfc8579dff3057c04f6c146a99e \ No newline at end of file diff --git a/Doxygen/build/Vector2_8cpp__incl.png b/Doxygen/build/Vector2_8cpp__incl.png deleted file mode 100644 index eecfd00..0000000 Binary files a/Doxygen/build/Vector2_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector2_8cpp_source.html b/Doxygen/build/Vector2_8cpp_source.html deleted file mode 100644 index de69a53..0000000 --- a/Doxygen/build/Vector2_8cpp_source.html +++ /dev/null @@ -1,802 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector2.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector2.cpp
-
-
-Go to the documentation of this file.
1 #include "Vector2.h"
-
2 #include "Math.h"
-
3 #include <iostream>
-
4 
-
5 //#define _EULE_NO_INTRINSICS_
-
6 #ifndef _EULE_NO_INTRINSICS_
-
7 #include <immintrin.h>
-
8 #endif
-
9 
-
10 using namespace Eule;
-
11 
-
12 /*
-
13  NOTE:
-
14  Here you will find bad, unoptimized methods for T=int.
-
15  This is because the compiler needs a method for each type in each instantiation of the template!
-
16  I can't generalize the methods when heavily optimizing for doubles.
-
17  These functions will get called VERY rarely, if ever at all, for T=int, so it's ok.
-
18  The T=int instantiation only exists to store a value-pair of two ints. Not so-much as a vector in terms of vector calculus.
-
19 */
-
20 
-
21 // Good, optimized chad version for doubles
-
22 double Vector2<double>::DotProduct(const Vector2<double>& other) const
-
23 {
-
24  #ifndef _EULE_NO_INTRINSICS_
-
25 
-
26  // Move vector components into registers
-
27  __m256 __vector_self = _mm256_set_ps(0,0,0,0,0,0, (float)y, (float)x);
-
28  __m256 __vector_other = _mm256_set_ps(0,0,0,0,0,0, (float)other.y, (float)other.x);
-
29 
-
30  // Define bitmask, and execute computation
-
31  const int mask = 0x31; // -> 0011 1000 -> use positions 0011 (last 2) of the vectors supplied, and place them in 1000 (first only) element of __dot
-
32  __m256 __dot = _mm256_dp_ps(__vector_self, __vector_other, mask);
-
33 
-
34  // Retrieve result, and return it
-
35  float result[8];
-
36  _mm256_storeu_ps(result, __dot);
-
37 
-
38  return result[0];
-
39 
-
40  #else
-
41  return (x * other.x) +
-
42  (y * other.y);
-
43  #endif
-
44 }
-
45 
-
46 // Slow, lame version for intcels
-
47 double Vector2<int>::DotProduct(const Vector2<int>& other) const
-
48 {
-
49  int iDot = (x * other.x) +
-
50  (y * other.y);
-
51 
-
52  return (double)iDot;
-
53 }
-
54 
-
55 
-
56 
-
57 // Good, optimized chad version for doubles
-
58 double Vector2<double>::CrossProduct(const Vector2<double>& other) const
-
59 {
-
60  return (x * other.y) -
-
61  (y * other.x);
-
62 }
-
63 
-
64 // Slow, lame version for intcels
-
65 double Vector2<int>::CrossProduct(const Vector2<int>& other) const
-
66 {
-
67  int iCross = (x * other.y) -
-
68  (y * other.x);
-
69 
-
70  return (double)iCross;
-
71 }
-
72 
-
73 
-
74 
-
75 // Good, optimized chad version for doubles
-
76 double Vector2<double>::SqrMagnitude() const
-
77 {
-
78  // x.DotProduct(x) == x.SqrMagnitude()
-
79  return DotProduct(*this);
-
80 }
-
81 
-
82 // Slow, lame version for intcels
- -
84 {
-
85  int iSqrMag = x*x + y*y;
-
86  return (double)iSqrMag;
-
87 }
-
88 
-
89 template<typename T>
-
90 double Vector2<T>::Magnitude() const
-
91 {
-
92  return sqrt(SqrMagnitude());
-
93 }
-
94 
-
95 
-
96 
- -
98 {
-
99  #ifndef _EULE_NO_INTRINSICS_
-
100 
-
101  // Load vectors into registers
-
102  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
103  __m256d __vector_scalar = _mm256_set_pd(0, 0, scalar.y, scalar.x);
-
104 
-
105  // Multiply them
-
106  __m256d __product = _mm256_mul_pd(__vector_self, __vector_scalar);
-
107 
-
108  // Retrieve result
-
109  double result[4];
-
110  _mm256_storeu_pd(result, __product);
-
111 
-
112  // Return value
-
113  return Vector2<double>(
-
114  result[0],
-
115  result[1]
-
116  );
-
117 
-
118  #else
-
119 
-
120  return Vector2<double>(
-
121  x * scalar.x,
-
122  y * scalar.y
-
123  );
-
124  #endif
-
125 }
-
126 
- -
128 {
-
129  return Vector2<int>(
-
130  x * scalar.x,
-
131  y * scalar.y
-
132  );
-
133 }
-
134 
-
135 
-
136 template<typename T>
- -
138 {
-
139  Vector2<double> norm(x, y);
-
140  norm.NormalizeSelf();
-
141 
-
142  return norm;
-
143 }
-
144 
-
145 // Method to normalize a Vector2d
- -
147 {
-
148  double length = Magnitude();
-
149 
-
150  // Prevent division by 0
-
151  if (length == 0)
-
152  {
-
153  x = 0;
-
154  y = 0;
-
155  }
-
156  else
-
157  {
-
158  #ifndef _EULE_NO_INTRINSICS_
-
159 
-
160  // Load vector and length into registers
-
161  __m256d __vec = _mm256_set_pd(0, 0, y, x);
-
162  __m256d __len = _mm256_set1_pd(length);
-
163 
-
164  // Divide
-
165  __m256d __prod = _mm256_div_pd(__vec, __len);
-
166 
-
167  // Extract and set values
-
168  double prod[4];
-
169  _mm256_storeu_pd(prod, __prod);
-
170 
-
171  x = prod[0];
-
172  y = prod[1];
-
173 
-
174  #else
-
175 
-
176  x /= length;
-
177  y /= length;
-
178 
-
179  #endif
-
180  }
-
181 
-
182  return;
-
183 }
-
184 
-
185 // You can't normalize an int vector, ffs!
-
186 // But we need an implementation for T=int
- -
188 {
-
189  std::cerr << "Stop normalizing int-vectors!!" << std::endl;
-
190  x = 0;
-
191  y = 0;
-
192 
-
193  return;
-
194 }
-
195 
-
196 
-
197 // Good, optimized chad version for doubles
-
198 void Vector2<double>::LerpSelf(const Vector2<double>& other, double t)
-
199 {
-
200  const double it = 1.0 - t; // Inverse t
-
201 
-
202  #ifndef _EULE_NO_INTRINSICS_
-
203 
-
204  // Move vector components and factors into registers
-
205  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
206  __m256d __vector_other = _mm256_set_pd(0, 0, other.y, other.x);
-
207  __m256d __t = _mm256_set1_pd(t);
-
208  __m256d __it = _mm256_set1_pd(it); // Inverse t
-
209 
-
210  // Procedure:
-
211  // (__vector_self * __it) + (__vector_other * __t)
-
212 
-
213  __m256d __sum = _mm256_set1_pd(0); // this will hold the sum of the two multiplications
-
214 
-
215  __sum = _mm256_fmadd_pd(__vector_self, __it, __sum);
-
216  __sum = _mm256_fmadd_pd(__vector_other, __t, __sum);
-
217 
-
218  // Retrieve result, and apply it
-
219  double sum[4];
-
220  _mm256_storeu_pd(sum, __sum);
-
221 
-
222  x = sum[0];
-
223  y = sum[1];
-
224 
-
225  #else
-
226 
-
227  x = it * x + t * other.x;
-
228  y = it * y + t * other.y;
-
229 
-
230  #endif
-
231 
-
232  return;
-
233 }
-
234 
-
235 
-
236 
-
237 // Slow, lame version for intcels
-
238 void Vector2<int>::LerpSelf(const Vector2<int>& other, double t)
-
239 {
-
240  const double it = 1.0 - t; // Inverse t
-
241 
-
242  x = (int)(it * (double)x + t * (double)other.x);
-
243  y = (int)(it * (double)y + t * (double)other.y);
-
244 
-
245  return;
-
246 }
-
247 
-
248 Vector2<double> Vector2<double>::Lerp(const Vector2<double>& other, double t) const
-
249 {
-
250  Vector2d copy(*this);
-
251  copy.LerpSelf(other, t);
-
252 
-
253  return copy;
-
254 }
-
255 
-
256 Vector2<double> Vector2<int>::Lerp(const Vector2<int>& other, double t) const
-
257 {
-
258  Vector2d copy(this->ToDouble());
-
259  copy.LerpSelf(other.ToDouble(), t);
-
260 
-
261  return copy;
-
262 }
-
263 
-
264 
-
265 
-
266 template<typename T>
-
267 T& Vector2<T>::operator[](std::size_t idx)
-
268 {
-
269  switch (idx)
-
270  {
-
271  case 0:
-
272  return x;
-
273  case 1:
-
274  return y;
-
275  default:
-
276  throw std::out_of_range("Array descriptor on Vector2<T> out of range!");
-
277  }
-
278 }
-
279 
-
280 template<typename T>
-
281 const T& Vector2<T>::operator[](std::size_t idx) const
-
282 {
-
283  switch (idx)
-
284  {
-
285  case 0:
-
286  return x;
-
287  case 1:
-
288  return y;
-
289  default:
-
290  throw std::out_of_range("Array descriptor on Vector2<T> out of range!");
-
291  }
-
292 }
-
293 
-
294 template<typename T>
-
295 bool Vector2<T>::Similar(const Vector2<T>& other, double epsilon) const
-
296 {
-
297  return
-
298  (::Math::Similar(x, other.x, epsilon)) &&
-
299  (::Math::Similar(y, other.y, epsilon))
-
300  ;
-
301 }
-
302 
-
303 template<typename T>
- -
305 {
-
306  return Vector2<int>((int)x, (int)y);
-
307 }
-
308 
-
309 template<typename T>
- -
311 {
-
312  return Vector2<double>((double)x, (double)y);
-
313 }
-
314 
-
315 
- -
317 {
-
318  #ifndef _EULE_NO_INTRINSICS_
-
319 
-
320  // Move vector components and factors into registers
-
321  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
322  __m256d __vector_other = _mm256_set_pd(0, 0, other.y, other.x);
-
323 
-
324  // Add the components
-
325  __m256d __sum = _mm256_add_pd(__vector_self, __vector_other);
-
326 
-
327  // Retrieve and return these values
-
328  double sum[4];
-
329  _mm256_storeu_pd(sum, __sum);
-
330 
-
331  return Vector2<double>(
-
332  sum[0],
-
333  sum[1]
-
334  );
-
335 
-
336  #else
-
337 
-
338  return Vector2<double>(
-
339  x + other.x,
-
340  y + other.y
-
341  );
-
342  #endif
-
343 }
-
344 
-
345 template<typename T>
- -
347 {
-
348  return Vector2<T>(
-
349  x + other.x,
-
350  y + other.y
-
351  );
-
352 }
-
353 
-
354 
-
355 
- -
357 {
-
358  #ifndef _EULE_NO_INTRINSICS_
-
359 
-
360  // Move vector components and factors into registers
-
361  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
362  __m256d __vector_other = _mm256_set_pd(0, 0, other.y, other.x);
-
363 
-
364  // Add the components
-
365  __m256d __sum = _mm256_add_pd(__vector_self, __vector_other);
-
366 
-
367  // Retrieve and apply these values
-
368  double sum[4];
-
369  _mm256_storeu_pd(sum, __sum);
-
370 
-
371  x = sum[0];
-
372  y = sum[1];
-
373 
-
374  #else
-
375 
-
376  x += other.x;
-
377  y += other.y;
-
378 
-
379  #endif
-
380 
-
381  return;
-
382 }
-
383 
-
384 template<typename T>
- -
386 {
-
387  x += other.x;
-
388  y += other.y;
-
389  return;
-
390 }
-
391 
-
392 
-
393 
- -
395 {
-
396  #ifndef _EULE_NO_INTRINSICS_
-
397 
-
398  // Move vector components and factors into registers
-
399  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
400  __m256d __vector_other = _mm256_set_pd(0, 0, other.y, other.x);
-
401 
-
402  // Subtract the components
-
403  __m256d __diff = _mm256_sub_pd(__vector_self, __vector_other);
-
404 
-
405  // Retrieve and return these values
-
406  double diff[4];
-
407  _mm256_storeu_pd(diff, __diff);
-
408 
-
409  return Vector2<double>(
-
410  diff[0],
-
411  diff[1]
-
412  );
-
413 
-
414  #else
-
415 
-
416  return Vector2<double>(
-
417  x - other.x,
-
418  y - other.y
-
419  );
-
420  #endif
-
421 }
-
422 
-
423 template<typename T>
- -
425 {
-
426  return Vector2<T>(
-
427  x - other.x,
-
428  y - other.y
-
429  );
-
430 }
-
431 
-
432 
-
433 
- -
435 {
-
436  #ifndef _EULE_NO_INTRINSICS_
-
437 
-
438  // Move vector components and factors into registers
-
439  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
440  __m256d __vector_other = _mm256_set_pd(0, 0, other.y, other.x);
-
441 
-
442  // Subtract the components
-
443  __m256d __diff = _mm256_sub_pd(__vector_self, __vector_other);
-
444 
-
445  // Retrieve and apply these values
-
446  double diff[4];
-
447  _mm256_storeu_pd(diff, __diff);
-
448 
-
449  x = diff[0];
-
450  y = diff[1];
-
451 
-
452  #else
-
453 
-
454  x -= other.x;
-
455  y -= other.y;
-
456 
-
457  #endif
-
458 
-
459  return;
-
460 }
-
461 
-
462 template<typename T>
- -
464 {
-
465  x -= other.x;
-
466  y -= other.y;
-
467  return;
-
468 }
-
469 
-
470 
-
471 
-
472 Vector2<double> Vector2<double>::operator*(const double scale) const
-
473 {
-
474  #ifndef _EULE_NO_INTRINSICS_
-
475 
-
476  // Move vector components and factors into registers
-
477  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
478  __m256d __scalar = _mm256_set1_pd(scale);
-
479 
-
480  // Multiply the components
-
481  __m256d __prod = _mm256_mul_pd(__vector_self, __scalar);
-
482 
-
483  // Retrieve and return these values
-
484  double prod[4];
-
485  _mm256_storeu_pd(prod, __prod);
-
486 
-
487  return Vector2<double>(
-
488  prod[0],
-
489  prod[1]
-
490  );
-
491 
-
492  #else
-
493 
-
494  return Vector2<double>(
-
495  x * scale,
-
496  y * scale
-
497  );
-
498 
-
499  #endif
-
500 }
-
501 
-
502 template<typename T>
-
503 Vector2<T> Vector2<T>::operator*(const T scale) const
-
504 {
-
505  return Vector2<T>(
-
506  x * scale,
-
507  y * scale
-
508  );
-
509 }
-
510 
-
511 
-
512 
-
513 void Vector2<double>::operator*=(const double scale)
-
514 {
-
515  #ifndef _EULE_NO_INTRINSICS_
-
516 
-
517  // Move vector components and factors into registers
-
518  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
519  __m256d __scalar = _mm256_set1_pd(scale);
-
520 
-
521  // Multiply the components
-
522  __m256d __prod = _mm256_mul_pd(__vector_self, __scalar);
-
523 
-
524  // Retrieve and apply these values
-
525  double prod[4];
-
526  _mm256_storeu_pd(prod, __prod);
-
527 
-
528  x = prod[0];
-
529  y = prod[1];
-
530 
-
531  #else
-
532 
-
533  x *= scale;
-
534  y *= scale;
-
535 
-
536  #endif
-
537 
-
538  return;
-
539 }
-
540 
-
541 template<typename T>
-
542 void Vector2<T>::operator*=(const T scale)
-
543 {
-
544  x *= scale;
-
545  y *= scale;
-
546  return;
-
547 }
-
548 
-
549 
-
550 
-
551 Vector2<double> Vector2<double>::operator/(const double scale) const
-
552 {
-
553  #ifndef _EULE_NO_INTRINSICS_
-
554 
-
555  // Move vector components and factors into registers
-
556  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
557  __m256d __scalar = _mm256_set1_pd(scale);
-
558 
-
559  // Divide the components
-
560  __m256d __prod = _mm256_div_pd(__vector_self, __scalar);
-
561 
-
562  // Retrieve and return these values
-
563  double prod[4];
-
564  _mm256_storeu_pd(prod, __prod);
-
565 
-
566  return Vector2<double>(
-
567  prod[0],
-
568  prod[1]
-
569  );
-
570 
-
571  #else
-
572 
-
573  return Vector2<double>(
-
574  x / scale,
-
575  y / scale
-
576  );
-
577 
-
578  #endif
-
579 }
-
580 
-
581 template<typename T>
-
582 Vector2<T> Vector2<T>::operator/(const T scale) const
-
583 {
-
584  return Vector2<T>(
-
585  x / scale,
-
586  y / scale
-
587  );
-
588 }
-
589 
-
590 
-
591 
-
592 void Vector2<double>::operator/=(const double scale)
-
593 {
-
594  #ifndef _EULE_NO_INTRINSICS_
-
595 
-
596  // Move vector components and factors into registers
-
597  __m256d __vector_self = _mm256_set_pd(0, 0, y, x);
-
598  __m256d __scalar = _mm256_set1_pd(scale);
-
599 
-
600  // Divide the components
-
601  __m256d __prod = _mm256_div_pd(__vector_self, __scalar);
-
602 
-
603  // Retrieve and apply these values
-
604  double prod[4];
-
605  _mm256_storeu_pd(prod, __prod);
-
606 
-
607  x = prod[0];
-
608  y = prod[1];
-
609 
-
610  #else
-
611 
-
612  x /= scale;
-
613  y /= scale;
-
614 
-
615  #endif
-
616  return;
-
617 }
-
618 
-
619 template<typename T>
-
620 void Vector2<T>::operator/=(const T scale)
-
621 {
-
622  x /= scale;
-
623  y /= scale;
-
624  return;
-
625 }
-
626 
-
627 
-
628 
-
629 template<typename T>
- -
631 {
-
632  x = other.x;
-
633  y = other.y;
-
634 
-
635  return;
-
636 }
-
637 
-
638 template<typename T>
-
639 void Vector2<T>::operator=(Vector2<T>&& other) noexcept
-
640 {
-
641  x = std::move(other.x);
-
642  y = std::move(other.y);
-
643 
-
644  return;
-
645 }
-
646 
-
647 template<typename T>
-
648 bool Vector2<T>::operator==(const Vector2<T>& other) const
-
649 {
-
650  return
-
651  (x == other.x) &&
-
652  (y == other.y);
-
653 }
-
654 
-
655 template<typename T>
-
656 bool Vector2<T>::operator!=(const Vector2<T>& other) const
-
657 {
-
658  return !operator==(other);
-
659 }
-
660 
-
661 template<typename T>
- -
663 {
-
664  return Vector2<T>(
-
665  -x,
-
666  -y
-
667  );
-
668 }
-
669 
-
670 // Don't want these includes above the other stuff
-
671 #include "Vector3.h"
-
672 #include "Vector4.h"
-
673 template<typename T>
- -
675 {
-
676  return Vector3<T>(x, y, 0);
-
677 }
-
678 
-
679 template<typename T>
- -
681 {
-
682  return Vector4<T>(x, y, 0, 0);
-
683 }
-
684 
-
685 template class Vector2<int>;
-
686 template class Vector2<double>;
-
687 
-
688 // Some handy predefines
-
689 template <typename T>
-
690 const Vector2<double> Vector2<T>::up(0, 1);
-
691 template <typename T>
-
692 const Vector2<double> Vector2<T>::down(0, -1);
-
693 template <typename T>
- -
695 template <typename T>
-
696 const Vector2<double> Vector2<T>::left(-1, 0);
-
697 template <typename T>
-
698 const Vector2<double> Vector2<T>::one(1, 1);
-
699 template <typename T>
- -
-
Eule::Vector2::DotProduct
double DotProduct(const Vector2< T > &other) const
Will compute the dot product to another Vector2.
Definition: Vector2.cpp:47
-
Eule::Vector3
Representation of a 3d vector.
Definition: Matrix4x4.h:9
-
Math.h
-
Eule::Vector2::ToDouble
Vector2< double > ToDouble() const
Will convert this vector to a Vector2d.
Definition: Vector2.cpp:310
-
Vector2.h
-
Eule::Vector2::NormalizeSelf
void NormalizeSelf()
Will normalize this vector.
Definition: Vector2.cpp:187
-
Vector4.h
-
Eule::Vector2< double >
-
Eule::Vector2::x
T x
Definition: Vector2.h:89
-
Eule::Vector2::y
T y
Definition: Vector2.h:90
-
Vector3.h
-
Eule
Definition: Collider.h:4
-
Eule::Vector2::LerpSelf
void LerpSelf(const Vector2< T > &other, double t)
Will lerp itself towards other by t.
Definition: Vector2.cpp:238
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
- - - - diff --git a/Doxygen/build/Vector2_8h.html b/Doxygen/build/Vector2_8h.html deleted file mode 100644 index a8d925d..0000000 --- a/Doxygen/build/Vector2_8h.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector2.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces | -Typedefs
-
-
Vector2.h File Reference
-
-
-
#include <cstdlib>
-#include <sstream>
-
-Include dependency graph for Vector2.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - -

-Classes

class  Eule::Vector3< T >
 Representation of a 3d vector. More...
 
class  Eule::Vector4< T >
 Representation of a 4d vector. More...
 
class  Eule::Vector2< T >
 Representation of a 2d vector. More...
 
- - - -

-Namespaces

 Eule
 
- - - - - -

-Typedefs

typedef Vector2< int > Eule::Vector2i
 
typedef Vector2< double > Eule::Vector2d
 
-
- - - - diff --git a/Doxygen/build/Vector2_8h__dep__incl.map b/Doxygen/build/Vector2_8h__dep__incl.map deleted file mode 100644 index b7acf5c..0000000 --- a/Doxygen/build/Vector2_8h__dep__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Doxygen/build/Vector2_8h__dep__incl.md5 b/Doxygen/build/Vector2_8h__dep__incl.md5 deleted file mode 100644 index 00b2a8b..0000000 --- a/Doxygen/build/Vector2_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -51ead09597156a62231b4f13138c94a8 \ No newline at end of file diff --git a/Doxygen/build/Vector2_8h__dep__incl.png b/Doxygen/build/Vector2_8h__dep__incl.png deleted file mode 100644 index e20c662..0000000 Binary files a/Doxygen/build/Vector2_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector2_8h__incl.map b/Doxygen/build/Vector2_8h__incl.map deleted file mode 100644 index fc3c55e..0000000 --- a/Doxygen/build/Vector2_8h__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Doxygen/build/Vector2_8h__incl.md5 b/Doxygen/build/Vector2_8h__incl.md5 deleted file mode 100644 index 43ba1de..0000000 --- a/Doxygen/build/Vector2_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -16a3daa708990df0b2edd4c5f8400b48 \ No newline at end of file diff --git a/Doxygen/build/Vector2_8h__incl.png b/Doxygen/build/Vector2_8h__incl.png deleted file mode 100644 index a9c69d4..0000000 Binary files a/Doxygen/build/Vector2_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector2_8h_source.html b/Doxygen/build/Vector2_8h_source.html deleted file mode 100644 index 1569dea..0000000 --- a/Doxygen/build/Vector2_8h_source.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector2.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector2.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include <cstdlib>
-
3 #include <sstream>
-
4 
-
5 namespace Eule
-
6 {
-
7  template <typename T> class Vector3;
-
8  template <typename T> class Vector4;
-
9 
-
13  template <typename T>
-
14  class Vector2
-
15  {
-
16  public:
-
17  Vector2() : x{ 0 }, y{ 0 } {}
-
18  Vector2(T _x, T _y) : x{ _x }, y{ _y } {}
-
19  Vector2(const Vector2<T>& other) = default;
-
20  Vector2(Vector2<T>&& other) noexcept = default;
-
21 
-
23  double DotProduct(const Vector2<T>& other) const;
-
24 
-
26  double CrossProduct(const Vector2<T>& other) const;
-
27 
-
29  double SqrMagnitude() const;
-
30 
-
32  double Magnitude() const;
-
33 
-
35  [[nodiscard]] Vector2<double> Normalize() const;
-
36 
-
38  void NormalizeSelf();
-
39 
-
41  Vector2<T> VectorScale(const Vector2<T>& scalar) const;
-
42 
-
44  void LerpSelf(const Vector2<T>& other, double t);
-
45 
-
47  [[nodiscard]] Vector2<double> Lerp(const Vector2<T>& other, double t) const;
-
48 
-
50  [[nodiscard]] bool Similar(const Vector2<T>& other, double epsilon = 0.00001) const;
-
51 
-
53  [[nodiscard]] Vector2<int> ToInt() const;
-
54 
-
56  [[nodiscard]] Vector2<double> ToDouble() const;
-
57 
-
58  T& operator[](std::size_t idx);
-
59  const T& operator[](std::size_t idx) const;
-
60 
-
61  Vector2<T> operator+(const Vector2<T>& other) const;
-
62  void operator+=(const Vector2<T>& other);
-
63  Vector2<T> operator-(const Vector2<T>& other) const;
-
64  void operator-=(const Vector2<T>& other);
-
65  Vector2<T> operator*(const T scale) const;
-
66  void operator*=(const T scale);
-
67  Vector2<T> operator/(const T scale) const;
-
68  void operator/=(const T scale);
-
69  Vector2<T> operator-() const;
-
70 
-
71  operator Vector3<T>() const;
-
72  operator Vector4<T>() const;
-
73 
-
74  void operator=(const Vector2<T>& other);
-
75  void operator=(Vector2<T>&& other) noexcept;
-
76 
-
77  bool operator==(const Vector2<T>& other) const;
-
78  bool operator!=(const Vector2<T>& other) const;
-
79 
-
80  friend std::ostream& operator<< (std::ostream& os, const Vector2<T>& v)
-
81  {
-
82  return os << "[x: " << v.x << " y: " << v.y << "]";
-
83  }
-
84  friend std::wostream& operator<< (std::wostream& os, const Vector2<T>& v)
-
85  {
-
86  return os << L"[x: " << v.x << L" y: " << v.y << L"]";
-
87  }
-
88 
-
89  T x;
-
90  T y;
-
91 
-
92  // Some handy predefines
-
93  static const Vector2<double> up;
-
94  static const Vector2<double> down;
-
95  static const Vector2<double> right;
-
96  static const Vector2<double> left;
-
97  static const Vector2<double> one;
-
98  static const Vector2<double> zero;
-
99  };
-
100 
- - -
103 }
-
-
Eule::Vector2::Normalize
Vector2< double > Normalize() const
Will return the normalization of this vector.
Definition: Vector2.cpp:137
-
Eule::Vector2::operator!=
bool operator!=(const Vector2< T > &other) const
Definition: Vector2.cpp:656
-
Eule::Vector2::Vector2
Vector2()
Definition: Vector2.h:17
-
Eule::Vector2::operator+
Vector2< T > operator+(const Vector2< T > &other) const
Definition: Vector2.cpp:346
-
Eule::Vector2::operator+=
void operator+=(const Vector2< T > &other)
Definition: Vector2.cpp:385
-
Eule::Vector2::DotProduct
double DotProduct(const Vector2< T > &other) const
Will compute the dot product to another Vector2.
Definition: Vector2.cpp:47
-
Eule::Vector2::left
static const Vector2< double > left
Definition: Vector2.h:96
-
Eule::Vector2::up
static const Vector2< double > up
Definition: Vector2.h:93
-
Eule::Vector2::Magnitude
double Magnitude() const
Will compute the magnitude.
Definition: Vector2.cpp:90
-
Eule::Vector2::operator*=
void operator*=(const T scale)
Definition: Vector2.cpp:542
-
Eule::Vector2::operator/
Vector2< T > operator/(const T scale) const
Definition: Vector2.cpp:582
-
Eule::Vector2::zero
static const Vector2< double > zero
Definition: Vector2.h:98
-
Eule::Vector2::VectorScale
Vector2< T > VectorScale(const Vector2< T > &scalar) const
Will scale self.n by scalar.n.
Definition: Vector2.cpp:127
-
Eule::Vector2::ToInt
Vector2< int > ToInt() const
Will convert this vector to a Vector2i.
Definition: Vector2.cpp:304
-
Eule::Vector2::Vector2
Vector2(T _x, T _y)
Definition: Vector2.h:18
-
Eule::Vector2::operator[]
T & operator[](std::size_t idx)
Definition: Vector2.cpp:267
-
Eule::Vector2::one
static const Vector2< double > one
Definition: Vector2.h:97
-
Eule::Vector2::operator*
Vector2< T > operator*(const T scale) const
Definition: Vector2.cpp:503
-
Eule::Vector2::operator/=
void operator/=(const T scale)
Definition: Vector2.cpp:620
-
Eule::Vector2::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector2.cpp:83
-
Eule::Vector2::Lerp
Vector2< double > Lerp(const Vector2< T > &other, double t) const
Will return a lerp result between this and another vector.
Definition: Vector2.cpp:256
-
Eule::Vector2::CrossProduct
double CrossProduct(const Vector2< T > &other) const
Will compute the cross product to another Vector2.
Definition: Vector2.cpp:65
-
Eule::Vector2::ToDouble
Vector2< double > ToDouble() const
Will convert this vector to a Vector2d.
Definition: Vector2.cpp:310
-
Eule::Vector2::NormalizeSelf
void NormalizeSelf()
Will normalize this vector.
Definition: Vector2.cpp:187
-
Eule::Vector2::operator-
Vector2< T > operator-() const
Definition: Vector2.cpp:662
-
Eule::Vector2::operator<<
friend std::ostream & operator<<(std::ostream &os, const Vector2< T > &v)
Definition: Vector2.h:80
-
Eule::Vector2
Representation of a 2d vector.
Definition: Vector2.h:14
-
Eule::Vector2d
Vector2< double > Vector2d
Definition: Vector2.h:102
-
Eule::Vector2::operator=
void operator=(const Vector2< T > &other)
Conversion method.
Definition: Vector2.cpp:630
-
Eule::Vector2::x
T x
Definition: Vector2.h:89
-
Eule::Vector2::y
T y
Definition: Vector2.h:90
-
Eule::Vector2::Similar
bool Similar(const Vector2< T > &other, double epsilon=0.00001) const
Will compare if two vectors are similar to a certain epsilon value.
Definition: Vector2.cpp:295
-
Eule::Vector2::right
static const Vector2< double > right
Definition: Vector2.h:95
-
Eule::Vector2::operator-=
void operator-=(const Vector2< T > &other)
Definition: Vector2.cpp:463
-
Eule::Vector2::down
static const Vector2< double > down
Definition: Vector2.h:94
-
Eule::Vector2::operator==
bool operator==(const Vector2< T > &other) const
Definition: Vector2.cpp:648
-
Eule
Definition: Collider.h:4
-
Eule::Vector2::LerpSelf
void LerpSelf(const Vector2< T > &other, double t)
Will lerp itself towards other by t.
Definition: Vector2.cpp:238
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
-
Eule::Vector2i
Vector2< int > Vector2i
Definition: Vector2.h:101
- - - - diff --git a/Doxygen/build/Vector3_8cpp.html b/Doxygen/build/Vector3_8cpp.html deleted file mode 100644 index b2c929a..0000000 --- a/Doxygen/build/Vector3_8cpp.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector3.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector3.cpp File Reference
-
-
-
#include "Vector3.h"
-#include "Math.h"
-#include <iostream>
-#include <immintrin.h>
-#include "Vector2.h"
-#include "Vector4.h"
-
-Include dependency graph for Vector3.cpp:
-
-
- - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
- - - - diff --git a/Doxygen/build/Vector3_8cpp__incl.map b/Doxygen/build/Vector3_8cpp__incl.map deleted file mode 100644 index fee91e1..0000000 --- a/Doxygen/build/Vector3_8cpp__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/Doxygen/build/Vector3_8cpp__incl.md5 b/Doxygen/build/Vector3_8cpp__incl.md5 deleted file mode 100644 index 2cda40e..0000000 --- a/Doxygen/build/Vector3_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -789550095991799f4f64ce3613fef44a \ No newline at end of file diff --git a/Doxygen/build/Vector3_8cpp__incl.png b/Doxygen/build/Vector3_8cpp__incl.png deleted file mode 100644 index 4934660..0000000 Binary files a/Doxygen/build/Vector3_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector3_8cpp_source.html b/Doxygen/build/Vector3_8cpp_source.html deleted file mode 100644 index a504a5e..0000000 --- a/Doxygen/build/Vector3_8cpp_source.html +++ /dev/null @@ -1,1007 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector3.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector3.cpp
-
-
-Go to the documentation of this file.
1 #include "Vector3.h"
-
2 #include "Math.h"
-
3 #include <iostream>
-
4 
-
5 //#define _EULE_NO_INTRINSICS_
-
6 #ifndef _EULE_NO_INTRINSICS_
-
7 #include <immintrin.h>
-
8 #endif
-
9 
-
10 using namespace Eule;
-
11 
-
12 /*
-
13  NOTE:
-
14  Here you will find bad, unoptimized methods for T=int.
-
15  This is because the compiler needs a method for each type in each instantiation of the template!
-
16  I can't generalize the methods when heavily optimizing for doubles.
-
17  These functions will get called VERY rarely, if ever at all, for T=int, so it's ok.
-
18  The T=int instantiation only exists to store a value-pair of two ints. Not so-much as a vector in terms of vector calculus.
-
19 */
-
20 
-
21 // Good, optimized chad version for doubles
-
22 double Vector3<double>::DotProduct(const Vector3<double>& other) const
-
23 {
-
24  #ifndef _EULE_NO_INTRINSICS_
-
25 
-
26  // Move vector components into registers
-
27  __m256 __vector_self = _mm256_set_ps(0,0,0,0,0, (float)z, (float)y, (float)x);
-
28  __m256 __vector_other = _mm256_set_ps(0,0,0,0,0, (float)other.z, (float)other.y, (float)other.x);
-
29 
-
30  // Define bitmask, and execute computation
-
31  const int mask = 0x71; // -> 0111 1000 -> use positions 0111 (last 3) of the vectors supplied, and place them in 1000 (first only) element of __dot
-
32  __m256 __dot = _mm256_dp_ps(__vector_self, __vector_other, mask);
-
33 
-
34  // Retrieve result, and return it
-
35  float result[8];
-
36  _mm256_storeu_ps(result, __dot);
-
37 
-
38  return result[0];
-
39 
-
40  #else
-
41  return (x * other.x) +
-
42  (y * other.y) +
-
43  (z * other.z);
-
44  #endif
-
45 }
-
46 
-
47 // Slow, lame version for intcels
-
48 double Vector3<int>::DotProduct(const Vector3<int>& other) const
-
49 {
-
50  int iDot = (x * other.x) + (y * other.y) + (z * other.z);
-
51  return (double)iDot;
-
52 }
-
53 
-
54 
-
55 
-
56 // Good, optimized chad version for doubles
- -
58 {
-
59  Vector3<double> cp;
-
60  cp.x = (y * other.z) - (z * other.y);
-
61  cp.y = (z * other.x) - (x * other.z);
-
62  cp.z = (x * other.y) - (y * other.x);
-
63 
-
64  return cp;
-
65 }
-
66 
-
67 // Slow, lame version for intcels
- -
69 {
-
70  Vector3<double> cp;
-
71  cp.x = ((double)y * (double)other.z) - ((double)z * (double)other.y);
-
72  cp.y = ((double)z * (double)other.x) - ((double)x * (double)other.z);
-
73  cp.z = ((double)x * (double)other.y) - ((double)y * (double)other.x);
-
74 
-
75  return cp;
-
76 }
-
77 
-
78 
-
79 
-
80 // Good, optimized chad version for doubles
-
81 double Vector3<double>::SqrMagnitude() const
-
82 {
-
83  // x.DotProduct(x) == x.SqrMagnitude()
-
84  return DotProduct(*this);
-
85 }
-
86 
-
87 // Slow, lame version for intcels
- -
89 {
-
90  int iSqrMag = x*x + y*y + z*z;
-
91  return (double)iSqrMag;
-
92 }
-
93 
-
94 template <typename T>
-
95 double Vector3<T>::Magnitude() const
-
96 {
-
97  return sqrt(SqrMagnitude());
-
98 }
-
99 
-
100 
-
101 
- -
103 {
-
104  #ifndef _EULE_NO_INTRINSICS_
-
105 
-
106  // Load vectors into registers
-
107  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
108  __m256d __vector_scalar = _mm256_set_pd(0, scalar.z, scalar.y, scalar.x);
-
109 
-
110  // Multiply them
-
111  __m256d __product = _mm256_mul_pd(__vector_self, __vector_scalar);
-
112 
-
113  // Retrieve result
-
114  double result[4];
-
115  _mm256_storeu_pd(result, __product);
-
116 
-
117  // Return value
-
118  return Vector3<double>(
-
119  result[0],
-
120  result[1],
-
121  result[2]
-
122  );
-
123 
-
124  #else
-
125 
-
126  return Vector3<double>(
-
127  x * scalar.x,
-
128  y * scalar.y,
-
129  z * scalar.z
-
130  );
-
131 
-
132  #endif
-
133 }
-
134 
- -
136 {
-
137  return Vector3<int>(
-
138  x * scalar.x,
-
139  y * scalar.y,
-
140  z * scalar.z
-
141  );
-
142 }
-
143 
-
144 
-
145 
-
146 template<typename T>
- -
148 {
-
149  Vector3<double> norm(x, y, z);
-
150  norm.NormalizeSelf();
-
151 
-
152  return norm;
-
153 }
-
154 
-
155 // Method to normalize a Vector3d
- -
157 {
-
158  const double length = Magnitude();
-
159 
-
160  // Prevent division by 0
-
161  if (length == 0)
-
162  {
-
163  x = 0;
-
164  y = 0;
-
165  z = 0;
-
166  }
-
167  else
-
168  {
-
169  #ifndef _EULE_NO_INTRINSICS_
-
170 
-
171  // Load vector and length into registers
-
172  __m256d __vec = _mm256_set_pd(0, z, y, x);
-
173  __m256d __len = _mm256_set1_pd(length);
-
174 
-
175  // Divide
-
176  __m256d __prod = _mm256_div_pd(__vec, __len);
-
177 
-
178  // Extract and set values
-
179  double prod[4];
-
180  _mm256_storeu_pd(prod, __prod);
-
181 
-
182  x = prod[0];
-
183  y = prod[1];
-
184  z = prod[2];
-
185 
-
186  #else
-
187 
-
188  x /= length;
-
189  y /= length;
-
190  z /= length;
-
191 
-
192  #endif
-
193  }
-
194 
-
195  return;
-
196 }
-
197 
-
198 // You can't normalize an int vector, ffs!
-
199 // But we need an implementation for T=int
- -
201 {
-
202  std::cerr << "Stop normalizing int-vectors!!" << std::endl;
-
203  x = 0;
-
204  y = 0;
-
205  z = 0;
-
206 
-
207  return;
-
208 }
-
209 
-
210 
-
211 
-
212 template<typename T>
-
213 bool Vector3<T>::Similar(const Vector3<T>& other, double epsilon) const
-
214 {
-
215  return
-
216  (::Math::Similar(x, other.x, epsilon)) &&
-
217  (::Math::Similar(y, other.y, epsilon)) &&
-
218  (::Math::Similar(z, other.z, epsilon))
-
219  ;
-
220 }
-
221 
-
222 template<typename T>
- -
224 {
-
225  return Vector3<int>((int)x, (int)y, (int)z);
-
226 }
-
227 
-
228 template<typename T>
- -
230 {
-
231  return Vector3<double>((double)x, (double)y, (double)z);
-
232 }
-
233 
-
234 template<typename T>
-
235 T& Vector3<T>::operator[](std::size_t idx)
-
236 {
-
237  switch (idx)
-
238  {
-
239  case 0:
-
240  return x;
-
241  case 1:
-
242  return y;
-
243  case 2:
-
244  return z;
-
245  default:
-
246  throw std::out_of_range("Array descriptor on Vector3<T> out of range!");
-
247  }
-
248 }
-
249 
-
250 template<typename T>
-
251 const T& Vector3<T>::operator[](std::size_t idx) const
-
252 {
-
253  switch (idx)
-
254  {
-
255  case 0:
-
256  return x;
-
257  case 1:
-
258  return y;
-
259  case 2:
-
260  return z;
-
261  default:
-
262  throw std::out_of_range("Array descriptor on Vector3<T> out of range!");
-
263  }
-
264 }
-
265 
-
266 
-
267 
-
268 // Good, optimized chad version for doubles
-
269 void Vector3<double>::LerpSelf(const Vector3<double>& other, double t)
-
270 {
-
271  const double it = 1.0 - t; // Inverse t
-
272 
-
273  #ifndef _EULE_NO_INTRINSICS_
-
274 
-
275  // Move vector components and factors into registers
-
276  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
277  __m256d __vector_other = _mm256_set_pd(0, other.z, other.y, other.x);
-
278  __m256d __t = _mm256_set1_pd(t);
-
279  __m256d __it = _mm256_set1_pd(it); // Inverse t
-
280 
-
281  // Procedure:
-
282  // (__vector_self * __it) + (__vector_other * __t)
-
283 
-
284  __m256d __sum = _mm256_set1_pd(0); // this will hold the sum of the two multiplications
-
285 
-
286  __sum = _mm256_fmadd_pd(__vector_self, __it, __sum);
-
287  __sum = _mm256_fmadd_pd(__vector_other, __t, __sum);
-
288 
-
289  // Retrieve result, and apply it
-
290  double sum[4];
-
291  _mm256_storeu_pd(sum, __sum);
-
292 
-
293  x = sum[0];
-
294  y = sum[1];
-
295  z = sum[2];
-
296 
-
297  #else
-
298 
-
299  x = it*x + t*other.x;
-
300  y = it*y + t*other.y;
-
301  z = it*z + t*other.z;
-
302 
-
303  #endif
-
304 
-
305  return;
-
306 }
-
307 
-
308 
-
309 
-
310 // Slow, lame version for intcels
-
311 void Vector3<int>::LerpSelf(const Vector3<int>& other, double t)
-
312 {
-
313  const double it = 1.0 - t; // Inverse t
-
314 
-
315  x = (int)(it * (double)x + t * (double)other.x);
-
316  y = (int)(it * (double)y + t * (double)other.y);
-
317  z = (int)(it * (double)z + t * (double)other.z);
-
318 
-
319  return;
-
320 }
-
321 
-
322 Vector3<double> Vector3<double>::Lerp(const Vector3<double>& other, double t) const
-
323 {
-
324  Vector3d copy(*this);
-
325  copy.LerpSelf(other, t);
-
326 
-
327  return copy;
-
328 }
-
329 
-
330 Vector3<double> Vector3<int>::Lerp(const Vector3<int>& other, double t) const
-
331 {
-
332  Vector3d copy(this->ToDouble());
-
333  copy.LerpSelf(other.ToDouble(), t);
-
334 
-
335  return copy;
-
336 }
-
337 
-
338 
-
339 
- -
341 {
-
342  #ifndef _EULE_NO_INTRINSICS_
-
343 
-
344  // Move vector components and factors into registers
-
345  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
346  __m256d __vector_other = _mm256_set_pd(0, other.z, other.y, other.x);
-
347 
-
348  // Add the components
-
349  __m256d __sum = _mm256_add_pd(__vector_self, __vector_other);
-
350 
-
351  // Retrieve and return these values
-
352  double sum[4];
-
353  _mm256_storeu_pd(sum, __sum);
-
354 
-
355  return Vector3<double>(
-
356  sum[0],
-
357  sum[1],
-
358  sum[2]
-
359  );
-
360 
-
361  #else
-
362 
-
363  return Vector3<double>(
-
364  x + other.x,
-
365  y + other.y,
-
366  z + other.z
-
367  );
-
368  #endif
-
369 }
-
370 
-
371 template<typename T>
- -
373 {
-
374  return Vector3<T>(
-
375  x + other.x,
-
376  y + other.y,
-
377  z + other.z
-
378  );
-
379 }
-
380 
-
381 
-
382 
- -
384 {
-
385  #ifndef _EULE_NO_INTRINSICS_
-
386 
-
387  // Move vector components and factors into registers
-
388  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
389  __m256d __vector_other = _mm256_set_pd(0, other.z, other.y, other.x);
-
390 
-
391  // Add the components
-
392  __m256d __sum = _mm256_add_pd(__vector_self, __vector_other);
-
393 
-
394  // Retrieve and apply these values
-
395  double sum[4];
-
396  _mm256_storeu_pd(sum, __sum);
-
397 
-
398  x = sum[0];
-
399  y = sum[1];
-
400  z = sum[2];
-
401 
-
402  #else
-
403 
-
404  x += other.x;
-
405  y += other.y;
-
406  z += other.z;
-
407 
-
408  #endif
-
409 
-
410  return;
-
411 }
-
412 
-
413 template<typename T>
- -
415 {
-
416  x += other.x;
-
417  y += other.y;
-
418  z += other.z;
-
419  return;
-
420 }
-
421 
-
422 
-
423 
- -
425 {
-
426  #ifndef _EULE_NO_INTRINSICS_
-
427 
-
428  // Move vector components and factors into registers
-
429  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
430  __m256d __vector_other = _mm256_set_pd(0, other.z, other.y, other.x);
-
431 
-
432  // Subtract the components
-
433  __m256d __diff = _mm256_sub_pd(__vector_self, __vector_other);
-
434 
-
435  // Retrieve and return these values
-
436  double diff[4];
-
437  _mm256_storeu_pd(diff, __diff);
-
438 
-
439  return Vector3<double>(
-
440  diff[0],
-
441  diff[1],
-
442  diff[2]
-
443  );
-
444 
-
445  #else
-
446 
-
447  return Vector3<double>(
-
448  x - other.x,
-
449  y - other.y,
-
450  z - other.z
-
451  );
-
452  #endif
-
453 }
-
454 
-
455 template<typename T>
- -
457 {
-
458  return Vector3<T>(
-
459  x - other.x,
-
460  y - other.y,
-
461  z - other.z
-
462  );
-
463 }
-
464 
-
465 
-
466 
- -
468 {
-
469  #ifndef _EULE_NO_INTRINSICS_
-
470 
-
471  // Move vector components and factors into registers
-
472  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
473  __m256d __vector_other = _mm256_set_pd(0, other.z, other.y, other.x);
-
474 
-
475  // Subtract the components
-
476  __m256d __diff = _mm256_sub_pd(__vector_self, __vector_other);
-
477 
-
478  // Retrieve and apply these values
-
479  double diff[4];
-
480  _mm256_storeu_pd(diff, __diff);
-
481 
-
482  x = diff[0];
-
483  y = diff[1];
-
484  z = diff[2];
-
485 
-
486  #else
-
487 
-
488  x -= other.x;
-
489  y -= other.y;
-
490  z -= other.z;
-
491 
-
492  #endif
-
493 
-
494  return;
-
495 }
-
496 
-
497 template<typename T>
- -
499 {
-
500  x -= other.x;
-
501  y -= other.y;
-
502  z -= other.z;
-
503  return;
-
504 }
-
505 
-
506 
-
507 
-
508 Vector3<double> Vector3<double>::operator*(const double scale) const
-
509 {
-
510  #ifndef _EULE_NO_INTRINSICS_
-
511 
-
512  // Move vector components and factors into registers
-
513  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
514  __m256d __scalar = _mm256_set1_pd(scale);
-
515 
-
516  // Multiply the components
-
517  __m256d __prod = _mm256_mul_pd(__vector_self, __scalar);
-
518 
-
519  // Retrieve and return these values
-
520  double prod[4];
-
521  _mm256_storeu_pd(prod, __prod);
-
522 
-
523  return Vector3<double>(
-
524  prod[0],
-
525  prod[1],
-
526  prod[2]
-
527  );
-
528 
-
529  #else
-
530 
-
531  return Vector3<double>(
-
532  x * scale,
-
533  y * scale,
-
534  z * scale
-
535  );
-
536 
-
537  #endif
-
538 }
-
539 
-
540 template<typename T>
-
541 Vector3<T> Vector3<T>::operator*(const T scale) const
-
542 {
-
543  return Vector3<T>(
-
544  x * scale,
-
545  y * scale,
-
546  z * scale
-
547  );
-
548 }
-
549 
-
550 
-
551 
-
552 void Vector3<double>::operator*=(const double scale)
-
553 {
-
554  #ifndef _EULE_NO_INTRINSICS_
-
555 
-
556  // Move vector components and factors into registers
-
557  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
558  __m256d __scalar = _mm256_set1_pd(scale);
-
559 
-
560  // Multiply the components
-
561  __m256d __prod = _mm256_mul_pd(__vector_self, __scalar);
-
562 
-
563  // Retrieve and apply these values
-
564  double prod[4];
-
565  _mm256_storeu_pd(prod, __prod);
-
566 
-
567  x = prod[0];
-
568  y = prod[1];
-
569  z = prod[2];
-
570 
-
571  #else
-
572 
-
573  x *= scale;
-
574  y *= scale;
-
575  z *= scale;
-
576 
-
577  #endif
-
578 
-
579  return;
-
580 }
-
581 
-
582 template<typename T>
-
583 void Vector3<T>::operator*=(const T scale)
-
584 {
-
585  x *= scale;
-
586  y *= scale;
-
587  z *= scale;
-
588  return;
-
589 }
-
590 
-
591 
-
592 
-
593 Vector3<double> Vector3<double>::operator/(const double scale) const
-
594 {
-
595  #ifndef _EULE_NO_INTRINSICS_
-
596 
-
597  // Move vector components and factors into registers
-
598  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
599  __m256d __scalar = _mm256_set1_pd(scale);
-
600 
-
601  // Divide the components
-
602  __m256d __prod = _mm256_div_pd(__vector_self, __scalar);
-
603 
-
604  // Retrieve and return these values
-
605  double prod[4];
-
606  _mm256_storeu_pd(prod, __prod);
-
607 
-
608  return Vector3<double>(
-
609  prod[0],
-
610  prod[1],
-
611  prod[2]
-
612  );
-
613 
-
614  #else
-
615 
-
616  return Vector3<double>(
-
617  x / scale,
-
618  y / scale,
-
619  z / scale
-
620  );
-
621 
-
622  #endif
-
623 }
-
624 
-
625 template<typename T>
-
626 Vector3<T> Vector3<T>::operator/(const T scale) const
-
627 {
-
628  return Vector3<T>(
-
629  x / scale,
-
630  y / scale,
-
631  z / scale
-
632  );
-
633 }
-
634 
-
635 
-
636 
-
637 void Vector3<double>::operator/=(const double scale)
-
638 {
-
639  #ifndef _EULE_NO_INTRINSICS_
-
640 
-
641  // Move vector components and factors into registers
-
642  __m256d __vector_self = _mm256_set_pd(0, z, y, x);
-
643  __m256d __scalar = _mm256_set1_pd(scale);
-
644 
-
645  // Divide the components
-
646  __m256d __prod = _mm256_div_pd(__vector_self, __scalar);
-
647 
-
648  // Retrieve and apply these values
-
649  double prod[4];
-
650  _mm256_storeu_pd(prod, __prod);
-
651 
-
652  x = prod[0];
-
653  y = prod[1];
-
654  z = prod[2];
-
655 
-
656  #else
-
657 
-
658  x /= scale;
-
659  y /= scale;
-
660  z /= scale;
-
661 
-
662  #endif
-
663  return;
-
664 }
-
665 
-
666 template<typename T>
-
667 void Vector3<T>::operator/=(const T scale)
-
668 {
-
669  x /= scale;
-
670  y /= scale;
-
671  z /= scale;
-
672  return;
-
673 }
-
674 
-
675 
-
676 
-
677 // Good, optimized chad version for doubles
- -
679 {
-
680  Vector3<double> newVec;
-
681 
-
682  #ifndef _EULE_NO_INTRINSICS_
-
683  // Store x, y, and z values
-
684  __m256d __vecx = _mm256_set1_pd(x);
-
685  __m256d __vecy = _mm256_set1_pd(y);
-
686  __m256d __vecz = _mm256_set1_pd(z);
-
687 
-
688  // Store matrix values
-
689  __m256d __mat_row0 = _mm256_set_pd(mat[0][0], mat[1][0], mat[2][0], 0);
-
690  __m256d __mat_row1 = _mm256_set_pd(mat[0][1], mat[1][1], mat[2][1], 0);
-
691  __m256d __mat_row2 = _mm256_set_pd(mat[0][2], mat[1][2], mat[2][2], 0);
-
692 
-
693  // Multiply x, y, z and matrix values
-
694  __m256d __mul_vecx_row0 = _mm256_mul_pd(__vecx, __mat_row0);
-
695  __m256d __mul_vecy_row1 = _mm256_mul_pd(__vecy, __mat_row1);
-
696  __m256d __mul_vecz_row2 = _mm256_mul_pd(__vecz, __mat_row2);
-
697 
-
698  // Sum up the products
-
699  __m256d __sum = _mm256_add_pd(__mul_vecx_row0, _mm256_add_pd(__mul_vecy_row1, __mul_vecz_row2));
-
700 
-
701  // Store translation values
-
702  __m256d __translation = _mm256_set_pd(mat[0][3], mat[1][3], mat[2][3], 0);
-
703 
-
704  // Add the translation values
-
705  __m256d __final = _mm256_add_pd(__sum, __translation);
-
706 
-
707  double dfinal[4];
-
708 
-
709  _mm256_storeu_pd(dfinal, __final);
-
710 
-
711  newVec.x = dfinal[3];
-
712  newVec.y = dfinal[2];
-
713  newVec.z = dfinal[1];
-
714 
-
715  #else
-
716  // Rotation, Scaling
-
717  newVec.x = (mat[0][0] * x) + (mat[1][0] * y) + (mat[2][0] * z);
-
718  newVec.y = (mat[0][1] * x) + (mat[1][1] * y) + (mat[2][1] * z);
-
719  newVec.z = (mat[0][2] * x) + (mat[1][2] * y) + (mat[2][2] * z);
-
720 
-
721  // Translation
-
722  newVec.x += mat[0][3];
-
723  newVec.y += mat[1][3];
-
724  newVec.z += mat[2][3];
-
725  #endif
-
726 
-
727  return newVec;
-
728 }
-
729 
-
730 // Slow, lame version for intcels
- -
732 {
-
733  Vector3<double> newVec;
-
734 
-
735  // Rotation, Scaling
-
736  newVec.x = ((mat[0][0] * x) + (mat[1][0] * y) + (mat[2][0] * z));
-
737  newVec.y = ((mat[0][1] * x) + (mat[1][1] * y) + (mat[2][1] * z));
-
738  newVec.z = ((mat[0][2] * x) + (mat[1][2] * y) + (mat[2][2] * z));
-
739 
-
740  // Translation
-
741  newVec.x += mat[0][3];
-
742  newVec.y += mat[1][3];
-
743  newVec.z += mat[2][3];
-
744 
-
745  return Vector3<int>(
-
746  (int)newVec.x,
-
747  (int)newVec.y,
-
748  (int)newVec.z
-
749  );
-
750 }
-
751 
-
752 
-
753 
-
754 // Good, optimized chad version for doubles
-
755 void Vector3<double>::operator*=(const Matrix4x4& mat)
-
756 {
-
757  #ifndef _EULE_NO_INTRINSICS_
-
758  // Store x, y, and z values
-
759  __m256d __vecx = _mm256_set1_pd(x);
-
760  __m256d __vecy = _mm256_set1_pd(y);
-
761  __m256d __vecz = _mm256_set1_pd(z);
-
762 
-
763  // Store matrix values
-
764  __m256d __mat_row0 = _mm256_set_pd(mat[0][0], mat[1][0], mat[2][0], 0);
-
765  __m256d __mat_row1 = _mm256_set_pd(mat[0][1], mat[1][1], mat[2][1], 0);
-
766  __m256d __mat_row2 = _mm256_set_pd(mat[0][2], mat[1][2], mat[2][2], 0);
-
767 
-
768  // Multiply x, y, z and matrix values
-
769  __m256d __mul_vecx_row0 = _mm256_mul_pd(__vecx, __mat_row0);
-
770  __m256d __mul_vecy_row1 = _mm256_mul_pd(__vecy, __mat_row1);
-
771  __m256d __mul_vecz_row2 = _mm256_mul_pd(__vecz, __mat_row2);
-
772 
-
773  // Sum up the products
-
774  __m256d __sum = _mm256_add_pd(__mul_vecx_row0, _mm256_add_pd(__mul_vecy_row1, __mul_vecz_row2));
-
775 
-
776  // Store translation values
-
777  __m256d __translation = _mm256_set_pd(mat[0][3], mat[1][3], mat[2][3], 0);
-
778 
-
779  // Add the translation values
-
780  __m256d __final = _mm256_add_pd(__sum, __translation);
-
781 
-
782  double dfinal[4];
-
783 
-
784  _mm256_storeu_pd(dfinal, __final);
-
785 
-
786  x = dfinal[3];
-
787  y = dfinal[2];
-
788  z = dfinal[1];
-
789 
-
790  #else
-
791  Vector3<double> buffer = *this;
-
792  x = (mat[0][0] * buffer.x) + (mat[0][1] * buffer.y) + (mat[0][2] * buffer.z);
-
793  y = (mat[1][0] * buffer.x) + (mat[1][1] * buffer.y) + (mat[1][2] * buffer.z);
-
794  z = (mat[2][0] * buffer.x) + (mat[2][1] * buffer.y) + (mat[2][2] * buffer.z);
-
795 
-
796  // Translation
-
797  x += mat[0][3];
-
798  y += mat[1][3];
-
799  z += mat[2][3];
-
800  #endif
-
801 
-
802  return;
-
803 }
-
804 
-
805 template<typename T>
- -
807 {
-
808  return Vector3<T>(
-
809  -x,
-
810  -y,
-
811  -z
-
812  );
-
813 }
-
814 
-
815 template<typename T>
- -
817 {
-
818  x = other.x;
-
819  y = other.y;
-
820  z = other.z;
-
821 
-
822  return;
-
823 }
-
824 
-
825 template<typename T>
-
826 void Vector3<T>::operator=(Vector3<T>&& other) noexcept
-
827 {
-
828  x = std::move(other.x);
-
829  y = std::move(other.y);
-
830  z = std::move(other.z);
-
831 
-
832  return;
-
833 }
-
834 
-
835 // Slow, lame version for intcels
- -
837 {
-
838  Vector3<double> buffer(x, y, z);
-
839 
-
840  x = (int)((mat[0][0] * buffer.x) + (mat[0][1] * buffer.y) + (mat[0][2] * buffer.z));
-
841  y = (int)((mat[1][0] * buffer.x) + (mat[1][1] * buffer.y) + (mat[1][2] * buffer.z));
-
842  z = (int)((mat[2][0] * buffer.x) + (mat[2][1] * buffer.y) + (mat[2][2] * buffer.z));
-
843 
-
844  // Translation
-
845  x += (int)mat[0][3];
-
846  y += (int)mat[1][3];
-
847  z += (int)mat[2][3];
-
848 
-
849  return;
-
850 }
-
851 
-
852 
-
853 
-
854 template<typename T>
-
855 bool Vector3<T>::operator==(const Vector3<T>& other) const
-
856 {
-
857  return
-
858  (x == other.x) &&
-
859  (y == other.y) &&
-
860  (z == other.z);
-
861 }
-
862 
-
863 template<typename T>
-
864 bool Vector3<T>::operator!=(const Vector3<T>& other) const
-
865 {
-
866  return !operator==(other);
-
867 }
-
868 
-
869 
-
870 #include "Vector2.h"
-
871 #include "Vector4.h"
-
872 template<typename T>
- -
874 {
-
875  return Vector2<T>(x, y);
-
876 }
-
877 
-
878 template<typename T>
- -
880 {
-
881  return Vector4<T>(x, y, z, 0);
-
882 }
-
883 
-
884 template class Vector3<int>;
-
885 template class Vector3<double>;
-
886 
-
887 // Some handy predefines
-
888 template <typename T>
-
889 const Vector3<double> Vector3<T>::up(0, 1, 0);
-
890 template <typename T>
-
891 const Vector3<double> Vector3<T>::down(0, -1, 0);
-
892 template <typename T>
-
893 const Vector3<double> Vector3<T>::right(1, 0, 0);
-
894 template <typename T>
-
895 const Vector3<double> Vector3<T>::left(-1, 0, 0);
-
896 template <typename T>
-
897 const Vector3<double> Vector3<T>::forward(0, 0, 1);
-
898 template <typename T>
-
899 const Vector3<double> Vector3<T>::backward(0, 0, -1);
-
900 template <typename T>
-
901 const Vector3<double> Vector3<T>::one(1, 1, 1);
-
902 template <typename T>
-
903 const Vector3<double> Vector3<T>::zero(0, 0, 0);
-
-
Eule::Vector3::LerpSelf
void LerpSelf(const Vector3< T > &other, double t)
Will lerp itself towards other by t.
Definition: Vector3.cpp:311
-
Eule::Vector3< double >
-
Eule::Vector3::ToDouble
Vector3< double > ToDouble() const
Will convert this vector to a Vector3d.
Definition: Vector3.cpp:229
-
Math.h
-
Vector2.h
-
Eule::Vector3::z
T z
Definition: Vector3.h:96
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Eule::Vector3::x
T x
Definition: Vector3.h:94
-
Vector4.h
-
Eule::Vector2
Representation of a 2d vector.
Definition: Vector2.h:14
-
Eule::Vector3::DotProduct
double DotProduct(const Vector3< T > &other) const
Will compute the dot product to another Vector3.
Definition: Vector3.cpp:48
-
Vector3.h
-
Eule::Vector3::NormalizeSelf
void NormalizeSelf()
Will normalize this vector.
Definition: Vector3.cpp:200
-
Eule
Definition: Collider.h:4
-
Eule::Vector3::y
T y
Definition: Vector3.h:95
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
- - - - diff --git a/Doxygen/build/Vector3_8h.html b/Doxygen/build/Vector3_8h.html deleted file mode 100644 index 347a9c3..0000000 --- a/Doxygen/build/Vector3_8h.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector3.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces | -Typedefs
-
-
Vector3.h File Reference
-
-
-
#include <cstdlib>
-#include <iomanip>
-#include <ostream>
-#include <sstream>
-#include "Matrix4x4.h"
-
-Include dependency graph for Vector3.h:
-
-
- - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - -

-Classes

class  Eule::Vector2< T >
 Representation of a 2d vector. More...
 
class  Eule::Vector4< T >
 Representation of a 4d vector. More...
 
class  Eule::Vector3< T >
 Representation of a 3d vector. More...
 
- - - -

-Namespaces

 Eule
 
- - - -

-Typedefs

typedef Vector3< int > Eule::Vector3i
 
-
- - - - diff --git a/Doxygen/build/Vector3_8h__dep__incl.map b/Doxygen/build/Vector3_8h__dep__incl.map deleted file mode 100644 index 0deaf45..0000000 --- a/Doxygen/build/Vector3_8h__dep__incl.map +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/Doxygen/build/Vector3_8h__dep__incl.md5 b/Doxygen/build/Vector3_8h__dep__incl.md5 deleted file mode 100644 index 627c4d5..0000000 --- a/Doxygen/build/Vector3_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -5923ea443852492219c66436d4bffb10 \ No newline at end of file diff --git a/Doxygen/build/Vector3_8h__dep__incl.png b/Doxygen/build/Vector3_8h__dep__incl.png deleted file mode 100644 index 4424eec..0000000 Binary files a/Doxygen/build/Vector3_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector3_8h__incl.map b/Doxygen/build/Vector3_8h__incl.map deleted file mode 100644 index f44a900..0000000 --- a/Doxygen/build/Vector3_8h__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/Doxygen/build/Vector3_8h__incl.md5 b/Doxygen/build/Vector3_8h__incl.md5 deleted file mode 100644 index 26828a1..0000000 --- a/Doxygen/build/Vector3_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f06a179ddc8c6cbfb08342b459b2b95e \ No newline at end of file diff --git a/Doxygen/build/Vector3_8h__incl.png b/Doxygen/build/Vector3_8h__incl.png deleted file mode 100644 index a5d5466..0000000 Binary files a/Doxygen/build/Vector3_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector3_8h_source.html b/Doxygen/build/Vector3_8h_source.html deleted file mode 100644 index cd65950..0000000 --- a/Doxygen/build/Vector3_8h_source.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector3.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector3.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include <cstdlib>
-
3 #include <iomanip>
-
4 #include <ostream>
-
5 #include <sstream>
-
6 #include "Matrix4x4.h"
-
7 
-
8 namespace Eule
-
9 {
-
10  template <typename T> class Vector2;
-
11  template <typename T> class Vector4;
-
12 
-
16  template <typename T>
-
17  class Vector3
-
18  {
-
19  public:
-
20  Vector3() : x{ 0 }, y{ 0 }, z{ 0 } {}
-
21  Vector3(T _x, T _y, T _z) : x{ _x }, y{ _y }, z{ _z } {}
-
22  Vector3(const Vector3<T>& other) = default;
-
23  Vector3(Vector3<T>&& other) noexcept = default;
-
24 
-
26  double DotProduct(const Vector3<T>& other) const;
-
27 
-
29  Vector3<double> CrossProduct(const Vector3<T>& other) const;
-
30 
-
32  double SqrMagnitude() const;
-
33 
-
35  double Magnitude() const;
-
36 
-
38  [[nodiscard]] Vector3<double> Normalize() const;
-
39 
-
41  void NormalizeSelf();
-
42 
-
44  [[nodiscard]] Vector3<T> VectorScale(const Vector3<T>& scalar) const;
-
45 
-
47  void LerpSelf(const Vector3<T>& other, double t);
-
48 
-
50  [[nodiscard]] Vector3<double> Lerp(const Vector3<T>& other, double t) const;
-
51 
-
53  [[nodiscard]] bool Similar(const Vector3<T>& other, double epsilon = 0.00001) const;
-
54 
-
56  [[nodiscard]] Vector3<int> ToInt() const;
-
57 
-
59  [[nodiscard]] Vector3<double> ToDouble() const;
-
60 
-
61  T& operator[](std::size_t idx);
-
62  const T& operator[](std::size_t idx) const;
-
63 
-
64  Vector3<T> operator+(const Vector3<T>& other) const;
-
65  void operator+=(const Vector3<T>& other);
-
66  Vector3<T> operator-(const Vector3<T>& other) const;
-
67  void operator-=(const Vector3<T>& other);
-
68  Vector3<T> operator*(const T scale) const;
-
69  void operator*=(const T scale);
-
70  Vector3<T> operator/(const T scale) const;
-
71  void operator/=(const T scale);
-
72  Vector3<T> operator*(const Matrix4x4& mat) const;
-
73  void operator*=(const Matrix4x4& mat);
-
74  Vector3<T> operator-() const;
-
75 
-
76  operator Vector2<T>() const;
-
77  operator Vector4<T>() const;
-
78 
-
79  void operator=(const Vector3<T>& other);
-
80  void operator=(Vector3<T>&& other) noexcept;
-
81 
-
82  bool operator==(const Vector3<T>& other) const;
-
83  bool operator!=(const Vector3<T>& other) const;
-
84 
-
85  friend std::ostream& operator << (std::ostream& os, const Vector3<T>& v)
-
86  {
-
87  return os << "[x: " << v.x << " y: " << v.y << " z: " << v.z << "]";
-
88  }
-
89  friend std::wostream& operator << (std::wostream& os, const Vector3<T>& v)
-
90  {
-
91  return os << L"[x: " << v.x << L" y: " << v.y << L" z: " << v.z << L"]";
-
92  }
-
93 
-
94  T x;
-
95  T y;
-
96  T z;
-
97 
-
98  // Some handy predefines
-
99  static const Vector3<double> up;
-
100  static const Vector3<double> down;
-
101  static const Vector3<double> right;
-
102  static const Vector3<double> left;
-
103  static const Vector3<double> forward;
-
104  static const Vector3<double> backward;
-
105  static const Vector3<double> one;
-
106  static const Vector3<double> zero;
-
107  };
-
108 
- -
110  typedef Vector3<double> Vector3d;
-
111 }
-
-
Eule::Vector3::operator+
Vector3< T > operator+(const Vector3< T > &other) const
Definition: Vector3.cpp:372
-
Eule::Vector3::right
static const Vector3< double > right
Definition: Vector3.h:101
-
Eule::Vector3::operator<<
friend std::ostream & operator<<(std::ostream &os, const Vector3< T > &v)
Definition: Vector3.h:85
-
Eule::Vector3::LerpSelf
void LerpSelf(const Vector3< T > &other, double t)
Will lerp itself towards other by t.
Definition: Vector3.cpp:311
-
Eule::Vector3::CrossProduct
Vector3< double > CrossProduct(const Vector3< T > &other) const
Will compute the cross product to another Vector3.
Definition: Vector3.cpp:68
-
Eule::Vector3::left
static const Vector3< double > left
Definition: Vector3.h:102
-
Eule::Vector3::Similar
bool Similar(const Vector3< T > &other, double epsilon=0.00001) const
Will compare if two vectors are similar to a certain epsilon value.
Definition: Vector3.cpp:213
-
Eule::Vector3
Representation of a 3d vector.
Definition: Matrix4x4.h:9
-
Eule::Vector3::Vector3
Vector3(T _x, T _y, T _z)
Definition: Vector3.h:21
-
Eule::Vector3::operator-
Vector3< T > operator-() const
Definition: Vector3.cpp:806
-
Eule::Vector3::down
static const Vector3< double > down
Definition: Vector3.h:100
-
Eule::Vector3::Lerp
Vector3< double > Lerp(const Vector3< T > &other, double t) const
Will return a lerp result between this and another vector.
Definition: Vector3.cpp:330
-
Eule::Vector3::forward
static const Vector3< double > forward
Definition: Vector3.h:103
-
Eule::Vector3::one
static const Vector3< double > one
Definition: Vector3.h:105
-
Eule::Vector3::operator=
void operator=(const Vector3< T > &other)
Conversion method.
Definition: Vector3.cpp:816
-
Eule::Vector3::ToDouble
Vector3< double > ToDouble() const
Will convert this vector to a Vector3d.
Definition: Vector3.cpp:229
-
Eule::Vector3::ToInt
Vector3< int > ToInt() const
Will convert this vector to a Vector3i.
Definition: Vector3.cpp:223
-
Eule::Vector3::operator==
bool operator==(const Vector3< T > &other) const
Definition: Vector3.cpp:855
-
Eule::Vector3::operator*=
void operator*=(const T scale)
Definition: Vector3.cpp:583
-
Eule::Vector3::Vector3
Vector3()
Definition: Vector3.h:20
-
Eule::Vector3d
Vector3< double > Vector3d
Definition: Matrix4x4.h:9
-
Matrix4x4.h
-
Eule::Vector3i
Vector3< int > Vector3i
Definition: Vector3.h:109
-
Eule::Vector3::backward
static const Vector3< double > backward
Definition: Vector3.h:104
-
Eule::Vector3::Normalize
Vector3< double > Normalize() const
Will return the normalization of this vector.
Definition: Vector3.cpp:147
-
Eule::Vector3::z
T z
Definition: Vector3.h:96
-
Eule::Vector3::up
static const Vector3< double > up
Definition: Vector3.h:99
-
Eule::Vector3::operator[]
T & operator[](std::size_t idx)
Definition: Vector3.cpp:235
-
Eule::Vector3::x
T x
Definition: Vector3.h:94
-
Eule::Vector3::DotProduct
double DotProduct(const Vector3< T > &other) const
Will compute the dot product to another Vector3.
Definition: Vector3.cpp:48
-
Eule::Vector3::operator/
Vector3< T > operator/(const T scale) const
Definition: Vector3.cpp:626
-
Eule::Vector3::operator-=
void operator-=(const Vector3< T > &other)
Definition: Vector3.cpp:498
-
Eule::Vector3::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector3.cpp:88
-
Eule::Vector3::operator/=
void operator/=(const T scale)
Definition: Vector3.cpp:667
-
Eule::Vector3::operator!=
bool operator!=(const Vector3< T > &other) const
Definition: Vector3.cpp:864
-
Eule::Vector3::operator+=
void operator+=(const Vector3< T > &other)
Definition: Vector3.cpp:414
-
Eule::Vector3::Magnitude
double Magnitude() const
Will compute the magnitude.
Definition: Vector3.cpp:95
-
Eule::Vector3::NormalizeSelf
void NormalizeSelf()
Will normalize this vector.
Definition: Vector3.cpp:200
-
Eule::Vector3::operator*
Vector3< T > operator*(const T scale) const
Definition: Vector3.cpp:541
-
Eule::Vector3::zero
static const Vector3< double > zero
Definition: Vector3.h:106
-
Eule
Definition: Collider.h:4
-
Eule::Vector3::y
T y
Definition: Vector3.h:95
-
Eule::Vector3::VectorScale
Vector3< T > VectorScale(const Vector3< T > &scalar) const
Will scale self.n by scalar.n.
Definition: Vector3.cpp:135
- - - - diff --git a/Doxygen/build/Vector4_8cpp.html b/Doxygen/build/Vector4_8cpp.html deleted file mode 100644 index 3c0e4aa..0000000 --- a/Doxygen/build/Vector4_8cpp.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector4.cpp File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector4.cpp File Reference
-
-
-
#include "Vector4.h"
-#include "Math.h"
-#include <iostream>
-#include <immintrin.h>
-#include "Vector2.h"
-#include "Vector3.h"
-
-Include dependency graph for Vector4.cpp:
-
-
- - - - - - - - - - - - - - - - - - -
-
-

Go to the source code of this file.

-
- - - - diff --git a/Doxygen/build/Vector4_8cpp__incl.map b/Doxygen/build/Vector4_8cpp__incl.map deleted file mode 100644 index a6df62c..0000000 --- a/Doxygen/build/Vector4_8cpp__incl.map +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/Doxygen/build/Vector4_8cpp__incl.md5 b/Doxygen/build/Vector4_8cpp__incl.md5 deleted file mode 100644 index ff91198..0000000 --- a/Doxygen/build/Vector4_8cpp__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6edd4b6a266f3a86f459e12460ef3060 \ No newline at end of file diff --git a/Doxygen/build/Vector4_8cpp__incl.png b/Doxygen/build/Vector4_8cpp__incl.png deleted file mode 100644 index 0007259..0000000 Binary files a/Doxygen/build/Vector4_8cpp__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector4_8cpp_source.html b/Doxygen/build/Vector4_8cpp_source.html deleted file mode 100644 index 3116a5b..0000000 --- a/Doxygen/build/Vector4_8cpp_source.html +++ /dev/null @@ -1,914 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector4.cpp Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector4.cpp
-
-
-Go to the documentation of this file.
1 #include "Vector4.h"
-
2 #include "Math.h"
-
3 #include <iostream>
-
4 
-
5 //#define _EULE_NO_INTRINSICS_
-
6 #ifndef _EULE_NO_INTRINSICS_
-
7 #include <immintrin.h>
-
8 #endif
-
9 
-
10 using namespace Eule;
-
11 
-
12 /*
-
13  NOTE:
-
14  Here you will find bad, unoptimized methods for T=int.
-
15  This is because the compiler needs a method for each type in each instantiation of the template!
-
16  I can't generalize the methods when heavily optimizing for doubles.
-
17  These functions will get called VERY rarely, if ever at all, for T=int, so it's ok.
-
18  The T=int instantiation only exists to store a value-pair of two ints. Not so-much as a vector in terms of vector calculus.
-
19 */
-
20 
-
21 // Good, optimized chad version for doubles
-
22 double Vector4<double>::SqrMagnitude() const
-
23 {
-
24  return (x * x) +
-
25  (y * y) +
-
26  (z * z) +
-
27  (w * w);
-
28 }
-
29 
-
30 // Slow, lame version for intcels
- -
32 {
-
33  int iSqrMag = x*x + y*y + z*z + w*w;
-
34  return (double)iSqrMag;
-
35 }
-
36 
-
37 template<typename T>
-
38 double Vector4<T>::Magnitude() const
-
39 {
-
40  return sqrt(SqrMagnitude());
-
41 }
-
42 
-
43 
- -
45 {
-
46  #ifndef _EULE_NO_INTRINSICS_
-
47 
-
48  // Load vectors into registers
-
49  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
50  __m256d __vector_scalar = _mm256_set_pd(scalar.w, scalar.z, scalar.y, scalar.x);
-
51 
-
52  // Multiply them
-
53  __m256d __product = _mm256_mul_pd(__vector_self, __vector_scalar);
-
54 
-
55  // Retrieve result
-
56  double result[4];
-
57  _mm256_storeu_pd(result, __product);
-
58 
-
59  // Return value
-
60  return Vector4<double>(
-
61  result[0],
-
62  result[1],
-
63  result[2],
-
64  result[3]
-
65  );
-
66 
-
67  #else
-
68 
-
69  return Vector4<double>(
-
70  x * scalar.x,
-
71  y * scalar.y,
-
72  z * scalar.z,
-
73  w * scalar.w
-
74  );
-
75  #endif
-
76 }
-
77 
-
78 
- -
80 {
-
81  return Vector4<int>(
-
82  x * scalar.x,
-
83  y * scalar.y,
-
84  z * scalar.z,
-
85  w * scalar.w
-
86  );
-
87 }
-
88 
-
89 
-
90 
-
91 template<typename T>
- -
93 {
-
94  Vector4<double> norm(x, y, z, w);
-
95  norm.NormalizeSelf();
-
96 
-
97  return norm;
-
98 }
-
99 
-
100 // Method to normalize a Vector43d
- -
102 {
-
103  double length = Magnitude();
-
104 
-
105  // Prevent division by 0
-
106  if (length == 0)
-
107  {
-
108  x = 0;
-
109  y = 0;
-
110  z = 0;
-
111  w = 0;
-
112  }
-
113  else
-
114  {
-
115  #ifndef _EULE_NO_INTRINSICS_
-
116 
-
117  // Load vector and length into registers
-
118  __m256d __vec = _mm256_set_pd(w, z, y, x);
-
119  __m256d __len = _mm256_set1_pd(length);
-
120 
-
121  // Divide
-
122  __m256d __prod = _mm256_div_pd(__vec, __len);
-
123 
-
124  // Extract and set values
-
125  double prod[4];
-
126  _mm256_storeu_pd(prod, __prod);
-
127 
-
128  x = prod[0];
-
129  y = prod[1];
-
130  z = prod[2];
-
131  w = prod[3];
-
132 
-
133  #else
-
134 
-
135  x /= length;
-
136  y /= length;
-
137  z /= length;
-
138  w /= length;
-
139 
-
140  #endif
-
141  }
-
142 
-
143  return;
-
144 }
-
145 
-
146 // You can't normalize an int vector, ffs!
-
147 // But we need an implementation for T=int
- -
149 {
-
150  std::cerr << "Stop normalizing int-vectors!!" << std::endl;
-
151  x = 0;
-
152  y = 0;
-
153  z = 0;
-
154  w = 0;
-
155 
-
156  return;
-
157 }
-
158 
-
159 
-
160 
-
161 template<typename T>
-
162 bool Vector4<T>::Similar(const Vector4<T>& other, double epsilon) const
-
163 {
-
164  return
-
165  (::Math::Similar(x, other.x, epsilon)) &&
-
166  (::Math::Similar(y, other.y, epsilon)) &&
-
167  (::Math::Similar(z, other.z, epsilon)) &&
-
168  (::Math::Similar(w, other.w, epsilon))
-
169  ;
-
170 }
-
171 
-
172 template<typename T>
- -
174 {
-
175  return Vector4<int>((int)x, (int)y, (int)z, (int)w);
-
176 }
-
177 
-
178 template<typename T>
- -
180 {
-
181  return Vector4<double>((double)x, (double)y, (double)z, (double)w);
-
182 }
-
183 
-
184 template<typename T>
-
185 T& Vector4<T>::operator[](std::size_t idx)
-
186 {
-
187  switch (idx)
-
188  {
-
189  case 0:
-
190  return x;
-
191  case 1:
-
192  return y;
-
193  case 2:
-
194  return z;
-
195  case 3:
-
196  return w;
-
197  default:
-
198  throw std::out_of_range("Array descriptor on Vector4<T> out of range!");
-
199  }
-
200 }
-
201 
-
202 template<typename T>
-
203 const T& Vector4<T>::operator[](std::size_t idx) const
-
204 {
-
205  switch (idx)
-
206  {
-
207  case 0:
-
208  return x;
-
209  case 1:
-
210  return y;
-
211  case 2:
-
212  return z;
-
213  case 3:
-
214  return w;
-
215  default:
-
216  throw std::out_of_range("Array descriptor on Vector4<T> out of range!");
-
217  }
-
218 }
-
219 
-
220 
-
221 
-
222 // Good, optimized chad version for doubles
-
223 void Vector4<double>::LerpSelf(const Vector4<double>& other, double t)
-
224 {
-
225  const double it = 1.0 - t; // Inverse t
-
226 
-
227  #ifndef _EULE_NO_INTRINSICS_
-
228 
-
229  // Move vector components and factors into registers
-
230  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
231  __m256d __vector_other = _mm256_set_pd(other.w, other.z, other.y, other.x);
-
232  __m256d __t = _mm256_set1_pd(t);
-
233  __m256d __it = _mm256_set1_pd(it); // Inverse t
-
234 
-
235  // Procedure:
-
236  // (__vector_self * __it) + (__vector_other * __t)
-
237 
-
238  __m256d __sum = _mm256_set1_pd(0); // this will hold the sum of the two multiplications
-
239 
-
240  __sum = _mm256_fmadd_pd(__vector_self, __it, __sum);
-
241  __sum = _mm256_fmadd_pd(__vector_other, __t, __sum);
-
242 
-
243  // Retrieve result, and apply it
-
244  double sum[4];
-
245  _mm256_storeu_pd(sum, __sum);
-
246 
-
247  x = sum[0];
-
248  y = sum[1];
-
249  z = sum[2];
-
250  w = sum[3];
-
251 
-
252  #else
-
253 
-
254  x = it * x + t * other.x;
-
255  y = it * y + t * other.y;
-
256  z = it * z + t * other.z;
-
257  w = it * w + t * other.w;
-
258 
-
259  #endif
-
260 
-
261  return;
-
262 }
-
263 
-
264 
-
265 
-
266 // Slow, lame version for intcels
-
267 void Vector4<int>::LerpSelf(const Vector4<int>& other, double t)
-
268 {
-
269  const double it = 1.0 - t;
-
270 
-
271  x = (int)(it * (double)x + t * (double)other.x);
-
272  y = (int)(it * (double)y + t * (double)other.y);
-
273  z = (int)(it * (double)z + t * (double)other.z);
-
274  w = (int)(it * (double)w + t * (double)other.w);
-
275 
-
276  return;
-
277 }
-
278 
-
279 Vector4<double> Vector4<double>::Lerp(const Vector4<double>& other, double t) const
-
280 {
-
281  Vector4d copy(*this);
-
282  copy.LerpSelf(other, t);
-
283 
-
284  return copy;
-
285 }
-
286 
-
287 Vector4<double> Vector4<int>::Lerp(const Vector4<int>& other, double t) const
-
288 {
-
289  Vector4d copy(this->ToDouble());
-
290  copy.LerpSelf(other.ToDouble(), t);
-
291 
-
292  return copy;
-
293 }
-
294 
-
295 
-
296 
- -
298 {
-
299  #ifndef _EULE_NO_INTRINSICS_
-
300 
-
301  // Move vector components and factors into registers
-
302  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
303  __m256d __vector_other = _mm256_set_pd(other.w, other.z, other.y, other.x);
-
304 
-
305  // Add the components
-
306  __m256d __sum = _mm256_add_pd(__vector_self, __vector_other);
-
307 
-
308  // Retrieve and return these values
-
309  double sum[4];
-
310  _mm256_storeu_pd(sum, __sum);
-
311 
-
312  return Vector4<double>(
-
313  sum[0],
-
314  sum[1],
-
315  sum[2],
-
316  sum[3]
-
317  );
-
318 
-
319  #else
-
320 
-
321  return Vector4<double>(
-
322  x + other.x,
-
323  y + other.y,
-
324  z + other.z,
-
325  w + other.w
-
326  );
-
327  #endif
-
328 }
-
329 
-
330 template<typename T>
- -
332 {
-
333  return Vector4<T>(
-
334  x + other.x,
-
335  y + other.y,
-
336  z + other.z,
-
337  w + other.w
-
338  );
-
339 }
-
340 
-
341 
-
342 
- -
344 {
-
345  #ifndef _EULE_NO_INTRINSICS_
-
346 
-
347  // Move vector components and factors into registers
-
348  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
349  __m256d __vector_other = _mm256_set_pd(other.w, other.z, other.y, other.x);
-
350 
-
351  // Add the components
-
352  __m256d __sum = _mm256_add_pd(__vector_self, __vector_other);
-
353 
-
354  // Retrieve and apply these values
-
355  double sum[4];
-
356  _mm256_storeu_pd(sum, __sum);
-
357 
-
358  x = sum[0];
-
359  y = sum[1];
-
360  z = sum[2];
-
361  w = sum[3];
-
362 
-
363  #else
-
364 
-
365  x += other.x;
-
366  y += other.y;
-
367  z += other.z;
-
368  w += other.w;
-
369 
-
370  #endif
-
371 
-
372  return;
-
373 }
-
374 
-
375 template<typename T>
- -
377 {
-
378  x += other.x;
-
379  y += other.y;
-
380  z += other.z;
-
381  w += other.w;
-
382  return;
-
383 }
-
384 
-
385 
-
386 
- -
388 {
-
389  #ifndef _EULE_NO_INTRINSICS_
-
390 
-
391  // Move vector components and factors into registers
-
392  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
393  __m256d __vector_other = _mm256_set_pd(other.w, other.z, other.y, other.x);
-
394 
-
395  // Subtract the components
-
396  __m256d __diff = _mm256_sub_pd(__vector_self, __vector_other);
-
397 
-
398  // Retrieve and return these values
-
399  double diff[4];
-
400  _mm256_storeu_pd(diff, __diff);
-
401 
-
402  return Vector4<double>(
-
403  diff[0],
-
404  diff[1],
-
405  diff[2],
-
406  diff[3]
-
407  );
-
408 
-
409  #else
-
410 
-
411  return Vector4<double>(
-
412  x - other.x,
-
413  y - other.y,
-
414  z - other.z,
-
415  w - other.w
-
416  );
-
417  #endif
-
418 }
-
419 
-
420 template<typename T>
- -
422 {
-
423  return Vector4<T>(
-
424  x - other.x,
-
425  y - other.y,
-
426  z - other.z,
-
427  w - other.w
-
428  );
-
429 }
-
430 
-
431 
-
432 
- -
434 {
-
435  #ifndef _EULE_NO_INTRINSICS_
-
436 
-
437  // Move vector components and factors into registers
-
438  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
439  __m256d __vector_other = _mm256_set_pd(other.w, other.z, other.y, other.x);
-
440 
-
441  // Subtract the components
-
442  __m256d __diff = _mm256_sub_pd(__vector_self, __vector_other);
-
443 
-
444  // Retrieve and apply these values
-
445  double diff[4];
-
446  _mm256_storeu_pd(diff, __diff);
-
447 
-
448  x = diff[0];
-
449  y = diff[1];
-
450  z = diff[2];
-
451  w = diff[3];
-
452 
-
453  #else
-
454 
-
455  x -= other.x;
-
456  y -= other.y;
-
457  z -= other.z;
-
458  w -= other.w;
-
459 
-
460  #endif
-
461 
-
462  return;
-
463 }
-
464 
-
465 template<typename T>
- -
467 {
-
468  x -= other.x;
-
469  y -= other.y;
-
470  z -= other.z;
-
471  w -= other.w;
-
472  return;
-
473 }
-
474 
-
475 
-
476 
-
477 Vector4<double> Vector4<double>::operator*(const double scale) const
-
478 {
-
479  #ifndef _EULE_NO_INTRINSICS_
-
480 
-
481  // Move vector components and factors into registers
-
482  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
483  __m256d __scalar = _mm256_set1_pd(scale);
-
484 
-
485  // Multiply the components
-
486  __m256d __prod = _mm256_mul_pd(__vector_self, __scalar);
-
487 
-
488  // Retrieve and return these values
-
489  double prod[4];
-
490  _mm256_storeu_pd(prod, __prod);
-
491 
-
492  return Vector4<double>(
-
493  prod[0],
-
494  prod[1],
-
495  prod[2],
-
496  prod[3]
-
497  );
-
498 
-
499  #else
-
500 
-
501  return Vector4<double>(
-
502  x * scale,
-
503  y * scale,
-
504  z * scale,
-
505  w * scale
-
506  );
-
507 
-
508  #endif
-
509 }
-
510 
-
511 template<typename T>
-
512 Vector4<T> Vector4<T>::operator*(const T scale) const
-
513 {
-
514  return Vector4<T>(
-
515  x * scale,
-
516  y * scale,
-
517  z * scale,
-
518  w * scale
-
519  );
-
520 }
-
521 
-
522 
-
523 
-
524 void Vector4<double>::operator*=(const double scale)
-
525 {
-
526  #ifndef _EULE_NO_INTRINSICS_
-
527 
-
528  // Move vector components and factors into registers
-
529  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
530  __m256d __scalar = _mm256_set1_pd(scale);
-
531 
-
532  // Multiply the components
-
533  __m256d __prod = _mm256_mul_pd(__vector_self, __scalar);
-
534 
-
535  // Retrieve and apply these values
-
536  double prod[4];
-
537  _mm256_storeu_pd(prod, __prod);
-
538 
-
539  x = prod[0];
-
540  y = prod[1];
-
541  z = prod[2];
-
542  w = prod[3];
-
543 
-
544  #else
-
545 
-
546  x *= scale;
-
547  y *= scale;
-
548  z *= scale;
-
549  w *= scale;
-
550 
-
551  #endif
-
552 
-
553  return;
-
554 }
-
555 
-
556 template<typename T>
-
557 void Vector4<T>::operator*=(const T scale)
-
558 {
-
559  x *= scale;
-
560  y *= scale;
-
561  z *= scale;
-
562  w *= scale;
-
563  return;
-
564 }
-
565 
-
566 
-
567 
-
568 Vector4<double> Vector4<double>::operator/(const double scale) const
-
569 {
-
570  #ifndef _EULE_NO_INTRINSICS_
-
571 
-
572  // Move vector components and factors into registers
-
573  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
574  __m256d __scalar = _mm256_set1_pd(scale);
-
575 
-
576  // Divide the components
-
577  __m256d __prod = _mm256_div_pd(__vector_self, __scalar);
-
578 
-
579  // Retrieve and return these values
-
580  double prod[4];
-
581  _mm256_storeu_pd(prod, __prod);
-
582 
-
583  return Vector4<double>(
-
584  prod[0],
-
585  prod[1],
-
586  prod[2],
-
587  prod[3]
-
588  );
-
589 
-
590  #else
-
591 
-
592  return Vector4<double>(
-
593  x / scale,
-
594  y / scale,
-
595  z / scale,
-
596  w / scale
-
597  );
-
598 
-
599  #endif
-
600 }
-
601 
-
602 template<typename T>
-
603 Vector4<T> Vector4<T>::operator/(const T scale) const
-
604 {
-
605  return Vector4<T>(
-
606  x / scale,
-
607  y / scale,
-
608  z / scale,
-
609  w / scale
-
610  );
-
611 }
-
612 
-
613 
-
614 
-
615 void Vector4<double>::operator/=(const double scale)
-
616 {
-
617  #ifndef _EULE_NO_INTRINSICS_
-
618 
-
619  // Move vector components and factors into registers
-
620  __m256d __vector_self = _mm256_set_pd(w, z, y, x);
-
621  __m256d __scalar = _mm256_set1_pd(scale);
-
622 
-
623  // Divide the components
-
624  __m256d __prod = _mm256_div_pd(__vector_self, __scalar);
-
625 
-
626  // Retrieve and apply these values
-
627  double prod[4];
-
628  _mm256_storeu_pd(prod, __prod);
-
629 
-
630  x = prod[0];
-
631  y = prod[1];
-
632  z = prod[2];
-
633  w = prod[3];
-
634 
-
635  #else
-
636 
-
637  x /= scale;
-
638  y /= scale;
-
639  z /= scale;
-
640  w /= scale;
-
641 
-
642  #endif
-
643  return;
-
644 }
-
645 
-
646 template<typename T>
-
647 void Vector4<T>::operator/=(const T scale)
-
648 {
-
649  x /= scale;
-
650  y /= scale;
-
651  z /= scale;
-
652  w /= scale;
-
653  return;
-
654 }
-
655 
-
656 
-
657 
-
658 template<typename T>
-
659 bool Vector4<T>::operator==(const Vector4<T>& other) const
-
660 {
-
661  return
-
662  (x == other.x) &&
-
663  (y == other.y) &&
-
664  (z == other.z) &&
-
665  (w == other.w);
-
666 }
-
667 
-
668 
-
669 
-
670 // Good, optimized chad version for doubles
- -
672 {
-
673  Vector4<double> newVec;
-
674 
-
675  newVec.x = (mat[0][0] * x) + (mat[0][1] * y) + (mat[0][2] * z) + (mat[0][3] * w);
-
676  newVec.y = (mat[1][0] * x) + (mat[1][1] * y) + (mat[1][2] * z) + (mat[1][3] * w);
-
677  newVec.z = (mat[2][0] * x) + (mat[2][1] * y) + (mat[2][2] * z) + (mat[2][3] * w);
-
678  newVec.w = (mat[3][0] * x) + (mat[3][1] * y) + (mat[3][2] * z) + (mat[3][3] * w);
-
679 
-
680  return newVec;
-
681 }
-
682 
-
683 // Slow, lame version for intcels
- -
685 {
-
686  Vector4<double> newVec;
-
687 
-
688  newVec.x = (mat[0][0] * x) + (mat[0][1] * y) + (mat[0][2] * z) + (mat[0][3] * w);
-
689  newVec.y = (mat[1][0] * x) + (mat[1][1] * y) + (mat[1][2] * z) + (mat[1][3] * w);
-
690  newVec.z = (mat[2][0] * x) + (mat[2][1] * y) + (mat[2][2] * z) + (mat[2][3] * w);
-
691  newVec.w = (mat[3][0] * x) + (mat[3][1] * y) + (mat[3][2] * z) + (mat[3][3] * w);
-
692 
-
693  return Vector4<int>(
-
694  (int)newVec.x,
-
695  (int)newVec.y,
-
696  (int)newVec.z,
-
697  (int)newVec.w
-
698  );
-
699 }
-
700 
-
701 
-
702 
-
703 // Good, optimized chad version for doubles
-
704 void Vector4<double>::operator*=(const Matrix4x4& mat)
-
705 {
-
706  Vector4<double> buffer = *this;
-
707 
-
708  // Should this still be reversed...? like, instead of mat[x][y], use mat[y][m]
-
709  // idk right now. check that if something doesn't work
-
710  x = (mat[0][0] * buffer.x) + (mat[0][1] * buffer.y) + (mat[0][2] * buffer.z) + (mat[0][3] * buffer.w);
-
711  y = (mat[1][0] * buffer.x) + (mat[1][1] * buffer.y) + (mat[1][2] * buffer.z) + (mat[1][3] * buffer.w);
-
712  z = (mat[2][0] * buffer.x) + (mat[2][1] * buffer.y) + (mat[2][2] * buffer.z) + (mat[2][3] * buffer.w);
-
713  w = (mat[3][0] * buffer.x) + (mat[3][1] * buffer.y) + (mat[3][2] * buffer.z) + (mat[3][3] * buffer.w);
-
714 
-
715  return;
-
716 }
-
717 
-
718 template<typename T>
- -
720 {
-
721  return Vector4<T>(
-
722  -x,
-
723  -y,
-
724  -z,
-
725  -w
-
726  );
-
727 }
-
728 
-
729 template<typename T>
- -
731 {
-
732  x = other.x;
-
733  y = other.y;
-
734  z = other.z;
-
735  w = other.w;
-
736 
-
737  return;
-
738 }
-
739 
-
740 template<typename T>
-
741 void Vector4<T>::operator=(Vector4<T>&& other) noexcept
-
742 {
-
743  x = std::move(other.x);
-
744  y = std::move(other.y);
-
745  z = std::move(other.z);
-
746  w = std::move(other.w);
-
747 
-
748  return;
-
749 }
-
750 
-
751 // Slow, lame version for intcels
- -
753 {
-
754  Vector4<double> buffer(x, y, z, w);
-
755 
-
756  // Should this still be reversed...? like, instead of mat[x][y], use mat[y][m]
-
757  // idk right now. check that if something doesn't work
-
758  x = (int)((mat[0][0] * buffer.x) + (mat[0][1] * buffer.y) + (mat[0][2] * buffer.z) + (mat[0][3] * buffer.w));
-
759  y = (int)((mat[1][0] * buffer.x) + (mat[1][1] * buffer.y) + (mat[1][2] * buffer.z) + (mat[1][3] * buffer.w));
-
760  z = (int)((mat[2][0] * buffer.x) + (mat[2][1] * buffer.y) + (mat[2][2] * buffer.z) + (mat[2][3] * buffer.w));
-
761  w = (int)((mat[3][0] * buffer.x) + (mat[3][1] * buffer.y) + (mat[3][2] * buffer.z) + (mat[3][3] * buffer.w));
-
762 
-
763  return;
-
764 }
-
765 
-
766 template<typename T>
-
767 bool Vector4<T>::operator!=(const Vector4<T>& other) const
-
768 {
-
769  return !operator==(other);
-
770 }
-
771 
-
772 #include "Vector2.h"
-
773 #include "Vector3.h"
-
774 template<typename T>
- -
776 {
-
777  return Vector2<T>(x, y);
-
778 }
-
779 
-
780 template<typename T>
- -
782 {
-
783  return Vector3<T>(x, y, z);
-
784 }
-
785 
-
786 template class Vector4<int>;
-
787 template class Vector4<double>;
-
788 
-
789 // Some handy predefines
-
790 template <typename T>
-
791 const Vector4<double> Vector4<T>::up(0, 1, 0, 0);
-
792 template <typename T>
-
793 const Vector4<double> Vector4<T>::down(0, -1, 0, 0);
-
794 template <typename T>
-
795 const Vector4<double> Vector4<T>::right(1, 0, 0, 0);
-
796 template <typename T>
-
797 const Vector4<double> Vector4<T>::left(-1, 0, 0, 0);
-
798 template <typename T>
-
799 const Vector4<double> Vector4<T>::forward(1, 0, 0, 0);
-
800 template <typename T>
-
801 const Vector4<double> Vector4<T>::backward(-1, 0, 0, 0);
-
802 template <typename T>
-
803 const Vector4<double> Vector4<T>::future(0, 0, 0, 1);
-
804 template <typename T>
-
805 const Vector4<double> Vector4<T>::past(0, 0, 0, -1);
-
806 template <typename T>
-
807 const Vector4<double> Vector4<T>::one(1, 1, 1, 1);
-
808 template <typename T>
-
809 const Vector4<double> Vector4<T>::zero(0, 0, 0, 0);
-
-
Eule::Vector4::NormalizeSelf
void NormalizeSelf()
Will normalize this vector.
Definition: Vector4.cpp:148
-
Eule::Vector3
Representation of a 3d vector.
Definition: Matrix4x4.h:9
-
Eule::Vector4::x
T x
Definition: Vector4.h:88
-
Eule::Vector4::z
T z
Definition: Vector4.h:90
-
Math.h
-
Eule::Vector4::LerpSelf
void LerpSelf(const Vector4< T > &other, double t)
Will lerp itself towards other by t.
Definition: Vector4.cpp:267
-
Eule::Vector4::w
T w
Definition: Vector4.h:91
-
Vector2.h
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Eule::Vector4::ToDouble
Vector4< double > ToDouble() const
Will convert this vector to a Vector4d.
Definition: Vector4.cpp:179
-
Vector4.h
-
Eule::Vector2
Representation of a 2d vector.
Definition: Vector2.h:14
-
Eule::Vector4::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector4.cpp:31
-
Vector3.h
-
Eule::Vector4::y
T y
Definition: Vector4.h:89
-
Eule
Definition: Collider.h:4
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
- - - - diff --git a/Doxygen/build/Vector4_8h.html b/Doxygen/build/Vector4_8h.html deleted file mode 100644 index ea2127f..0000000 --- a/Doxygen/build/Vector4_8h.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector4.h File Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Classes | -Namespaces | -Typedefs
-
-
Vector4.h File Reference
-
-
-
#include <cstdlib>
-#include <iomanip>
-#include <ostream>
-#include <sstream>
-#include "Matrix4x4.h"
-
-Include dependency graph for Vector4.h:
-
-
- - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - -

-Classes

class  Eule::Vector2< T >
 Representation of a 2d vector. More...
 
class  Eule::Vector3< T >
 Representation of a 3d vector. More...
 
class  Eule::Vector4< T >
 Representation of a 4d vector. More...
 
- - - -

-Namespaces

 Eule
 
- - - - - -

-Typedefs

typedef Vector4< int > Eule::Vector4i
 
typedef Vector4< double > Eule::Vector4d
 
-
- - - - diff --git a/Doxygen/build/Vector4_8h__dep__incl.map b/Doxygen/build/Vector4_8h__dep__incl.map deleted file mode 100644 index 2095a62..0000000 --- a/Doxygen/build/Vector4_8h__dep__incl.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Doxygen/build/Vector4_8h__dep__incl.md5 b/Doxygen/build/Vector4_8h__dep__incl.md5 deleted file mode 100644 index 6c0771d..0000000 --- a/Doxygen/build/Vector4_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -519ab42af69ca3826341022de9cbd030 \ No newline at end of file diff --git a/Doxygen/build/Vector4_8h__dep__incl.png b/Doxygen/build/Vector4_8h__dep__incl.png deleted file mode 100644 index a5df998..0000000 Binary files a/Doxygen/build/Vector4_8h__dep__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector4_8h__incl.map b/Doxygen/build/Vector4_8h__incl.map deleted file mode 100644 index 5701859..0000000 --- a/Doxygen/build/Vector4_8h__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/Doxygen/build/Vector4_8h__incl.md5 b/Doxygen/build/Vector4_8h__incl.md5 deleted file mode 100644 index 3382afb..0000000 --- a/Doxygen/build/Vector4_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ad580b6dad739ccc43a8731390726116 \ No newline at end of file diff --git a/Doxygen/build/Vector4_8h__incl.png b/Doxygen/build/Vector4_8h__incl.png deleted file mode 100644 index 8d771f7..0000000 Binary files a/Doxygen/build/Vector4_8h__incl.png and /dev/null differ diff --git a/Doxygen/build/Vector4_8h_source.html b/Doxygen/build/Vector4_8h_source.html deleted file mode 100644 index 9f2680b..0000000 --- a/Doxygen/build/Vector4_8h_source.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Vector4.h Source File - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Vector4.h
-
-
-Go to the documentation of this file.
1 #pragma once
-
2 #include <cstdlib>
-
3 #include <iomanip>
-
4 #include <ostream>
-
5 #include <sstream>
-
6 #include "Matrix4x4.h"
-
7 
-
8 namespace Eule
-
9 {
-
10  template <typename T> class Vector2;
-
11  template <typename T> class Vector3;
-
12 
-
16  template <typename T>
-
17  class Vector4
-
18  {
-
19  public:
-
20  Vector4() : x{ 0 }, y{ 0 }, z{ 0 }, w{ 0 } {}
-
21  Vector4(T _x, T _y, T _z, T _w) : x{ _x }, y{ _y }, z{ _z }, w{ _w } {}
-
22  Vector4(const Vector4<T>& other) = default;
-
23  Vector4(Vector4<T>&& other) noexcept = default;
-
24 
-
26  double SqrMagnitude() const;
-
27 
-
29  double Magnitude() const;
-
30 
-
32  [[nodiscard]] Vector4<double> Normalize() const;
-
33 
-
35  void NormalizeSelf();
-
36 
-
38  [[nodiscard]] Vector4<T> VectorScale(const Vector4<T>& scalar) const;
-
39 
-
41  void LerpSelf(const Vector4<T>& other, double t);
-
42 
-
44  [[nodiscard]] Vector4<double> Lerp(const Vector4<T>& other, double t) const;
-
45 
-
47  [[nodiscard]] bool Similar(const Vector4<T>& other, double epsilon = 0.00001) const;
-
48 
-
50  [[nodiscard]] Vector4<int> ToInt() const;
-
51 
-
53  [[nodiscard]] Vector4<double> ToDouble() const;
-
54 
-
55  T& operator[](std::size_t idx);
-
56  const T& operator[](std::size_t idx) const;
-
57 
-
58  Vector4<T> operator+(const Vector4<T>& other) const;
-
59  void operator+=(const Vector4<T>& other);
-
60  Vector4<T> operator-(const Vector4<T>& other) const;
-
61  void operator-=(const Vector4<T>& other);
-
62  Vector4<T> operator*(const T scale) const;
-
63  void operator*=(const T scale);
-
64  Vector4<T> operator/(const T scale) const;
-
65  void operator/=(const T scale);
-
66  Vector4<T> operator*(const Matrix4x4& mat) const;
-
67  void operator*=(const Matrix4x4& mat);
-
68  Vector4<T> operator-() const;
-
69 
-
70  operator Vector2<T>() const;
-
71  operator Vector3<T>() const;
-
72 
-
73  void operator=(const Vector4<T>& other);
-
74  void operator=(Vector4<T>&& other) noexcept;
-
75 
-
76  bool operator==(const Vector4<T>& other) const;
-
77  bool operator!=(const Vector4<T>& other) const;
-
78 
-
79  friend std::ostream& operator << (std::ostream& os, const Vector4<T>& v)
-
80  {
-
81  return os << "[x: " << v.x << " y: " << v.y << " z: " << v.z << " w: " << v.w << "]";
-
82  }
-
83  friend std::wostream& operator << (std::wostream& os, const Vector4<T>& v)
-
84  {
-
85  return os << L"[x: " << v.x << L" y: " << v.y << L" z: " << v.z << L" w: " << v.w << L"]";
-
86  }
-
87 
-
88  T x;
-
89  T y;
-
90  T z;
-
91  T w;
-
92 
-
93  // Some handy predefines
-
94  static const Vector4<double> up;
-
95  static const Vector4<double> down;
-
96  static const Vector4<double> right;
-
97  static const Vector4<double> left;
-
98  static const Vector4<double> forward;
-
99  static const Vector4<double> backward;
-
100  static const Vector4<double> future;
-
101  static const Vector4<double> past;
-
102  static const Vector4<double> one;
-
103  static const Vector4<double> zero;
-
104  };
-
105 
- - -
108 }
-
-
Eule::Vector4::ToInt
Vector4< int > ToInt() const
Will convert this vector to a Vector4i.
Definition: Vector4.cpp:173
-
Eule::Vector4::Vector4
Vector4(T _x, T _y, T _z, T _w)
Definition: Vector4.h:21
-
Eule::Vector4::operator+=
void operator+=(const Vector4< T > &other)
Definition: Vector4.cpp:376
-
Eule::Vector4::operator/
Vector4< T > operator/(const T scale) const
Definition: Vector4.cpp:603
-
Eule::Vector4::operator*
Vector4< T > operator*(const T scale) const
Definition: Vector4.cpp:512
-
Eule::Vector4::NormalizeSelf
void NormalizeSelf()
Will normalize this vector.
Definition: Vector4.cpp:148
-
Eule::Vector4::Vector4
Vector4()
Definition: Vector4.h:20
-
Eule::Vector4::backward
static const Vector4< double > backward
Definition: Vector4.h:99
-
Eule::Vector4::x
T x
Definition: Vector4.h:88
-
Eule::Vector4::operator=
void operator=(const Vector4< T > &other)
Conversion method.
Definition: Vector4.cpp:730
-
Eule::Vector4::operator-=
void operator-=(const Vector4< T > &other)
Definition: Vector4.cpp:466
-
Eule::Vector4::Normalize
Vector4< double > Normalize() const
Will return the normalization of this vector.
Definition: Vector4.cpp:92
-
Eule::Vector4::z
T z
Definition: Vector4.h:90
-
Eule::Vector4::operator*=
void operator*=(const T scale)
Definition: Vector4.cpp:557
-
Eule::Vector4d
Vector4< double > Vector4d
Definition: Vector4.h:107
-
Eule::Vector4::VectorScale
Vector4< T > VectorScale(const Vector4< T > &scalar) const
Will scale self.n by scalar.n.
Definition: Vector4.cpp:79
-
Eule::Vector4::operator-
Vector4< T > operator-() const
Definition: Vector4.cpp:719
-
Eule::Vector4::Lerp
Vector4< double > Lerp(const Vector4< T > &other, double t) const
Will return a lerp result between this and another vector.
Definition: Vector4.cpp:287
-
Eule::Vector4::one
static const Vector4< double > one
Definition: Vector4.h:102
-
Eule::Vector4::LerpSelf
void LerpSelf(const Vector4< T > &other, double t)
Will lerp itself towards other by t.
Definition: Vector4.cpp:267
-
Matrix4x4.h
-
Eule::Vector4::forward
static const Vector4< double > forward
Definition: Vector4.h:98
-
Eule::Vector4::operator/=
void operator/=(const T scale)
Definition: Vector4.cpp:647
-
Eule::Vector4::w
T w
Definition: Vector4.h:91
-
Eule::Vector4::down
static const Vector4< double > down
Definition: Vector4.h:95
-
Eule::Vector4::operator+
Vector4< T > operator+(const Vector4< T > &other) const
Definition: Vector4.cpp:331
-
Eule::Vector4::operator[]
T & operator[](std::size_t idx)
Definition: Vector4.cpp:185
-
Eule::Vector4::ToDouble
Vector4< double > ToDouble() const
Will convert this vector to a Vector4d.
Definition: Vector4.cpp:179
-
Eule::Vector4i
Vector4< int > Vector4i
Definition: Vector4.h:106
-
Eule::Vector4::operator!=
bool operator!=(const Vector4< T > &other) const
Definition: Vector4.cpp:767
-
Eule::Vector4::Similar
bool Similar(const Vector4< T > &other, double epsilon=0.00001) const
Will compare if two vectors are similar to a certain epsilon value.
Definition: Vector4.cpp:162
-
Eule::Vector4::Magnitude
double Magnitude() const
Will compute the magnitude.
Definition: Vector4.cpp:38
-
Eule::Vector4::future
static const Vector4< double > future
Definition: Vector4.h:100
-
Eule::Vector4::operator==
bool operator==(const Vector4< T > &other) const
Definition: Vector4.cpp:659
-
Eule::Vector4::zero
static const Vector4< double > zero
Definition: Vector4.h:103
-
Eule::Vector4::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector4.cpp:31
-
Eule::Vector4::up
static const Vector4< double > up
Definition: Vector4.h:94
-
Eule::Vector4::past
static const Vector4< double > past
Definition: Vector4.h:101
-
Eule::Vector4::operator<<
friend std::ostream & operator<<(std::ostream &os, const Vector4< T > &v)
Definition: Vector4.h:79
-
Eule::Vector4::y
T y
Definition: Vector4.h:89
-
Eule::Vector4::left
static const Vector4< double > left
Definition: Vector4.h:97
-
Eule
Definition: Collider.h:4
-
Eule::Vector4::right
static const Vector4< double > right
Definition: Vector4.h:96
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
- - - - diff --git a/Doxygen/build/annotated.html b/Doxygen/build/annotated.html deleted file mode 100644 index 801b6e4..0000000 --- a/Doxygen/build/annotated.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - -
 NEule
 CColliderAbstract class of a collider domain
 CMathMath utility class containing basic functions
 CMatrix4x4A matrix 4x4 class representing a 3d transformation
 CQuaternion3D rotation representation
 CRectTrivial data structure representing a rectangle
 CTrapazoidalPrismColliderA collider describing a trapazoidal prism
 CVector2Representation of a 2d vector
 CVector3Representation of a 3d vector
 CVector4Representation of a 4d vector
-
-
- - - - diff --git a/Doxygen/build/bc_s.png b/Doxygen/build/bc_s.png deleted file mode 100644 index 224b29a..0000000 Binary files a/Doxygen/build/bc_s.png and /dev/null differ diff --git a/Doxygen/build/bdwn.png b/Doxygen/build/bdwn.png deleted file mode 100644 index 940a0b9..0000000 Binary files a/Doxygen/build/bdwn.png and /dev/null differ diff --git a/Doxygen/build/classEule_1_1Collider-members.html b/Doxygen/build/classEule_1_1Collider-members.html deleted file mode 100644 index fd919cf..0000000 --- a/Doxygen/build/classEule_1_1Collider-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::Collider Member List
-
-
- -

This is the complete list of members for Eule::Collider, including all inherited members.

- - -
Contains(const Vector3d &point) const =0Eule::Colliderpure virtual
- - - - diff --git a/Doxygen/build/classEule_1_1Collider.html b/Doxygen/build/classEule_1_1Collider.html deleted file mode 100644 index b33fce5..0000000 --- a/Doxygen/build/classEule_1_1Collider.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Collider Class Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -List of all members
-
-
Eule::Collider Class Referenceabstract
-
-
- -

Abstract class of a collider domain. - More...

- -

#include <Collider.h>

-
-Inheritance diagram for Eule::Collider:
-
-
Inheritance graph
- - - - -
[legend]
- - - - - -

-Public Member Functions

virtual bool Contains (const Vector3d &point) const =0
 Tests, if this Collider contains a point. More...
 
-

Detailed Description

-

Abstract class of a collider domain.

-

Specializations describe a shape in 3d space, and provide implementations of the methods below, for their specific shape. Examples could be a SphereCollider, a BoxCollider, etc...

- -

Definition at line 10 of file Collider.h.

-

Member Function Documentation

- -

◆ Contains()

- -
-
- - - - - -
- - - - - - - - -
virtual bool Eule::Collider::Contains (const Vector3dpoint) const
-
-pure virtual
-
- -

Tests, if this Collider contains a point.

- -

Implemented in Eule::TrapazoidalPrismCollider.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/Doxygen/build/classEule_1_1Collider__inherit__graph.map b/Doxygen/build/classEule_1_1Collider__inherit__graph.map deleted file mode 100644 index 84537af..0000000 --- a/Doxygen/build/classEule_1_1Collider__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/classEule_1_1Collider__inherit__graph.md5 b/Doxygen/build/classEule_1_1Collider__inherit__graph.md5 deleted file mode 100644 index 58581a3..0000000 --- a/Doxygen/build/classEule_1_1Collider__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0f12e27dac5bc597f7fa2ef2f62c1652 \ No newline at end of file diff --git a/Doxygen/build/classEule_1_1Collider__inherit__graph.png b/Doxygen/build/classEule_1_1Collider__inherit__graph.png deleted file mode 100644 index 0e2e735..0000000 Binary files a/Doxygen/build/classEule_1_1Collider__inherit__graph.png and /dev/null differ diff --git a/Doxygen/build/classEule_1_1Math-members.html b/Doxygen/build/classEule_1_1Math-members.html deleted file mode 100644 index e78a44b..0000000 --- a/Doxygen/build/classEule_1_1Math-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::Math Member List
-
-
- -

This is the complete list of members for Eule::Math, including all inherited members.

- - - - - - - - - - - - - - - -
Abs(const double a)Eule::Mathinlinestatic
Clamp(const double v, const double min, const double max)Eule::Mathinlinestatic
Lerp(double a, double b, double t)Eule::Mathinlinestatic
Max(const double a, const double b)Eule::Mathinlinestatic
Min(const double a, const double b)Eule::Mathinlinestatic
Mod(const int numerator, const int denominator)Eule::Mathstatic
Oscillate(const double a, const double b, const double counter, const double speed)Eule::Mathstatic
Random()Eule::Mathstatic
RandomChance(const double chance)Eule::Mathstatic
RandomInt()Eule::Mathstatic
RandomIntRange(const int max, const int min)Eule::Mathstatic
RandomRange(const double min, const double max)Eule::Mathstatic
RandomUint()Eule::Mathstatic
Similar(const double a, const double b, const double epsilon=0.00001)Eule::Mathinlinestatic
- - - - diff --git a/Doxygen/build/classEule_1_1Math.html b/Doxygen/build/classEule_1_1Math.html deleted file mode 100644 index 05619a9..0000000 --- a/Doxygen/build/classEule_1_1Math.html +++ /dev/null @@ -1,769 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Math Class Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Static Public Member Functions | -List of all members
-
-
Eule::Math Class Reference
-
-
- -

Math utility class containing basic functions. - More...

- -

#include <Math.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static constexpr double Max (const double a, const double b)
 Will return the bigger of two values. More...
 
static constexpr double Min (const double a, const double b)
 Will return the smaller of two values. More...
 
static constexpr double Clamp (const double v, const double min, const double max)
 Will return v, but at least min, and at most max More...
 
static constexpr double Lerp (double a, double b, double t)
 Will return the linear interpolation between a and b by t More...
 
static constexpr double Abs (const double a)
 Will return the absolute value of a More...
 
static constexpr bool Similar (const double a, const double b, const double epsilon=0.00001)
 Compares two double values with a given accuracy. More...
 
static int Mod (const int numerator, const int denominator)
 Will compute the actual modulo of a fraction. More...
 
static double Random ()
 Will return a random double between 0 and 1 More...
 
static unsigned int RandomUint ()
 Will return a random unsigned integer. More...
 
static unsigned int RandomInt ()
 Will return a random integer. More...
 
static double RandomRange (const double min, const double max)
 Will return a random double within a range
- These bounds are INCLUSIVE! More...
 
static int RandomIntRange (const int max, const int min)
 Will return a random integer within a range. More...
 
static bool RandomChance (const double chance)
 Will 'roll' a dice, returning true \(100 * chance\) percent of the time. More...
 
static double Oscillate (const double a, const double b, const double counter, const double speed)
 Kind of like \(sin(counter)\), but it oscillates over \([a,b]\) instead of \([-1,1]\), by a given speed. More...
 
-

Detailed Description

-

Math utility class containing basic functions.

- -

Definition at line 9 of file Math.h.

-

Member Function Documentation

- -

◆ Abs()

- -
-
- - - - - -
- - - - - - - - -
constexpr double Eule::Math::Abs (const double a)
-
-inlinestaticconstexpr
-
- -

Will return the absolute value of a

- -

Definition at line 97 of file Math.h.

-
98  {
-
99  return (a > 0.0) ? a : -a;
-
100  }
-
-
-
- -

◆ Clamp()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
constexpr double Eule::Math::Clamp (const double v,
const double min,
const double max 
)
-
-inlinestaticconstexpr
-
- -

Will return v, but at least min, and at most max

- -

Definition at line 86 of file Math.h.

-
87  {
-
88  return Max(Min(v, max), min);
-
89  }
-
-
-
- -

◆ Lerp()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
constexpr double Eule::Math::Lerp (double a,
double b,
double t 
)
-
-inlinestaticconstexpr
-
- -

Will return the linear interpolation between a and b by t

- -

Definition at line 91 of file Math.h.

-
92  {
-
93  const double it = 1.0 - t;
-
94  return (a * it) + (b * t);
-
95  }
-
-
-
- -

◆ Max()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
constexpr double Eule::Math::Max (const double a,
const double b 
)
-
-inlinestaticconstexpr
-
- -

Will return the bigger of two values.

- -

Definition at line 76 of file Math.h.

-
77  {
-
78  return (a > b) ? a : b;
-
79  }
-
-
-
- -

◆ Min()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
constexpr double Eule::Math::Min (const double a,
const double b 
)
-
-inlinestaticconstexpr
-
- -

Will return the smaller of two values.

- -

Definition at line 81 of file Math.h.

-
82  {
-
83  return (a < b) ? a : b;
-
84  }
-
-
-
- -

◆ Mod()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int Math::Mod (const int numerator,
const int denominator 
)
-
-static
-
- -

Will compute the actual modulo of a fraction.

-

The % operator returns bs for n<0. May throw divide-by-zero std::logic_error

- -

Definition at line 78 of file Math.cpp.

-
79 {
-
80  if (denominator == 0)
-
81  throw std::logic_error("Divide by zero");
-
82 
-
83  // Quick optimizations:
-
84 
-
85  // -> 0/n is always 0
-
86  if (numerator == 0)
-
87  return 0;
-
88 
-
89  // -> operator% works for a > 0 && b > 0
-
90  if (denominator > 0 && numerator > 0)
-
91  return numerator % denominator;
-
92 
-
93  // Else: generalized formula
-
94  return (denominator + (numerator % denominator)) % denominator;
-
95 }
-
-
-
- -

◆ Oscillate()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
double Math::Oscillate (const double a,
const double b,
const double counter,
const double speed 
)
-
-static
-
- -

Kind of like \(sin(counter)\), but it oscillates over \([a,b]\) instead of \([-1,1]\), by a given speed.

-


- Given that \(speed = 1\), the result will always be a if counter is even, and b if counter is uneven.
- If counter is a rational, the result will oscillate between a and b, like sin() does.
- If you increase speed, the oscillation frequency will increase. Meaning \(speed = 2\) would result in \(counter=0.5\) returning b.

- -

Definition at line 68 of file Math.cpp.

-
69 {
-
70  return (sin(counter * speed * PI - HALF_PI) * 0.5 + 0.5) * (b-a) + a;
-
71 }
-
-
-
- -

◆ Random()

- -
-
- - - - - -
- - - - - - - -
double Math::Random ()
-
-static
-
- -

Will return a random double between 0 and 1

- -

Definition at line 29 of file Math.cpp.

-
30 {
- -
32 
-
33  return (rng() % 694206942069ll) / 694206942069.0;
-
34 }
-
-
-
- -

◆ RandomChance()

- -
-
- - - - - -
- - - - - - - - -
bool Math::RandomChance (const double chance)
-
-static
-
- -

Will 'roll' a dice, returning true \(100 * chance\) percent of the time.

- -

Definition at line 73 of file Math.cpp.

-
74 {
-
75  return Random() <= chance;
-
76 }
-
-
-
- -

◆ RandomInt()

- -
-
- - - - - -
- - - - - - - -
unsigned int Math::RandomInt ()
-
-static
-
- -

Will return a random integer.

- -

Definition at line 45 of file Math.cpp.

-
46 {
- -
48 
-
49  // Since this is supposed to return a random value anyways,
-
50  // we can let the random uint overflow without any problems.
-
51  return (int)rng();
-
52 }
-
-
-
- -

◆ RandomIntRange()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int Math::RandomIntRange (const int max,
const int min 
)
-
-static
-
- -

Will return a random integer within a range.

-

This is faster than (int)RandomRange(x,y)
- These bounds are INCLUSIVE!

- -

Definition at line 63 of file Math.cpp.

-
64 {
-
65  return (rng() % (max + 1 - min)) + min;
-
66 }
-
-
-
- -

◆ RandomRange()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
double Math::RandomRange (const double min,
const double max 
)
-
-static
-
- -

Will return a random double within a range
- These bounds are INCLUSIVE!

- -

Definition at line 56 of file Math.cpp.

-
57 {
-
58  return (Random() * (max - min)) + min;
-
59 }
-
-
-
- -

◆ RandomUint()

- -
-
- - - - - -
- - - - - - - -
unsigned int Math::RandomUint ()
-
-static
-
- -

Will return a random unsigned integer.

- -

Definition at line 37 of file Math.cpp.

-
38 {
- -
40 
-
41  return rng();
-
42 }
-
-
-
- -

◆ Similar()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
constexpr bool Eule::Math::Similar (const double a,
const double b,
const double epsilon = 0.00001 
)
-
-inlinestaticconstexpr
-
- -

Compares two double values with a given accuracy.

- -

Definition at line 102 of file Math.h.

-
103  {
-
104  return Abs(a - b) <= epsilon;
-
105  }
-
-
-
-
The documentation for this class was generated from the following files: -
-
MAKE_SURE_RNG_IS_INITIALIZED
#define MAKE_SURE_RNG_IS_INITIALIZED
Definition: Math.cpp:8
-
PI
static constexpr double PI
Pi up to 50 decimal places.
Definition: Constants.h:6
-
Eule::Math::Abs
static constexpr double Abs(const double a)
Will return the absolute value of a
Definition: Math.h:97
-
Eule::Math::Max
static constexpr double Max(const double a, const double b)
Will return the bigger of two values.
Definition: Math.h:76
-
Eule::Math::Min
static constexpr double Min(const double a, const double b)
Will return the smaller of two values.
Definition: Math.h:81
-
Eule::Math::Random
static double Random()
Will return a random double between 0 and 1
Definition: Math.cpp:29
-
HALF_PI
static constexpr double HALF_PI
Pi divided by two.
Definition: Constants.h:9
- - - - diff --git a/Doxygen/build/classEule_1_1Matrix4x4-members.html b/Doxygen/build/classEule_1_1Matrix4x4-members.html deleted file mode 100644 index cbab5a7..0000000 --- a/Doxygen/build/classEule_1_1Matrix4x4-members.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::Matrix4x4 Member List
-
-
- -

This is the complete list of members for Eule::Matrix4x4, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
aEule::Matrix4x4
Adjoint(std::size_t n) constEule::Matrix4x4
bEule::Matrix4x4
cEule::Matrix4x4
dEule::Matrix4x4
Determinant(std::size_t n) constEule::Matrix4x4
DropTranslationComponents() constEule::Matrix4x4
eEule::Matrix4x4
fEule::Matrix4x4
gEule::Matrix4x4
GetCofactors(std::size_t p, std::size_t q, std::size_t n) constEule::Matrix4x4
GetTranslationComponent() constEule::Matrix4x4
hEule::Matrix4x4
iEule::Matrix4x4
Inverse3x3() constEule::Matrix4x4
Inverse4x4() constEule::Matrix4x4
IsInversible3x3() constEule::Matrix4x4
IsInversible4x4() constEule::Matrix4x4
jEule::Matrix4x4
kEule::Matrix4x4
lEule::Matrix4x4
mEule::Matrix4x4
Matrix4x4()Eule::Matrix4x4
Matrix4x4(const Matrix4x4 &other)Eule::Matrix4x4
Matrix4x4(Matrix4x4 &&other) noexceptEule::Matrix4x4
Multiply4x4(const Matrix4x4 &o) constEule::Matrix4x4
nEule::Matrix4x4
oEule::Matrix4x4
operator!=(const Matrix4x4 &other)Eule::Matrix4x4
operator*(const Matrix4x4 &other) constEule::Matrix4x4
operator*(const double scalar) constEule::Matrix4x4
operator*=(const Matrix4x4 &other)Eule::Matrix4x4
operator*=(const double scalar)Eule::Matrix4x4
operator+(const Matrix4x4 &other) constEule::Matrix4x4
operator+=(const Matrix4x4 &other)Eule::Matrix4x4
operator-(const Matrix4x4 &other) constEule::Matrix4x4
operator-=(const Matrix4x4 &other)Eule::Matrix4x4
operator/(const Matrix4x4 &other) constEule::Matrix4x4
operator/(const double denominator) constEule::Matrix4x4
operator/=(const Matrix4x4 &other)Eule::Matrix4x4
operator/=(const double denominator)Eule::Matrix4x4
operator<<(std::ostream &os, const Matrix4x4 &m)Eule::Matrix4x4friend
operator<<(std::wostream &os, const Matrix4x4 &m)Eule::Matrix4x4friend
operator=(const Matrix4x4 &other)Eule::Matrix4x4
operator=(Matrix4x4 &&other) noexceptEule::Matrix4x4
operator==(const Matrix4x4 &other)Eule::Matrix4x4
operator[](std::size_t y)Eule::Matrix4x4
operator[](std::size_t y) constEule::Matrix4x4
pEule::Matrix4x4
SetTranslationComponent(const Vector3d &trans)Eule::Matrix4x4
Similar(const Matrix4x4 &other, double epsilon=0.00001) constEule::Matrix4x4
Transpose3x3() constEule::Matrix4x4
Transpose4x4() constEule::Matrix4x4
vEule::Matrix4x4
- - - - diff --git a/Doxygen/build/classEule_1_1Matrix4x4.html b/Doxygen/build/classEule_1_1Matrix4x4.html deleted file mode 100644 index 7879bb6..0000000 --- a/Doxygen/build/classEule_1_1Matrix4x4.html +++ /dev/null @@ -1,1979 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Matrix4x4 Class Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -Friends | -List of all members
-
-
Eule::Matrix4x4 Class Reference
-
-
- -

A matrix 4x4 class representing a 3d transformation. - More...

- -

#include <Matrix4x4.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Matrix4x4 ()
 
 Matrix4x4 (const Matrix4x4 &other)
 
 Matrix4x4 (Matrix4x4 &&other) noexcept
 
Matrix4x4 operator* (const Matrix4x4 &other) const
 
void operator*= (const Matrix4x4 &other)
 
Matrix4x4 operator/ (const Matrix4x4 &other) const
 
void operator/= (const Matrix4x4 &other)
 
Matrix4x4 operator* (const double scalar) const
 Cellwise scaling. More...
 
void operator*= (const double scalar)
 Cellwise scaling. More...
 
Matrix4x4 operator/ (const double denominator) const
 Cellwise division. More...
 
void operator/= (const double denominator)
 Cellwise division. More...
 
Matrix4x4 operator+ (const Matrix4x4 &other) const
 Cellwise addition. More...
 
void operator+= (const Matrix4x4 &other)
 Cellwise addition. More...
 
Matrix4x4 operator- (const Matrix4x4 &other) const
 Cellwise subtraction. More...
 
void operator-= (const Matrix4x4 &other)
 Cellwise subtraction. More...
 
std::array< double, 4 > & operator[] (std::size_t y)
 
const std::array< double, 4 > & operator[] (std::size_t y) const
 
void operator= (const Matrix4x4 &other)
 
void operator= (Matrix4x4 &&other) noexcept
 
bool operator== (const Matrix4x4 &other)
 
bool operator!= (const Matrix4x4 &other)
 
const Vector3d GetTranslationComponent () const
 Will return d,h,l as a Vector3d(x,y,z) More...
 
void SetTranslationComponent (const Vector3d &trans)
 Will set d,h,l from a Vector3d(x,y,z) More...
 
Matrix4x4 DropTranslationComponents () const
 Will return this Matrix4x4 with d,h,l being set to 0. More...
 
Matrix4x4 Transpose3x3 () const
 Will return the 3x3 transpose of this matrix. More...
 
Matrix4x4 Transpose4x4 () const
 Will return the 4x4 transpose of this matrix. More...
 
Matrix4x4 Multiply4x4 (const Matrix4x4 &o) const
 Will return the Matrix4x4 of an actual 4x4 multiplication. operator* only does a 3x3. More...
 
Matrix4x4 GetCofactors (std::size_t p, std::size_t q, std::size_t n) const
 Will return the cofactors of this matrix, by dimension n. More...
 
double Determinant (std::size_t n) const
 Will return the determinant, by dimension n. More...
 
Matrix4x4 Adjoint (std::size_t n) const
 Will return the adjoint of this matrix, by dimension n. More...
 
Matrix4x4 Inverse3x3 () const
 Will return the 3x3-inverse of this matrix. More...
 
Matrix4x4 Inverse4x4 () const
 Will return the full 4x4-inverse of this matrix. More...
 
bool IsInversible3x3 () const
 Will check if the 3x3-component is inversible. More...
 
bool IsInversible4x4 () const
 Will check if the entire matrix is inversible. More...
 
bool Similar (const Matrix4x4 &other, double epsilon=0.00001) const
 Will compare if two matrices are similar to a certain epsilon value. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

std::array< std::array< double, 4 >, 4 > v
 Array holding the matrices values. More...
 
double & a = v[0][0]
 
double & b = v[0][1]
 
double & c = v[0][2]
 
double & d = v[0][3]
 
double & e = v[1][0]
 
double & f = v[1][1]
 
double & g = v[1][2]
 
double & h = v[1][3]
 
double & i = v[2][0]
 
double & j = v[2][1]
 
double & k = v[2][2]
 
double & l = v[2][3]
 
double & m = v[3][0]
 
double & n = v[3][1]
 
double & o = v[3][2]
 
double & p = v[3][3]
 
- - - - - -

-Friends

std::ostream & operator<< (std::ostream &os, const Matrix4x4 &m)
 
std::wostream & operator<< (std::wostream &os, const Matrix4x4 &m)
 
-

Detailed Description

-

A matrix 4x4 class representing a 3d transformation.

-

This matrix consists of a 3x3 matrix containing scaling and rotation information, and a vector (d,h,l) representing the translation.

-
myMatrix[y][x] = 3
-
-
X ==============>
-
Y
-
| # # # # # # # # # # #
-
| # a b c d #
-
| # #
-
| # e f g h #
-
| # #
-
V # i j k l #
-
# #
-
# m n o p #
-
# # # # # # # # # # #
-

Note: This class can also be used to compute regular 4x4 multiplications. Use Multiply4x4() for that.

- -

Definition at line 36 of file Matrix4x4.h.

-

Constructor & Destructor Documentation

- -

◆ Matrix4x4() [1/3]

- -
-
- - - - - - - -
Matrix4x4::Matrix4x4 ()
-
- -

Definition at line 12 of file Matrix4x4.cpp.

-
13 {
-
14  // Create identity matrix
-
15  for (std::size_t i = 0; i < 4; i++)
-
16  for (std::size_t j = 0; j < 4; j++)
-
17  v[i][j] = double(i == j);
-
18 
-
19  return;
-
20 }
-
-
-
- -

◆ Matrix4x4() [2/3]

- -
-
- - - - - - - - -
Matrix4x4::Matrix4x4 (const Matrix4x4other)
-
- -

Definition at line 22 of file Matrix4x4.cpp.

-
23 {
-
24  v = other.v;
-
25  return;
-
26 }
-
-
-
- -

◆ Matrix4x4() [3/3]

- -
-
- - - - - -
- - - - - - - - -
Matrix4x4::Matrix4x4 (Matrix4x4 && other)
-
-noexcept
-
- -

Definition at line 28 of file Matrix4x4.cpp.

-
29 {
-
30  v = std::move(other.v);
-
31  return;
-
32 }
-
-
-
-

Member Function Documentation

- -

◆ Adjoint()

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::Adjoint (std::size_t n) const
-
- -

Will return the adjoint of this matrix, by dimension n.

- -

Definition at line 533 of file Matrix4x4.cpp.

-
534 {
-
535  if (n > 4)
-
536  throw std::runtime_error("Dimension out of range! 0 <= n <= 4");
-
537 
-
538  Matrix4x4 adj;
-
539  double sign = 1;
-
540 
-
541  for (std::size_t i = 0; i < n; i++)
-
542  for (std::size_t j = 0; j < n; j++)
-
543  {
-
544  Matrix4x4 cofs = GetCofactors(i, j, n);
-
545 
-
546  // sign of adj[j][i] positive if sum of row
-
547  // and column indexes is even.
-
548  sign = ((i + j) % 2 == 0) ? 1 : -1;
-
549 
-
550  // Interchanging rows and columns to get the
-
551  // transpose of the cofactor matrix
-
552  adj[j][i] = sign * (cofs.Determinant(n - 1));
-
553  }
-
554 
-
555  return adj;
-
556 }
-
-
-
- -

◆ Determinant()

- -
-
- - - - - - - - -
double Matrix4x4::Determinant (std::size_t n) const
-
- -

Will return the determinant, by dimension n.

- -

Definition at line 511 of file Matrix4x4.cpp.

-
512 {
-
513  if (n > 4)
-
514  throw std::runtime_error("Dimension out of range! 0 <= n <= 4");
-
515 
-
516  double d = 0;
-
517  double sign = 1;
-
518 
-
519  if (n == 1)
-
520  return v[0][0];
-
521 
-
522  for (std::size_t x = 0; x < n; x++)
-
523  {
-
524  Matrix4x4 cofs = GetCofactors(0, x, n);
-
525 
-
526  d += sign * v[0][x] * cofs.Determinant(n - 1);
-
527  sign = -sign;
-
528  }
-
529 
-
530  return d;
-
531 }
-
-
-
- -

◆ DropTranslationComponents()

- -
-
- - - - - - - -
Matrix4x4 Matrix4x4::DropTranslationComponents () const
-
- -

Will return this Matrix4x4 with d,h,l being set to 0.

- -

Definition at line 420 of file Matrix4x4.cpp.

-
421 {
-
422  Matrix4x4 m(*this);
-
423  m.d = 0;
-
424  m.h = 0;
-
425  m.l = 0;
-
426  return m;
-
427 }
-
-
-
- -

◆ GetCofactors()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
Matrix4x4 Matrix4x4::GetCofactors (std::size_t p,
std::size_t q,
std::size_t n 
) const
-
- -

Will return the cofactors of this matrix, by dimension n.

- -

Definition at line 478 of file Matrix4x4.cpp.

-
479 {
-
480  if (n > 4)
-
481  throw std::runtime_error("Dimension out of range! 0 <= n <= 4");
-
482 
-
483  Matrix4x4 cofs;
-
484 
-
485  std::size_t i = 0;
-
486  std::size_t j = 0;
-
487 
-
488  for (std::size_t y = 0; y < n; y++)
-
489  for (std::size_t x = 0; x < n; x++)
-
490  {
-
491  if ((y != p) && (x != q))
-
492  {
-
493  cofs[i][j] = v[y][x];
-
494  j++;
-
495  }
-
496 
-
497  if (j == n - 1)
-
498  {
-
499  j = 0;
-
500  i++;
-
501  }
-
502  }
-
503 
-
504  return cofs;
-
505 }
-
-
-
- -

◆ GetTranslationComponent()

- -
-
- - - - - - - -
const Vector3d Matrix4x4::GetTranslationComponent () const
-
- -

Will return d,h,l as a Vector3d(x,y,z)

- -

Definition at line 407 of file Matrix4x4.cpp.

-
408 {
-
409  return Vector3d(d, h, l);
-
410 }
-
-
-
- -

◆ Inverse3x3()

- -
-
- - - - - - - -
Matrix4x4 Matrix4x4::Inverse3x3 () const
-
- -

Will return the 3x3-inverse of this matrix.

-


- Meaning, the 3x3 component will be inverted, and the translation component will be negated

- -

Definition at line 558 of file Matrix4x4.cpp.

-
559 {
-
560  Matrix4x4 inv;
-
561 
-
562  double det = Determinant(3);
-
563  if (det == 0.0)
-
564  throw std::runtime_error("Matrix3x3 not inversible!");
-
565 
-
566  Matrix4x4 adj = Adjoint(3);
-
567 
-
568  for (std::size_t i = 0; i < 3; i++)
-
569  for (std::size_t j = 0; j < 3; j++)
-
570  inv[i][j] = adj[i][j] / det;
-
571 
- -
573 
-
574  return inv;
-
575 }
-
-
-
- -

◆ Inverse4x4()

- -
-
- - - - - - - -
Matrix4x4 Matrix4x4::Inverse4x4 () const
-
- -

Will return the full 4x4-inverse of this matrix.

- -

Definition at line 577 of file Matrix4x4.cpp.

-
578 {
-
579  Matrix4x4 inv;
-
580 
-
581  double det = Determinant(4);
-
582  if (det == 0.0)
-
583  throw std::runtime_error("Matrix4x4 not inversible!");
-
584 
-
585  Matrix4x4 adj = Adjoint(4);
-
586 
-
587  for (std::size_t i = 0; i < 4; i++)
-
588  for (std::size_t j = 0; j < 4; j++)
-
589  inv[i][j] = adj[i][j] / det;
-
590 
-
591  return inv;
-
592 }
-
-
-
- -

◆ IsInversible3x3()

- -
-
- - - - - - - -
bool Matrix4x4::IsInversible3x3 () const
-
- -

Will check if the 3x3-component is inversible.

- -

Definition at line 598 of file Matrix4x4.cpp.

-
599 {
-
600  return (Determinant(3) != 0);
-
601 }
-
-
-
- -

◆ IsInversible4x4()

- -
-
- - - - - - - -
bool Matrix4x4::IsInversible4x4 () const
-
- -

Will check if the entire matrix is inversible.

- -

Definition at line 603 of file Matrix4x4.cpp.

-
604 {
-
605  return (Determinant(4) != 0);
-
606 }
-
-
-
- -

◆ Multiply4x4()

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::Multiply4x4 (const Matrix4x4o) const
-
- -

Will return the Matrix4x4 of an actual 4x4 multiplication. operator* only does a 3x3.

- -

Definition at line 451 of file Matrix4x4.cpp.

-
452 {
-
453  Matrix4x4 m;
-
454 
-
455  m[0][0] = (v[0][0]*o[0][0]) + (v[0][1]*o[1][0]) + (v[0][2]*o[2][0]) + (v[0][3]*o[3][0]);
-
456  m[0][1] = (v[0][0]*o[0][1]) + (v[0][1]*o[1][1]) + (v[0][2]*o[2][1]) + (v[0][3]*o[3][1]);
-
457  m[0][2] = (v[0][0]*o[0][2]) + (v[0][1]*o[1][2]) + (v[0][2]*o[2][2]) + (v[0][3]*o[3][2]);
-
458  m[0][3] = (v[0][0]*o[0][3]) + (v[0][1]*o[1][3]) + (v[0][2]*o[2][3]) + (v[0][3]*o[3][3]);
-
459 
-
460  m[1][0] = (v[1][0]*o[0][0]) + (v[1][1]*o[1][0]) + (v[1][2]*o[2][0]) + (v[1][3]*o[3][0]);
-
461  m[1][1] = (v[1][0]*o[0][1]) + (v[1][1]*o[1][1]) + (v[1][2]*o[2][1]) + (v[1][3]*o[3][1]);
-
462  m[1][2] = (v[1][0]*o[0][2]) + (v[1][1]*o[1][2]) + (v[1][2]*o[2][2]) + (v[1][3]*o[3][2]);
-
463  m[1][3] = (v[1][0]*o[0][3]) + (v[1][1]*o[1][3]) + (v[1][2]*o[2][3]) + (v[1][3]*o[3][3]);
-
464 
-
465  m[2][0] = (v[2][0]*o[0][0]) + (v[2][1]*o[1][0]) + (v[2][2]*o[2][0]) + (v[2][3]*o[3][0]);
-
466  m[2][1] = (v[2][0]*o[0][1]) + (v[2][1]*o[1][1]) + (v[2][2]*o[2][1]) + (v[2][3]*o[3][1]);
-
467  m[2][2] = (v[2][0]*o[0][2]) + (v[2][1]*o[1][2]) + (v[2][2]*o[2][2]) + (v[2][3]*o[3][2]);
-
468  m[2][3] = (v[2][0]*o[0][3]) + (v[2][1]*o[1][3]) + (v[2][2]*o[2][3]) + (v[2][3]*o[3][3]);
-
469 
-
470  m[3][0] = (v[3][0]*o[0][0]) + (v[3][1]*o[1][0]) + (v[3][2]*o[2][0]) + (v[3][3]*o[3][0]);
-
471  m[3][1] = (v[3][0]*o[0][1]) + (v[3][1]*o[1][1]) + (v[3][2]*o[2][1]) + (v[3][3]*o[3][1]);
-
472  m[3][2] = (v[3][0]*o[0][2]) + (v[3][1]*o[1][2]) + (v[3][2]*o[2][2]) + (v[3][3]*o[3][2]);
-
473  m[3][3] = (v[3][0]*o[0][3]) + (v[3][1]*o[1][3]) + (v[3][2]*o[2][3]) + (v[3][3]*o[3][3]);
-
474 
-
475  return m;
-
476 }
-
-
-
- -

◆ operator!=()

- -
-
- - - - - - - - -
bool Matrix4x4::operator!= (const Matrix4x4other)
-
- -

Definition at line 402 of file Matrix4x4.cpp.

-
403 {
-
404  return !operator==(other);
-
405 }
-
-
-
- -

◆ operator*() [1/2]

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::operator* (const double scalar) const
-
- -

Cellwise scaling.

- -

Definition at line 164 of file Matrix4x4.cpp.

-
165 {
-
166  Matrix4x4 m;
-
167 
-
168  #ifndef _EULE_NO_INTRINSICS_
-
169 
-
170  // Load matrix rows
-
171  __m256d __row0 = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
172  __m256d __row1 = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
173  __m256d __row2 = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
174  __m256d __row3 = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
175 
-
176  // Load scalar
-
177  __m256d __scalar = _mm256_set1_pd(scalar);
-
178 
-
179  // Scale values
-
180  __m256d __sr0 = _mm256_mul_pd(__row0, __scalar);
-
181  __m256d __sr1 = _mm256_mul_pd(__row1, __scalar);
-
182  __m256d __sr2 = _mm256_mul_pd(__row2, __scalar);
-
183  __m256d __sr3 = _mm256_mul_pd(__row3, __scalar);
-
184 
-
185  // Extract results
-
186  _mm256_storeu_pd(m.v[0].data(), __sr0);
-
187  _mm256_storeu_pd(m.v[1].data(), __sr1);
-
188  _mm256_storeu_pd(m.v[2].data(), __sr2);
-
189  _mm256_storeu_pd(m.v[3].data(), __sr3);
-
190 
-
191  #else
-
192 
-
193  for (std::size_t x = 0; x < 4; x++)
-
194  for (std::size_t y = 0; y < 4; y++)
-
195  m[x][y] = v[x][y] * scalar;
-
196 
-
197  #endif
-
198 
-
199  return m;
-
200 }
-
-
-
- -

◆ operator*() [2/2]

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::operator* (const Matrix4x4other) const
-
- -

Definition at line 34 of file Matrix4x4.cpp.

-
35 {
-
36  Matrix4x4 newMatrix;
-
37  newMatrix.p = 1;
-
38 
-
39  #ifndef _EULE_NO_INTRINSICS_
-
40 
-
41 
-
42  /* <= Matrix3x3 multiplication => */
-
43 
-
44  // Load matrix components
-
45  __m256d __va1 = _mm256_set_pd(v[0][0], v[0][0], v[0][0], v[1][0]);
-
46  __m256d __va2 = _mm256_set_pd(v[1][0], v[1][0], v[2][0], v[2][0]);
-
47 
-
48  __m256d __oa1 = _mm256_set_pd(other[0][0], other[0][1], other[0][2], other[0][0]);
-
49  __m256d __oa2 = _mm256_set_pd(other[0][1], other[0][2], other[0][0], other[0][1]);
-
50 
-
51  __m256d __vb1 = _mm256_set_pd(v[0][1], v[0][1], v[0][1], v[1][1]);
-
52  __m256d __vb2 = _mm256_set_pd(v[1][1], v[1][1], v[2][1], v[2][1]);
-
53 
-
54  __m256d __ob1 = _mm256_set_pd(other[1][0], other[1][1], other[1][2], other[1][0]);
-
55  __m256d __ob2 = _mm256_set_pd(other[1][1], other[1][2], other[1][0], other[1][1]);
-
56 
-
57  __m256d __vc1 = _mm256_set_pd(v[0][2], v[0][2], v[0][2], v[1][2]);
-
58  __m256d __vc2 = _mm256_set_pd(v[1][2], v[1][2], v[2][2], v[2][2]);
-
59 
-
60  __m256d __oc1 = _mm256_set_pd(other[2][0], other[2][1], other[2][2], other[2][0]);
-
61  __m256d __oc2 = _mm256_set_pd(other[2][1], other[2][2], other[2][0], other[2][1]);
-
62 
-
63  // Initialize sums
-
64  __m256d __sum1 = _mm256_set1_pd(0);
-
65  __m256d __sum2 = _mm256_set1_pd(0);
-
66 
-
67  // Let's multiply-add them together
-
68  // First, the first block
-
69  __sum1 = _mm256_fmadd_pd(__va1, __oa1, __sum1);
-
70  __sum1 = _mm256_fmadd_pd(__vb1, __ob1, __sum1);
-
71  __sum1 = _mm256_fmadd_pd(__vc1, __oc1, __sum1);
-
72 
-
73  // Then the second block
-
74  __sum2 = _mm256_fmadd_pd(__va2, __oa2, __sum2);
-
75  __sum2 = _mm256_fmadd_pd(__vb2, __ob2, __sum2);
-
76  __sum2 = _mm256_fmadd_pd(__vc2, __oc2, __sum2);
-
77 
-
78  // Retrieve results
-
79  double sum1[4];
-
80  double sum2[4];
-
81 
-
82  _mm256_storeu_pd(sum1, __sum1);
-
83  _mm256_storeu_pd(sum2, __sum2);
-
84 
-
85  // Apply results
-
86  // Block 1
-
87  newMatrix[0][0] = sum1[3];
-
88  newMatrix[0][1] = sum1[2];
-
89  newMatrix[0][2] = sum1[1];
-
90  newMatrix[1][0] = sum1[0];
-
91 
-
92  // Block 2
-
93  newMatrix[1][1] = sum2[3];
-
94  newMatrix[1][2] = sum2[2];
-
95  newMatrix[2][0] = sum2[1];
-
96  newMatrix[2][1] = sum2[0];
-
97 
-
98  // Does not fit in the intrinsic calculation. Might just calculate 'by hand'.
-
99  newMatrix[2][2] = (v[2][0] * other[0][2]) + (v[2][1] * other[1][2]) + (v[2][2] * other[2][2]);
-
100 
-
101 
-
102  /* <= Translation component => */
-
103 
-
104  // Load translation components into registers
-
105  __m256d __transSelf = _mm256_set_pd(0, l, h, d);
-
106  __m256d __transOther = _mm256_set_pd(0, other.l, other.h, other.d);
-
107 
-
108  // Let's add them
-
109  __m256d __sum = _mm256_add_pd(__transSelf, __transOther);
-
110 
-
111  // Retrieve results
-
112  double sum[4];
-
113  _mm256_storeu_pd(sum, __sum);
-
114 
-
115  // Apply them
-
116  newMatrix.d = sum[0];
-
117  newMatrix.h = sum[1];
-
118  newMatrix.l = sum[2];
-
119 
-
120  #else
-
121 
-
122 
-
123  // Rotation, Scaling
-
124  newMatrix[0][0] = (v[0][0] * other[0][0]) + (v[0][1] * other[1][0]) + (v[0][2] * other[2][0]);
-
125  newMatrix[0][1] = (v[0][0] * other[0][1]) + (v[0][1] * other[1][1]) + (v[0][2] * other[2][1]);
-
126  newMatrix[0][2] = (v[0][0] * other[0][2]) + (v[0][1] * other[1][2]) + (v[0][2] * other[2][2]);
-
127 
-
128  newMatrix[1][0] = (v[1][0] * other[0][0]) + (v[1][1] * other[1][0]) + (v[1][2] * other[2][0]);
-
129  newMatrix[1][1] = (v[1][0] * other[0][1]) + (v[1][1] * other[1][1]) + (v[1][2] * other[2][1]);
-
130  newMatrix[1][2] = (v[1][0] * other[0][2]) + (v[1][1] * other[1][2]) + (v[1][2] * other[2][2]);
-
131 
-
132  newMatrix[2][0] = (v[2][0] * other[0][0]) + (v[2][1] * other[1][0]) + (v[2][2] * other[2][0]);
-
133  newMatrix[2][1] = (v[2][0] * other[0][1]) + (v[2][1] * other[1][1]) + (v[2][2] * other[2][1]);
-
134  newMatrix[2][2] = (v[2][0] * other[0][2]) + (v[2][1] * other[1][2]) + (v[2][2] * other[2][2]);
-
135 
-
136 
-
137  // Translation
-
138  newMatrix[0][3] = v[0][3] + other[0][3];
-
139  newMatrix[1][3] = v[1][3] + other[1][3];
-
140  newMatrix[2][3] = v[2][3] + other[2][3];
-
141 
-
142  #endif
-
143 
-
144  return newMatrix;
-
145 }
-
-
-
- -

◆ operator*=() [1/2]

- -
-
- - - - - - - - -
void Matrix4x4::operator*= (const double scalar)
-
- -

Cellwise scaling.

- -

Definition at line 202 of file Matrix4x4.cpp.

-
203 {
-
204  *this = *this * scalar;
-
205  return;
-
206 }
-
-
-
- -

◆ operator*=() [2/2]

- -
-
- - - - - - - - -
void Matrix4x4::operator*= (const Matrix4x4other)
-
- -

Definition at line 147 of file Matrix4x4.cpp.

-
148 {
-
149  *this = *this * other;
-
150  return;
-
151 }
-
-
-
- -

◆ operator+()

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::operator+ (const Matrix4x4other) const
-
- -

Cellwise addition.

- -

Definition at line 221 of file Matrix4x4.cpp.

-
222 {
-
223  Matrix4x4 m;
-
224 
-
225  #ifndef _EULE_NO_INTRINSICS_
-
226 
-
227  // Load matrix rows
-
228  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
229  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
230  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
231  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
232 
-
233  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
234  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
235  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
236  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
237 
-
238  // Add rows
-
239  __m256d __sr0 = _mm256_add_pd(__row0a, __row0b);
-
240  __m256d __sr1 = _mm256_add_pd(__row1a, __row1b);
-
241  __m256d __sr2 = _mm256_add_pd(__row2a, __row2b);
-
242  __m256d __sr3 = _mm256_add_pd(__row3a, __row3b);
-
243 
-
244  // Extract results
-
245  _mm256_storeu_pd(m.v[0].data(), __sr0);
-
246  _mm256_storeu_pd(m.v[1].data(), __sr1);
-
247  _mm256_storeu_pd(m.v[2].data(), __sr2);
-
248  _mm256_storeu_pd(m.v[3].data(), __sr3);
-
249 
-
250  #else
-
251 
-
252  for (std::size_t x = 0; x < 4; x++)
-
253  for (std::size_t y = 0; y < 4; y++)
-
254  m[x][y] = v[x][y] + other[x][y];
-
255 
-
256  #endif
-
257 
-
258  return m;
-
259 }
-
-
-
- -

◆ operator+=()

- -
-
- - - - - - - - -
void Matrix4x4::operator+= (const Matrix4x4other)
-
- -

Cellwise addition.

- -

Definition at line 261 of file Matrix4x4.cpp.

-
262 {
-
263  #ifndef _EULE_NO_INTRINSICS_
-
264  // Doing it again is a tad directer, and thus faster. We avoid an intermittent Matrix4x4 instance
-
265 
-
266  // Load matrix rows
-
267  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
268  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
269  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
270  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
271 
-
272  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
273  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
274  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
275  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
276 
-
277  // Add rows
-
278  __m256d __sr0 = _mm256_add_pd(__row0a, __row0b);
-
279  __m256d __sr1 = _mm256_add_pd(__row1a, __row1b);
-
280  __m256d __sr2 = _mm256_add_pd(__row2a, __row2b);
-
281  __m256d __sr3 = _mm256_add_pd(__row3a, __row3b);
-
282 
-
283  // Extract results
-
284  _mm256_storeu_pd(v[0].data(), __sr0);
-
285  _mm256_storeu_pd(v[1].data(), __sr1);
-
286  _mm256_storeu_pd(v[2].data(), __sr2);
-
287  _mm256_storeu_pd(v[3].data(), __sr3);
-
288 
-
289  #else
-
290 
-
291  *this = *this + other;
-
292 
-
293  #endif
-
294 
-
295  return;
-
296 }
-
-
-
- -

◆ operator-()

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::operator- (const Matrix4x4other) const
-
- -

Cellwise subtraction.

- -

Definition at line 298 of file Matrix4x4.cpp.

-
299 {
-
300  Matrix4x4 m;
-
301 
-
302  #ifndef _EULE_NO_INTRINSICS_
-
303 
-
304  // Load matrix rows
-
305  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
306  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
307  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
308  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
309 
-
310  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
311  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
312  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
313  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
314 
-
315  // Subtract rows
-
316  __m256d __sr0 = _mm256_sub_pd(__row0a, __row0b);
-
317  __m256d __sr1 = _mm256_sub_pd(__row1a, __row1b);
-
318  __m256d __sr2 = _mm256_sub_pd(__row2a, __row2b);
-
319  __m256d __sr3 = _mm256_sub_pd(__row3a, __row3b);
-
320 
-
321  // Extract results
-
322  _mm256_storeu_pd(m.v[0].data(), __sr0);
-
323  _mm256_storeu_pd(m.v[1].data(), __sr1);
-
324  _mm256_storeu_pd(m.v[2].data(), __sr2);
-
325  _mm256_storeu_pd(m.v[3].data(), __sr3);
-
326 
-
327  #else
-
328 
-
329  for (std::size_t x = 0; x < 4; x++)
-
330  for (std::size_t y = 0; y < 4; y++)
-
331  m[x][y] = v[x][y] - other[x][y];
-
332 
-
333  #endif
-
334 
-
335  return m;
-
336 }
-
-
-
- -

◆ operator-=()

- -
-
- - - - - - - - -
void Matrix4x4::operator-= (const Matrix4x4other)
-
- -

Cellwise subtraction.

- -

Definition at line 338 of file Matrix4x4.cpp.

-
339 {
-
340  #ifndef _EULE_NO_INTRINSICS_
-
341  // Doing it again is a tad directer, and thus faster. We avoid an intermittent Matrix4x4 instance
-
342 
-
343  // Load matrix rows
-
344  __m256d __row0a = _mm256_set_pd(v[0][3], v[0][2], v[0][1], v[0][0]);
-
345  __m256d __row1a = _mm256_set_pd(v[1][3], v[1][2], v[1][1], v[1][0]);
-
346  __m256d __row2a = _mm256_set_pd(v[2][3], v[2][2], v[2][1], v[2][0]);
-
347  __m256d __row3a = _mm256_set_pd(v[3][3], v[3][2], v[3][1], v[3][0]);
-
348 
-
349  __m256d __row0b = _mm256_set_pd(other[0][3], other[0][2], other[0][1], other[0][0]);
-
350  __m256d __row1b = _mm256_set_pd(other[1][3], other[1][2], other[1][1], other[1][0]);
-
351  __m256d __row2b = _mm256_set_pd(other[2][3], other[2][2], other[2][1], other[2][0]);
-
352  __m256d __row3b = _mm256_set_pd(other[3][3], other[3][2], other[3][1], other[3][0]);
-
353 
-
354  // Subtract rows
-
355  __m256d __sr0 = _mm256_sub_pd(__row0a, __row0b);
-
356  __m256d __sr1 = _mm256_sub_pd(__row1a, __row1b);
-
357  __m256d __sr2 = _mm256_sub_pd(__row2a, __row2b);
-
358  __m256d __sr3 = _mm256_sub_pd(__row3a, __row3b);
-
359 
-
360  // Extract results
-
361  _mm256_storeu_pd(v[0].data(), __sr0);
-
362  _mm256_storeu_pd(v[1].data(), __sr1);
-
363  _mm256_storeu_pd(v[2].data(), __sr2);
-
364  _mm256_storeu_pd(v[3].data(), __sr3);
-
365 
-
366  #else
-
367 
-
368  * this = *this - other;
-
369 
-
370  #endif
-
371 
-
372  return;
-
373 }
-
-
-
- -

◆ operator/() [1/2]

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::operator/ (const double denominator) const
-
- -

Cellwise division.

- -

Definition at line 208 of file Matrix4x4.cpp.

-
209 {
-
210  const double precomputeDivision = 1.0 / denominator;
-
211 
-
212  return *this * precomputeDivision;
-
213 }
-
-
-
- -

◆ operator/() [2/2]

- -
-
- - - - - - - - -
Matrix4x4 Matrix4x4::operator/ (const Matrix4x4other) const
-
- -

Definition at line 153 of file Matrix4x4.cpp.

-
154 {
-
155  return *this * other.Inverse3x3();
-
156 }
-
-
-
- -

◆ operator/=() [1/2]

- -
-
- - - - - - - - -
void Matrix4x4::operator/= (const double denominator)
-
- -

Cellwise division.

- -

Definition at line 215 of file Matrix4x4.cpp.

-
216 {
-
217  *this = *this / denominator;
-
218  return;
-
219 }
-
-
-
- -

◆ operator/=() [2/2]

- -
-
- - - - - - - - -
void Matrix4x4::operator/= (const Matrix4x4other)
-
- -

Definition at line 158 of file Matrix4x4.cpp.

-
159 {
-
160  *this = *this * other.Inverse3x3();
-
161  return;
-
162 }
-
-
-
- -

◆ operator=() [1/2]

- -
-
- - - - - - - - -
void Matrix4x4::operator= (const Matrix4x4other)
-
- -

Definition at line 385 of file Matrix4x4.cpp.

-
386 {
-
387  v = other.v;
-
388  return;
-
389 }
-
-
-
- -

◆ operator=() [2/2]

- -
-
- - - - - -
- - - - - - - - -
void Matrix4x4::operator= (Matrix4x4 && other)
-
-noexcept
-
- -

Definition at line 391 of file Matrix4x4.cpp.

-
392 {
-
393  v = std::move(other.v);
-
394  return;
-
395 }
-
-
-
- -

◆ operator==()

- -
-
- - - - - - - - -
bool Matrix4x4::operator== (const Matrix4x4other)
-
- -

Definition at line 397 of file Matrix4x4.cpp.

-
398 {
-
399  return v == other.v;
-
400 }
-
-
-
- -

◆ operator[]() [1/2]

- -
-
- - - - - - - - -
std::array< double, 4 > & Matrix4x4::operator[] (std::size_t y)
-
- -

Definition at line 375 of file Matrix4x4.cpp.

-
376 {
-
377  return v[y];
-
378 }
-
-
-
- -

◆ operator[]() [2/2]

- -
-
- - - - - - - - -
const std::array< double, 4 > & Matrix4x4::operator[] (std::size_t y) const
-
- -

Definition at line 380 of file Matrix4x4.cpp.

-
381 {
-
382  return v[y];
-
383 }
-
-
-
- -

◆ SetTranslationComponent()

- -
-
- - - - - - - - -
void Matrix4x4::SetTranslationComponent (const Vector3dtrans)
-
- -

Will set d,h,l from a Vector3d(x,y,z)

- -

Definition at line 412 of file Matrix4x4.cpp.

-
413 {
-
414  d = trans.x;
-
415  h = trans.y;
-
416  l = trans.z;
-
417  return;
-
418 }
-
-
-
- -

◆ Similar()

- -
-
- - - - - - - - - - - - - - - - - - -
bool Matrix4x4::Similar (const Matrix4x4other,
double epsilon = 0.00001 
) const
-
- -

Will compare if two matrices are similar to a certain epsilon value.

- -

Definition at line 608 of file Matrix4x4.cpp.

-
609 {
-
610  for (std::size_t i = 0; i < 4; i++)
-
611  for (std::size_t j = 0; j < 4; j++)
-
612  if (!Math::Similar(v[i][j], other[i][j], epsilon))
-
613  return false;
-
614 
-
615  return true;
-
616 }
-
-
-
- -

◆ Transpose3x3()

- -
-
- - - - - - - -
Matrix4x4 Matrix4x4::Transpose3x3 () const
-
- -

Will return the 3x3 transpose of this matrix.

- -

Definition at line 429 of file Matrix4x4.cpp.

-
430 {
-
431  Matrix4x4 trans(*this); // Keep other cells
-
432 
-
433  for (std::size_t i = 0; i < 3; i++)
-
434  for (std::size_t j = 0; j < 3; j++)
-
435  trans[j][i] = v[i][j];
-
436 
-
437  return trans;
-
438 }
-
-
-
- -

◆ Transpose4x4()

- -
-
- - - - - - - -
Matrix4x4 Matrix4x4::Transpose4x4 () const
-
- -

Will return the 4x4 transpose of this matrix.

- -

Definition at line 440 of file Matrix4x4.cpp.

-
441 {
-
442  Matrix4x4 trans;
-
443 
-
444  for (std::size_t i = 0; i < 4; i++)
-
445  for (std::size_t j = 0; j < 4; j++)
-
446  trans[j][i] = v[i][j];
-
447 
-
448  return trans;
-
449 }
-
-
-
-

Friends And Related Function Documentation

- -

◆ operator<< [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::ostream& operator<< (std::ostream & os,
const Matrix4x4m 
)
-
-friend
-
- -

Definition at line 620 of file Matrix4x4.cpp.

-
621  {
-
622  os << std::endl;
-
623 
-
624  for (std::size_t y = 0; y < 4; y++)
-
625  {
-
626  for (std::size_t x = 0; x < 4; x++)
-
627  os << " | " << m[y][x];
-
628 
-
629  os << " |" << std::endl;
-
630  }
-
631 
-
632  return os;
-
633  }
-
-
-
- -

◆ operator<< [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::wostream& operator<< (std::wostream & os,
const Matrix4x4m 
)
-
-friend
-
- -

Definition at line 635 of file Matrix4x4.cpp.

-
636  {
-
637  os << std::endl;
-
638 
-
639  for (std::size_t y = 0; y < 4; y++)
-
640  {
-
641  for (std::size_t x = 0; x < 4; x++)
-
642  os << L" | " << m[y][x];
-
643 
-
644  os << L" |" << std::endl;
-
645  }
-
646 
-
647  return os;
-
648  }
-
-
-
-

Member Data Documentation

- -

◆ a

- -
-
- - - - -
double& Eule::Matrix4x4::a = v[0][0]
-
- -

Definition at line 128 of file Matrix4x4.h.

- -
-
- -

◆ b

- -
-
- - - - -
double& Eule::Matrix4x4::b = v[0][1]
-
- -

Definition at line 129 of file Matrix4x4.h.

- -
-
- -

◆ c

- -
-
- - - - -
double& Eule::Matrix4x4::c = v[0][2]
-
- -

Definition at line 130 of file Matrix4x4.h.

- -
-
- -

◆ d

- -
-
- - - - -
double& Eule::Matrix4x4::d = v[0][3]
-
- -

Definition at line 131 of file Matrix4x4.h.

- -
-
- -

◆ e

- -
-
- - - - -
double& Eule::Matrix4x4::e = v[1][0]
-
- -

Definition at line 132 of file Matrix4x4.h.

- -
-
- -

◆ f

- -
-
- - - - -
double& Eule::Matrix4x4::f = v[1][1]
-
- -

Definition at line 133 of file Matrix4x4.h.

- -
-
- -

◆ g

- -
-
- - - - -
double& Eule::Matrix4x4::g = v[1][2]
-
- -

Definition at line 134 of file Matrix4x4.h.

- -
-
- -

◆ h

- -
-
- - - - -
double& Eule::Matrix4x4::h = v[1][3]
-
- -

Definition at line 135 of file Matrix4x4.h.

- -
-
- -

◆ i

- -
-
- - - - -
double& Eule::Matrix4x4::i = v[2][0]
-
- -

Definition at line 136 of file Matrix4x4.h.

- -
-
- -

◆ j

- -
-
- - - - -
double& Eule::Matrix4x4::j = v[2][1]
-
- -

Definition at line 137 of file Matrix4x4.h.

- -
-
- -

◆ k

- -
-
- - - - -
double& Eule::Matrix4x4::k = v[2][2]
-
- -

Definition at line 138 of file Matrix4x4.h.

- -
-
- -

◆ l

- -
-
- - - - -
double& Eule::Matrix4x4::l = v[2][3]
-
- -

Definition at line 139 of file Matrix4x4.h.

- -
-
- -

◆ m

- -
-
- - - - -
double& Eule::Matrix4x4::m = v[3][0]
-
- -

Definition at line 140 of file Matrix4x4.h.

- -
-
- -

◆ n

- -
-
- - - - -
double& Eule::Matrix4x4::n = v[3][1]
-
- -

Definition at line 141 of file Matrix4x4.h.

- -
-
- -

◆ o

- -
-
- - - - -
double& Eule::Matrix4x4::o = v[3][2]
-
- -

Definition at line 142 of file Matrix4x4.h.

- -
-
- -

◆ p

- -
-
- - - - -
double& Eule::Matrix4x4::p = v[3][3]
-
- -

Definition at line 143 of file Matrix4x4.h.

- -
-
- -

◆ v

- -
-
- - - - -
std::array<std::array<double, 4>, 4> Eule::Matrix4x4::v
-
- -

Array holding the matrices values.

- -

Definition at line 44 of file Matrix4x4.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
Eule::Matrix4x4::j
double & j
Definition: Matrix4x4.h:137
-
Eule::Matrix4x4::Adjoint
Matrix4x4 Adjoint(std::size_t n) const
Will return the adjoint of this matrix, by dimension n.
Definition: Matrix4x4.cpp:533
-
Eule::Matrix4x4::operator==
bool operator==(const Matrix4x4 &other)
Definition: Matrix4x4.cpp:397
-
Eule::Matrix4x4::i
double & i
Definition: Matrix4x4.h:136
-
Eule::Matrix4x4::e
double & e
Definition: Matrix4x4.h:132
-
Eule::Matrix4x4::f
double & f
Definition: Matrix4x4.h:133
-
Eule::Matrix4x4::Inverse3x3
Matrix4x4 Inverse3x3() const
Will return the 3x3-inverse of this matrix.
Definition: Matrix4x4.cpp:558
-
Eule::Matrix4x4::k
double & k
Definition: Matrix4x4.h:138
-
Eule::Matrix4x4::v
std::array< std::array< double, 4 >, 4 > v
Array holding the matrices values.
Definition: Matrix4x4.h:44
-
Eule::Vector3d
Vector3< double > Vector3d
Definition: Matrix4x4.h:9
-
Eule::Vector3::z
T z
Definition: Vector3.h:96
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Eule::Matrix4x4::b
double & b
Definition: Matrix4x4.h:129
-
Eule::Matrix4x4::g
double & g
Definition: Matrix4x4.h:134
-
Eule::Vector3::x
T x
Definition: Vector3.h:94
-
Eule::Matrix4x4::p
double & p
Definition: Matrix4x4.h:143
-
Eule::Math::Similar
static constexpr bool Similar(const double a, const double b, const double epsilon=0.00001)
Compares two double values with a given accuracy.
Definition: Math.h:102
-
Eule::Matrix4x4::l
double & l
Definition: Matrix4x4.h:139
-
Eule::Matrix4x4::Determinant
double Determinant(std::size_t n) const
Will return the determinant, by dimension n.
Definition: Matrix4x4.cpp:511
-
Eule::Matrix4x4::SetTranslationComponent
void SetTranslationComponent(const Vector3d &trans)
Will set d,h,l from a Vector3d(x,y,z)
Definition: Matrix4x4.cpp:412
-
Eule::Matrix4x4::c
double & c
Definition: Matrix4x4.h:130
-
Eule::Matrix4x4::o
double & o
Definition: Matrix4x4.h:142
-
Eule::Matrix4x4::a
double & a
Definition: Matrix4x4.h:128
-
Eule::Matrix4x4::m
double & m
Definition: Matrix4x4.h:140
-
Eule::Matrix4x4::GetCofactors
Matrix4x4 GetCofactors(std::size_t p, std::size_t q, std::size_t n) const
Will return the cofactors of this matrix, by dimension n.
Definition: Matrix4x4.cpp:478
-
Eule::Matrix4x4::GetTranslationComponent
const Vector3d GetTranslationComponent() const
Will return d,h,l as a Vector3d(x,y,z)
Definition: Matrix4x4.cpp:407
-
Eule::Matrix4x4::n
double & n
Definition: Matrix4x4.h:141
-
Eule::Matrix4x4::h
double & h
Definition: Matrix4x4.h:135
-
Eule::Matrix4x4::d
double & d
Definition: Matrix4x4.h:131
-
Eule::Vector3::y
T y
Definition: Vector3.h:95
- - - - diff --git a/Doxygen/build/classEule_1_1Quaternion-members.html b/Doxygen/build/classEule_1_1Quaternion-members.html deleted file mode 100644 index 6fed225..0000000 --- a/Doxygen/build/classEule_1_1Quaternion-members.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::Quaternion Member List
-
-
- -

This is the complete list of members for Eule::Quaternion, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
AngleBetween(const Quaternion &other) constEule::Quaternion
Conjugate() constEule::Quaternion
GetRawValues() constEule::Quaternion
Inverse() constEule::Quaternion
Lerp(const Quaternion &other, double t) constEule::Quaternion
operator!=(const Quaternion &q) constEule::Quaternion
operator*(const Quaternion &q) constEule::Quaternion
operator*(const Vector3d &p) constEule::Quaternion
operator*=(const Quaternion &q)Eule::Quaternion
operator/(Quaternion &q) constEule::Quaternion
operator/=(const Quaternion &q)Eule::Quaternion
operator<<(std::ostream &os, const Quaternion &q)Eule::Quaternionfriend
operator<<(std::wostream &os, const Quaternion &q)Eule::Quaternionfriend
operator=(const Quaternion &q)Eule::Quaternion
operator==(const Quaternion &q) constEule::Quaternion
Quaternion()Eule::Quaternion
Quaternion(const Vector4d values)Eule::Quaternionexplicit
Quaternion(const Quaternion &q)Eule::Quaternion
Quaternion(const Vector3d eulerAngles)Eule::Quaternion
RotateVector(const Vector3d &vec) constEule::Quaternion
SetRawValues(const Vector4d values)Eule::Quaternion
ToEulerAngles() constEule::Quaternion
ToRotationMatrix() constEule::Quaternion
UnitQuaternion() constEule::Quaternion
~Quaternion()Eule::Quaternion
- - - - diff --git a/Doxygen/build/classEule_1_1Quaternion.html b/Doxygen/build/classEule_1_1Quaternion.html deleted file mode 100644 index b402e34..0000000 --- a/Doxygen/build/classEule_1_1Quaternion.html +++ /dev/null @@ -1,1044 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Quaternion Class Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Friends | -List of all members
-
-
Eule::Quaternion Class Reference
-
-
- -

3D rotation representation - More...

- -

#include <Quaternion.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Quaternion ()
 
 Quaternion (const Vector4d values)
 Constructs by these raw values. More...
 
 Quaternion (const Quaternion &q)
 Copies this existing Quaternion. More...
 
 Quaternion (const Vector3d eulerAngles)
 Creates an quaternion from euler angles. More...
 
 ~Quaternion ()
 
Quaternion operator= (const Quaternion &q)
 Copies. More...
 
Quaternion operator* (const Quaternion &q) const
 Multiplies (applies) More...
 
Quaternion operator/ (Quaternion &q) const
 Divides (applies) More...
 
Quaternionoperator*= (const Quaternion &q)
 Also multiplies. More...
 
Quaternionoperator/= (const Quaternion &q)
 Also divides. More...
 
Vector3d operator* (const Vector3d &p) const
 Will transform a 3d point around its origin. More...
 
bool operator== (const Quaternion &q) const
 
bool operator!= (const Quaternion &q) const
 
Quaternion Inverse () const
 
Quaternion Conjugate () const
 
Quaternion UnitQuaternion () const
 
Vector3d RotateVector (const Vector3d &vec) const
 Will rotate a vector by this quaternion. More...
 
Vector3d ToEulerAngles () const
 Will return euler angles representing this Quaternion's rotation. More...
 
Matrix4x4 ToRotationMatrix () const
 Will return a rotation matrix representing this Quaternions rotation. More...
 
Vector4d GetRawValues () const
 Will return the raw four-dimensional values. More...
 
Quaternion AngleBetween (const Quaternion &other) const
 Will return the value between two Quaternion's as another Quaternion. More...
 
void SetRawValues (const Vector4d values)
 Will set the raw four-dimensional values. More...
 
Quaternion Lerp (const Quaternion &other, double t) const
 Will return the lerp result between two quaternions. More...
 
- - - - - -

-Friends

std::ostream & operator<< (std::ostream &os, const Quaternion &q)
 
std::wostream & operator<< (std::wostream &os, const Quaternion &q)
 
-

Detailed Description

-

3D rotation representation

- -

Definition at line 10 of file Quaternion.h.

-

Constructor & Destructor Documentation

- -

◆ Quaternion() [1/4]

- -
-
- - - - - - - -
Quaternion::Quaternion ()
-
- -

Definition at line 11 of file Quaternion.cpp.

-
12 {
-
13  v = Vector4d(0, 0, 0, 1);
-
14  return;
-
15 }
-
-
-
- -

◆ Quaternion() [2/4]

- -
-
- - - - - -
- - - - - - - - -
Quaternion::Quaternion (const Vector4d values)
-
-explicit
-
- -

Constructs by these raw values.

- -

Definition at line 17 of file Quaternion.cpp.

-
18 {
-
19  v = values;
-
20  return;
-
21 }
-
-
-
- -

◆ Quaternion() [3/4]

- -
-
- - - - - - - - -
Quaternion::Quaternion (const Quaternionq)
-
- -

Copies this existing Quaternion.

- -

Definition at line 23 of file Quaternion.cpp.

-
24 {
-
25  v = q.v;
-
26  return;
-
27 }
-
-
-
- -

◆ Quaternion() [4/4]

- -
-
- - - - - - - - -
Quaternion::Quaternion (const Vector3d eulerAngles)
-
- -

Creates an quaternion from euler angles.

- -

Definition at line 29 of file Quaternion.cpp.

-
30 {
-
31  Vector3d eulerRad = eulerAngles * Deg2Rad;
-
32 
-
33  #ifndef _EULE_NO_INTRINSICS_
-
34 
-
35  // Calculate sine and cos values
-
36  __m256d __vec = _mm256_set_pd(0, eulerRad.z, eulerRad.y, eulerRad.x);
-
37  __vec = _mm256_mul_pd(__vec, _mm256_set1_pd(0.5));
-
38  __m256d __cos;
-
39  __m256d __sin = _mm256_sincos_pd(&__cos, __vec);
-
40 
-
41  // Create multiplication vectors
-
42  double sin[4];
-
43  double cos[4];
-
44 
-
45  _mm256_storeu_pd(sin, __sin);
-
46  _mm256_storeu_pd(cos, __cos);
-
47 
-
48  __m256d __a = _mm256_set_pd(cos[0], cos[0], sin[0], cos[0]);
-
49  __m256d __b = _mm256_set_pd(cos[1], sin[1], cos[1], cos[1]);
-
50  __m256d __c = _mm256_set_pd(sin[2], cos[2], cos[2], cos[2]);
-
51 
-
52  __m256d __d = _mm256_set_pd(sin[0], sin[0], cos[0], sin[0]);
-
53  __m256d __e = _mm256_set_pd(sin[1], cos[1], sin[1], sin[1]);
-
54  __m256d __f = _mm256_set_pd(cos[2], sin[2], sin[2], sin[2]);
-
55 
-
56  // Multiply them
-
57  __m256d __abc;
-
58  __abc = _mm256_mul_pd(__a, __b);
-
59  __abc = _mm256_mul_pd(__abc, __c);
-
60 
-
61  __m256d __def;
-
62  __def = _mm256_mul_pd(__d, __e);
-
63  __def = _mm256_mul_pd(__def, __f);
-
64 
-
65  // Extract results
-
66  double abc[4];
-
67  double def[4];
-
68 
-
69  _mm256_storeu_pd(abc, __abc);
-
70  _mm256_storeu_pd(def, __def);
-
71 
-
72  // Sum them up
-
73  v.w = abc[0] + def[0];
-
74  v.x = abc[1] - def[1];
-
75  v.y = abc[2] + def[2];
-
76  v.z = abc[3] - def[3];
-
77 
-
78  #else
-
79 
-
80  const double cy = cos(eulerRad.z * 0.5);
-
81  const double sy = sin(eulerRad.z * 0.5);
-
82  const double cp = cos(eulerRad.y * 0.5);
-
83  const double sp = sin(eulerRad.y * 0.5);
-
84  const double cr = cos(eulerRad.x * 0.5);
-
85  const double sr = sin(eulerRad.x * 0.5);
-
86 
-
87  v.w = cr * cp * cy + sr * sp * sy;
-
88  v.x = sr * cp * cy - cr * sp * sy;
-
89  v.y = cr * sp * cy + sr * cp * sy;
-
90  v.z = cr * cp * sy - sr * sp * cy;
-
91 
-
92  #endif
-
93 
-
94  return;
-
95 }
-
-
-
- -

◆ ~Quaternion()

- -
-
- - - - - - - -
Quaternion::~Quaternion ()
-
- -

Definition at line 97 of file Quaternion.cpp.

-
98 {
-
99  return;
-
100 }
-
-
-
-

Member Function Documentation

- -

◆ AngleBetween()

- -
-
- - - - - - - - -
Quaternion Quaternion::AngleBetween (const Quaternionother) const
-
- -

Will return the value between two Quaternion's as another Quaternion.

- -

Definition at line 295 of file Quaternion.cpp.

-
296 {
-
297  return other * Conjugate();
-
298 }
-
-
-
- -

◆ Conjugate()

- -
-
- - - - - - - -
Quaternion Quaternion::Conjugate () const
-
- -

Definition at line 187 of file Quaternion.cpp.

-
188 {
-
189  return Quaternion(Vector4d(-v.x, -v.y, -v.z, v.w));
-
190 }
-
-
-
- -

◆ GetRawValues()

- -
-
- - - - - - - -
Vector4d Quaternion::GetRawValues () const
-
- -

Will return the raw four-dimensional values.

- -

Definition at line 290 of file Quaternion.cpp.

-
291 {
-
292  return v;
-
293 }
-
-
-
- -

◆ Inverse()

- -
-
- - - - - - - -
Quaternion Quaternion::Inverse () const
-
- -

Definition at line 175 of file Quaternion.cpp.

-
176 {
-
177  if (!isCacheUpToDate_inverse)
-
178  {
-
179  cache_inverse = (Conjugate() * (1.0 / v.SqrMagnitude())).v;
-
180 
-
181  isCacheUpToDate_inverse = true;
-
182  }
-
183 
-
184  return Quaternion(cache_inverse);
-
185 }
-
-
-
- -

◆ Lerp()

- -
-
- - - - - - - - - - - - - - - - - - -
Quaternion Quaternion::Lerp (const Quaternionother,
double t 
) const
-
- -

Will return the lerp result between two quaternions.

- -

Definition at line 309 of file Quaternion.cpp.

-
310 {
-
311  return Quaternion(v.Lerp(other.v, t)).UnitQuaternion();
-
312 }
-
-
-
- -

◆ operator!=()

- -
-
- - - - - - - - -
bool Quaternion::operator!= (const Quaternionq) const
-
- -

Definition at line 170 of file Quaternion.cpp.

-
171 {
-
172  return (!v.Similar(q.v)) && (!v.Similar(q.v * -1));
-
173 }
-
-
-
- -

◆ operator*() [1/2]

- -
-
- - - - - - - - -
Quaternion Quaternion::operator* (const Quaternionq) const
-
- -

Multiplies (applies)

- -

Definition at line 111 of file Quaternion.cpp.

-
112 {
-
113  return Quaternion(Vector4d(
-
114  v.w * q.v.x + v.x * q.v.w + v.y * q.v.z - v.z * q.v.y,
-
115  v.w * q.v.y + v.y * q.v.w + v.z * q.v.x - v.x * q.v.z,
-
116  v.w * q.v.z + v.z * q.v.w + v.x * q.v.y - v.y * q.v.x,
-
117  v.w * q.v.w - v.x * q.v.x - v.y * q.v.y - v.z * q.v.z
-
118  ));
-
119 }
-
-
-
- -

◆ operator*() [2/2]

- -
-
- - - - - - - - -
Vector3d Quaternion::operator* (const Vector3dp) const
-
- -

Will transform a 3d point around its origin.

- -

Definition at line 160 of file Quaternion.cpp.

-
161 {
-
162  return RotateVector(p);
-
163 }
-
-
-
- -

◆ operator*=()

- -
-
- - - - - - - - -
Quaternion & Quaternion::operator*= (const Quaternionq)
-
- -

Also multiplies.

- -

Definition at line 131 of file Quaternion.cpp.

-
132 {
-
133  InvalidateCache();
-
134 
-
135  Vector4d bufr = v;
-
136  v.x = bufr.w * q.v.x + bufr.x * q.v.w + bufr.y * q.v.z - bufr.z * q.v.y; // x
-
137  v.y = bufr.w * q.v.y + bufr.y * q.v.w + bufr.z * q.v.x - bufr.x * q.v.z; // y
-
138  v.z = bufr.w * q.v.z + bufr.z * q.v.w + bufr.x * q.v.y - bufr.y * q.v.x; // z
-
139  v.w = bufr.w * q.v.w - bufr.x * q.v.x - bufr.y * q.v.y - bufr.z * q.v.z; // w
-
140 
-
141  return (*this);
-
142 }
-
-
-
- -

◆ operator/()

- -
-
- - - - - - - - -
Quaternion Quaternion::operator/ (Quaternionq) const
-
- -

Divides (applies)

- -

Definition at line 126 of file Quaternion.cpp.

-
127 {
-
128  return ((*this) * (q.Inverse()));
-
129 }
-
-
-
- -

◆ operator/=()

- -
-
- - - - - - - - -
Quaternion & Quaternion::operator/= (const Quaternionq)
-
- -

Also divides.

- -

Definition at line 152 of file Quaternion.cpp.

-
153 {
-
154  InvalidateCache();
-
155 
-
156  (*this) = (*this) * q.Inverse();
-
157  return (*this);
-
158 }
-
-
-
- -

◆ operator=()

- -
-
- - - - - - - - -
Quaternion Quaternion::operator= (const Quaternionq)
-
- -

Copies.

- -

Definition at line 102 of file Quaternion.cpp.

-
103 {
-
104  InvalidateCache();
-
105 
-
106  v = q.v;
-
107 
-
108  return (*this);
-
109 }
-
-
-
- -

◆ operator==()

- -
-
- - - - - - - - -
bool Quaternion::operator== (const Quaternionq) const
-
- -

Definition at line 165 of file Quaternion.cpp.

-
166 {
-
167  return (v.Similar(q.v)) || (v.Similar(q.v * -1));
-
168 }
-
-
-
- -

◆ RotateVector()

- -
-
- - - - - - - - -
Vector3d Quaternion::RotateVector (const Vector3dvec) const
-
- -

Will rotate a vector by this quaternion.

- -

Definition at line 197 of file Quaternion.cpp.

-
198 {
-
199  Quaternion pure(Vector4d(vec.x, vec.y, vec.z, 0));
-
200 
-
201  //Quaternion f = Conjugate() * pure * (*this);
-
202  //Quaternion f = Inverse().Conjugate() * pure * (this->Inverse());
-
203 
-
204 
-
205  Quaternion f = Inverse() * pure * (*this);
-
206 
-
207  Vector3d toRet;
-
208  toRet.x = f.v.x;
-
209  toRet.y = f.v.y;
-
210  toRet.z = f.v.z;
-
211 
-
212  return toRet;
-
213 }
-
-
-
- -

◆ SetRawValues()

- -
-
- - - - - - - - -
void Quaternion::SetRawValues (const Vector4d values)
-
- -

Will set the raw four-dimensional values.

- -

Definition at line 300 of file Quaternion.cpp.

-
301 {
-
302  InvalidateCache();
-
303 
-
304  v = values;
-
305 
-
306  return;
-
307 }
-
-
-
- -

◆ ToEulerAngles()

- -
-
- - - - - - - -
Vector3d Quaternion::ToEulerAngles () const
-
- -

Will return euler angles representing this Quaternion's rotation.

- -

Definition at line 215 of file Quaternion.cpp.

-
216 {
-
217  if (!isCacheUpToDate_euler)
-
218  {
-
219  Vector3d euler;
-
220  // roll (x-axis rotation)
-
221  double sinr_cosp = 2.0 * (v.w * v.x + v.y * v.z);
-
222  double cosr_cosp = 1.0 - 2.0 * (v.x * v.x + v.y * v.y);
-
223  euler.x = std::atan2(sinr_cosp, cosr_cosp);
-
224 
-
225  // pitch (y-axis rotation)
-
226  double sinp = 2.0 * (v.w * v.y - v.z * v.x);
-
227  if (std::abs(sinp) >= 1)
-
228  euler.y = std::copysign(PI / 2, sinp); // use 90 degrees if out of range
-
229  else
-
230  euler.y = std::asin(sinp);
-
231 
-
232  // yaw (z-axis rotation)
-
233  double siny_cosp = 2.0 * (v.w * v.z + v.x * v.y);
-
234  double cosy_cosp = 1.0 - 2.0 * (v.y * v.y + v.z * v.z);
-
235  euler.z = std::atan2(siny_cosp, cosy_cosp);
-
236 
-
237  euler *= Rad2Deg;
-
238 
-
239  cache_euler = euler;
-
240  isCacheUpToDate_matrix = true;
-
241  }
-
242 
-
243  return cache_euler;
-
244 }
-
-
-
- -

◆ ToRotationMatrix()

- -
-
- - - - - - - -
Matrix4x4 Quaternion::ToRotationMatrix () const
-
- -

Will return a rotation matrix representing this Quaternions rotation.

- -

Definition at line 246 of file Quaternion.cpp.

-
247 {
-
248  if (!isCacheUpToDate_matrix)
-
249  {
-
250  Matrix4x4 m;
-
251 
-
252  const double sqx = v.x * v.x;
-
253  const double sqy = v.y * v.y;
-
254  const double sqz = v.z * v.z;
-
255  const double sqw = v.w * v.w;
-
256  const double x = v.x;
-
257  const double y = v.y;
-
258  const double z = v.z;
-
259  const double w = v.w;
-
260 
-
261  // invs (inverse square length) is only required if quaternion is not already normalised
-
262  double invs = 1.0 / (sqx + sqy + sqz + sqw);
-
263 
-
264  // since sqw + sqx + sqy + sqz =1/invs*invs
-
265 
-
266  // yaw (y)
-
267  m.c = ((2 * x * z) - (2 * w * y)) * invs;
-
268  m.f = (1 - (2 * sqx) - (2 * sqz)) * invs;
-
269  m.i = ((2 * x * z) + (2 * w * y)) * invs;
-
270 
-
271  // pitch (x)
-
272  m.a = (1 - (2 * sqy) - (2 * sqz)) * invs;
-
273  m.g = ((2 * y * z) + (2 * w * x)) * invs;
-
274  m.j = ((2 * y * z) - (2 * w * x)) * invs;
-
275 
-
276  // roll (z)
-
277  m.b = ((2 * x * v.y) + (2 * w * z)) * invs;
-
278  m.e = ((2 * x * v.y) - (2 * w * z)) * invs;
-
279  m.k = (1 - (2 * sqx) - (2 * sqy)) * invs;
-
280 
-
281  m.p = 1;
-
282 
-
283  cache_matrix = m;
-
284  isCacheUpToDate_matrix = true;
-
285  }
-
286 
-
287  return cache_matrix;
-
288 }
-
-
-
- -

◆ UnitQuaternion()

- -
-
- - - - - - - -
Quaternion Quaternion::UnitQuaternion () const
-
- -

Definition at line 192 of file Quaternion.cpp.

-
193 {
-
194  return (*this) * (1.0 / v.Magnitude());
-
195 }
-
-
-
-

Friends And Related Function Documentation

- -

◆ operator<< [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::ostream& operator<< (std::ostream & os,
const Quaternionq 
)
-
-friend
-
- -

Definition at line 325 of file Quaternion.cpp.

-
326  {
-
327  os << "[" << q.v << "]";
-
328  return os;
-
329  }
-
-
-
- -

◆ operator<< [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::wostream& operator<< (std::wostream & os,
const Quaternionq 
)
-
-friend
-
- -

Definition at line 331 of file Quaternion.cpp.

-
332  {
-
333  os << L"[" << q.v << L"]";
-
334  return os;
-
335  }
-
-
-
-
The documentation for this class was generated from the following files: -
-
Eule::Matrix4x4::j
double & j
Definition: Matrix4x4.h:137
-
PI
static constexpr double PI
Pi up to 50 decimal places.
Definition: Constants.h:6
-
Eule::Matrix4x4::i
double & i
Definition: Matrix4x4.h:136
-
Eule::Vector3< double >
-
Eule::Vector4::x
T x
Definition: Vector4.h:88
-
Eule::Matrix4x4::e
double & e
Definition: Matrix4x4.h:132
-
Eule::Vector4::z
T z
Definition: Vector4.h:90
-
Eule::Vector4d
Vector4< double > Vector4d
Definition: Vector4.h:107
-
Eule::Matrix4x4::f
double & f
Definition: Matrix4x4.h:133
-
Deg2Rad
static constexpr double Deg2Rad
Factor to convert degrees to radians.
Definition: Constants.h:12
-
Eule::Matrix4x4::k
double & k
Definition: Matrix4x4.h:138
-
Eule::Vector4::Lerp
Vector4< double > Lerp(const Vector4< T > &other, double t) const
Will return a lerp result between this and another vector.
Definition: Vector4.cpp:287
-
Eule::Vector4::w
T w
Definition: Vector4.h:91
-
Eule::Vector3::z
T z
Definition: Vector3.h:96
-
Eule::Matrix4x4
A matrix 4x4 class representing a 3d transformation.
Definition: Matrix4x4.h:36
-
Eule::Vector4::Similar
bool Similar(const Vector4< T > &other, double epsilon=0.00001) const
Will compare if two vectors are similar to a certain epsilon value.
Definition: Vector4.cpp:162
-
Eule::Matrix4x4::b
double & b
Definition: Matrix4x4.h:129
-
Eule::Vector4::Magnitude
double Magnitude() const
Will compute the magnitude.
Definition: Vector4.cpp:38
-
Eule::Matrix4x4::g
double & g
Definition: Matrix4x4.h:134
-
Eule::Vector3::x
T x
Definition: Vector3.h:94
-
Eule::Matrix4x4::p
double & p
Definition: Matrix4x4.h:143
-
Eule::Quaternion::RotateVector
Vector3d RotateVector(const Vector3d &vec) const
Will rotate a vector by this quaternion.
Definition: Quaternion.cpp:197
-
Eule::Vector4::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector4.cpp:31
-
Eule::Quaternion::Quaternion
Quaternion()
Definition: Quaternion.cpp:11
-
Rad2Deg
static constexpr double Rad2Deg
Factor to convert radians to degrees.
Definition: Constants.h:15
-
Eule::Quaternion::Conjugate
Quaternion Conjugate() const
Definition: Quaternion.cpp:187
-
Eule::Quaternion::Inverse
Quaternion Inverse() const
Definition: Quaternion.cpp:175
-
Eule::Matrix4x4::c
double & c
Definition: Matrix4x4.h:130
-
Eule::Quaternion
3D rotation representation
Definition: Quaternion.h:10
-
Eule::Matrix4x4::a
double & a
Definition: Matrix4x4.h:128
-
Eule::Vector4::y
T y
Definition: Vector4.h:89
-
Eule::Vector3::y
T y
Definition: Vector3.h:95
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
- - - - diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider-members.html b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider-members.html deleted file mode 100644 index 6237471..0000000 --- a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::TrapazoidalPrismCollider Member List
-
-
- -

This is the complete list of members for Eule::TrapazoidalPrismCollider, including all inherited members.

- - - - - - - - - - - - - - - -
BACKEule::TrapazoidalPrismColliderstatic
BOTTOMEule::TrapazoidalPrismColliderstatic
Contains(const Vector3d &point) const overrideEule::TrapazoidalPrismCollidervirtual
FRONTEule::TrapazoidalPrismColliderstatic
GetVertex(std::size_t index) constEule::TrapazoidalPrismCollider
LEFTEule::TrapazoidalPrismColliderstatic
operator=(const TrapazoidalPrismCollider &other)Eule::TrapazoidalPrismCollider
operator=(TrapazoidalPrismCollider &&other) noexceptEule::TrapazoidalPrismCollider
RIGHTEule::TrapazoidalPrismColliderstatic
SetVertex(std::size_t index, const Vector3d value)Eule::TrapazoidalPrismCollider
TOPEule::TrapazoidalPrismColliderstatic
TrapazoidalPrismCollider()Eule::TrapazoidalPrismCollider
TrapazoidalPrismCollider(const TrapazoidalPrismCollider &other)=defaultEule::TrapazoidalPrismCollider
TrapazoidalPrismCollider(TrapazoidalPrismCollider &&other) noexcept=defaultEule::TrapazoidalPrismCollider
- - - - diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider.html b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider.html deleted file mode 100644 index 914cf12..0000000 --- a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider.html +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::TrapazoidalPrismCollider Class Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Static Public Attributes | -List of all members
-
-
Eule::TrapazoidalPrismCollider Class Reference
-
-
- -

A collider describing a trapazoidal prism. - More...

- -

#include <TrapazoidalPrismCollider.h>

-
-Inheritance diagram for Eule::TrapazoidalPrismCollider:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for Eule::TrapazoidalPrismCollider:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TrapazoidalPrismCollider ()
 
 TrapazoidalPrismCollider (const TrapazoidalPrismCollider &other)=default
 
 TrapazoidalPrismCollider (TrapazoidalPrismCollider &&other) noexcept=default
 
void operator= (const TrapazoidalPrismCollider &other)
 
void operator= (TrapazoidalPrismCollider &&other) noexcept
 
const Vector3dGetVertex (std::size_t index) const
 Will return a specific vertex. More...
 
void SetVertex (std::size_t index, const Vector3d value)
 Will set the value of a specific vertex. More...
 
bool Contains (const Vector3d &point) const override
 Tests, if this Collider contains a point. More...
 
- - - - - - - - - - - - - -

-Static Public Attributes

static constexpr std::size_t BACK = 0
 
static constexpr std::size_t FRONT = 4
 
static constexpr std::size_t LEFT = 0
 
static constexpr std::size_t RIGHT = 2
 
static constexpr std::size_t BOTTOM = 0
 
static constexpr std::size_t TOP = 1
 
-

Detailed Description

-

A collider describing a trapazoidal prism.

-

A trapazoidal prism is basically a box, but each vertex can be manipulated individually, altering the angles between faces. Distorting a 2d face into 3d space will result in undefined behaviour. Each face should stay flat, relative to itself. This shape is based on QUADS!

- -

Definition at line 13 of file TrapazoidalPrismCollider.h.

-

Constructor & Destructor Documentation

- -

◆ TrapazoidalPrismCollider() [1/3]

- -
-
- - - - - - - -
TrapazoidalPrismCollider::TrapazoidalPrismCollider ()
-
- -

Definition at line 5 of file TrapazoidalPrismCollider.cpp.

-
6 {
-
7  return;
-
8 }
-
-
-
- -

◆ TrapazoidalPrismCollider() [2/3]

- -
-
- - - - - -
- - - - - - - - -
Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider (const TrapazoidalPrismColliderother)
-
-default
-
- -
-
- -

◆ TrapazoidalPrismCollider() [3/3]

- -
-
- - - - - -
- - - - - - - - -
Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider (TrapazoidalPrismCollider && other)
-
-defaultnoexcept
-
- -
-
-

Member Function Documentation

- -

◆ Contains()

- -
-
- - - - - -
- - - - - - - - -
bool TrapazoidalPrismCollider::Contains (const Vector3dpoint) const
-
-overridevirtual
-
- -

Tests, if this Collider contains a point.

- -

Implements Eule::Collider.

- -

Definition at line 103 of file TrapazoidalPrismCollider.cpp.

-
104 {
-
105  for (std::size_t i = 0; i < 6; i++)
-
106  if (FaceDot((FACE_NORMALS)i, point) < 0)
-
107  return false;
-
108 
-
109  return true;
-
110 }
-
-
-
- -

◆ GetVertex()

- -
-
- - - - - - - - -
const Vector3d & TrapazoidalPrismCollider::GetVertex (std::size_t index) const
-
- -

Will return a specific vertex.

- -

Definition at line 26 of file TrapazoidalPrismCollider.cpp.

-
27 {
-
28  return vertices[index];
-
29 }
-
-
-
- -

◆ operator=() [1/2]

- -
-
- - - - - - - - -
void TrapazoidalPrismCollider::operator= (const TrapazoidalPrismColliderother)
-
- -

Definition at line 10 of file TrapazoidalPrismCollider.cpp.

-
11 {
-
12  vertices = other.vertices;
-
13  faceNormals = other.faceNormals;
-
14 
-
15  return;
-
16 }
-
-
-
- -

◆ operator=() [2/2]

- -
-
- - - - - -
- - - - - - - - -
void TrapazoidalPrismCollider::operator= (TrapazoidalPrismCollider && other)
-
-noexcept
-
- -

Definition at line 18 of file TrapazoidalPrismCollider.cpp.

-
19 {
-
20  vertices = std::move(other.vertices);
-
21  faceNormals = std::move(other.faceNormals);
-
22 
-
23  return;
-
24 }
-
-
-
- -

◆ SetVertex()

- -
-
- - - - - - - - - - - - - - - - - - -
void TrapazoidalPrismCollider::SetVertex (std::size_t index,
const Vector3d value 
)
-
- -

Will set the value of a specific vertex.

- -

Definition at line 31 of file TrapazoidalPrismCollider.cpp.

-
32 {
-
33  vertices[index] = value;
-
34  GenerateNormalsFromVertices();
-
35  return;
-
36 }
-
-
-
-

Member Data Documentation

- -

◆ BACK

- -
-
- - - - - -
- - - - -
constexpr std::size_t Eule::TrapazoidalPrismCollider::BACK = 0
-
-staticconstexpr
-
- -

Definition at line 32 of file TrapazoidalPrismCollider.h.

- -
-
- -

◆ BOTTOM

- -
-
- - - - - -
- - - - -
constexpr std::size_t Eule::TrapazoidalPrismCollider::BOTTOM = 0
-
-staticconstexpr
-
- -

Definition at line 36 of file TrapazoidalPrismCollider.h.

- -
-
- -

◆ FRONT

- -
-
- - - - - -
- - - - -
constexpr std::size_t Eule::TrapazoidalPrismCollider::FRONT = 4
-
-staticconstexpr
-
- -

Definition at line 33 of file TrapazoidalPrismCollider.h.

- -
-
- -

◆ LEFT

- -
-
- - - - - -
- - - - -
constexpr std::size_t Eule::TrapazoidalPrismCollider::LEFT = 0
-
-staticconstexpr
-
- -

Definition at line 34 of file TrapazoidalPrismCollider.h.

- -
-
- -

◆ RIGHT

- -
-
- - - - - -
- - - - -
constexpr std::size_t Eule::TrapazoidalPrismCollider::RIGHT = 2
-
-staticconstexpr
-
- -

Definition at line 35 of file TrapazoidalPrismCollider.h.

- -
-
- -

◆ TOP

- -
-
- - - - - -
- - - - -
constexpr std::size_t Eule::TrapazoidalPrismCollider::TOP = 1
-
-staticconstexpr
-
- -

Definition at line 37 of file TrapazoidalPrismCollider.h.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.map b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.map deleted file mode 100644 index 399a8f0..0000000 --- a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.md5 b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.md5 deleted file mode 100644 index c621060..0000000 --- a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -deee938530b892f287194fe0561c7d94 \ No newline at end of file diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.png b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.png deleted file mode 100644 index 3620945..0000000 Binary files a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__coll__graph.png and /dev/null differ diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.map b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.map deleted file mode 100644 index 399a8f0..0000000 --- a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.md5 b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.md5 deleted file mode 100644 index c621060..0000000 --- a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -deee938530b892f287194fe0561c7d94 \ No newline at end of file diff --git a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.png b/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.png deleted file mode 100644 index 3620945..0000000 Binary files a/Doxygen/build/classEule_1_1TrapazoidalPrismCollider__inherit__graph.png and /dev/null differ diff --git a/Doxygen/build/classEule_1_1Vector2-members.html b/Doxygen/build/classEule_1_1Vector2-members.html deleted file mode 100644 index 11077e2..0000000 --- a/Doxygen/build/classEule_1_1Vector2-members.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::Vector2< T > Member List
-
-
- -

This is the complete list of members for Eule::Vector2< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CrossProduct(const Vector2< T > &other) constEule::Vector2< T >
DotProduct(const Vector2< T > &other) constEule::Vector2< T >
downEule::Vector2< T >static
leftEule::Vector2< T >static
Lerp(const Vector2< T > &other, double t) constEule::Vector2< T >
LerpSelf(const Vector2< T > &other, double t)Eule::Vector2< T >
Magnitude() constEule::Vector2< T >
Normalize() constEule::Vector2< T >
NormalizeSelf()Eule::Vector2< T >
oneEule::Vector2< T >static
operator Vector3< T >() constEule::Vector2< T >
operator Vector4< T >() constEule::Vector2< T >
operator!=(const Vector2< T > &other) constEule::Vector2< T >
operator*(const T scale) constEule::Vector2< T >
operator*=(const T scale)Eule::Vector2< T >
operator+(const Vector2< T > &other) constEule::Vector2< T >
operator+=(const Vector2< T > &other)Eule::Vector2< T >
operator-(const Vector2< T > &other) constEule::Vector2< T >
operator-() constEule::Vector2< T >
operator-=(const Vector2< T > &other)Eule::Vector2< T >
operator/(const T scale) constEule::Vector2< T >
operator/=(const T scale)Eule::Vector2< T >
operator<<(std::ostream &os, const Vector2< T > &v)Eule::Vector2< T >friend
operator<<(std::wostream &os, const Vector2< T > &v)Eule::Vector2< T >friend
operator=(const Vector2< T > &other)Eule::Vector2< T >
operator=(Vector2< T > &&other) noexceptEule::Vector2< T >
operator==(const Vector2< T > &other) constEule::Vector2< T >
operator[](std::size_t idx)Eule::Vector2< T >
operator[](std::size_t idx) constEule::Vector2< T >
rightEule::Vector2< T >static
Similar(const Vector2< T > &other, double epsilon=0.00001) constEule::Vector2< T >
SqrMagnitude() constEule::Vector2< T >
ToDouble() constEule::Vector2< T >
ToInt() constEule::Vector2< T >
upEule::Vector2< T >static
Vector2()Eule::Vector2< T >inline
Vector2(T _x, T _y)Eule::Vector2< T >inline
Vector2(const Vector2< T > &other)=defaultEule::Vector2< T >
Vector2(Vector2< T > &&other) noexcept=defaultEule::Vector2< T >
VectorScale(const Vector2< T > &scalar) constEule::Vector2< T >
xEule::Vector2< T >
yEule::Vector2< T >
zeroEule::Vector2< T >static
- - - - diff --git a/Doxygen/build/classEule_1_1Vector2.html b/Doxygen/build/classEule_1_1Vector2.html deleted file mode 100644 index 8073805..0000000 --- a/Doxygen/build/classEule_1_1Vector2.html +++ /dev/null @@ -1,1478 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Vector2< T > Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -Static Public Attributes | -Friends | -List of all members
-
-
Eule::Vector2< T > Class Template Reference
-
-
- -

Representation of a 2d vector. - More...

- -

#include <Vector2.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Vector2 ()
 
 Vector2 (T _x, T _y)
 
 Vector2 (const Vector2< T > &other)=default
 
 Vector2 (Vector2< T > &&other) noexcept=default
 
double DotProduct (const Vector2< T > &other) const
 Will compute the dot product to another Vector2. More...
 
double CrossProduct (const Vector2< T > &other) const
 Will compute the cross product to another Vector2. More...
 
double SqrMagnitude () const
 Will compute the square magnitude. More...
 
double Magnitude () const
 Will compute the magnitude. More...
 
Vector2< double > Normalize () const
 Will return the normalization of this vector. More...
 
void NormalizeSelf ()
 Will normalize this vector. More...
 
Vector2< T > VectorScale (const Vector2< T > &scalar) const
 Will scale self.n by scalar.n. More...
 
void LerpSelf (const Vector2< T > &other, double t)
 Will lerp itself towards other by t. More...
 
Vector2< double > Lerp (const Vector2< T > &other, double t) const
 Will return a lerp result between this and another vector. More...
 
bool Similar (const Vector2< T > &other, double epsilon=0.00001) const
 Will compare if two vectors are similar to a certain epsilon value. More...
 
Vector2< int > ToInt () const
 Will convert this vector to a Vector2i. More...
 
Vector2< double > ToDouble () const
 Will convert this vector to a Vector2d. More...
 
T & operator[] (std::size_t idx)
 
const T & operator[] (std::size_t idx) const
 
Vector2< T > operator+ (const Vector2< T > &other) const
 
void operator+= (const Vector2< T > &other)
 
Vector2< T > operator- (const Vector2< T > &other) const
 
void operator-= (const Vector2< T > &other)
 
Vector2< T > operator* (const T scale) const
 
void operator*= (const T scale)
 
Vector2< T > operator/ (const T scale) const
 
void operator/= (const T scale)
 
Vector2< T > operator- () const
 
 operator Vector3< T > () const
 
 operator Vector4< T > () const
 Conversion method. More...
 
void operator= (const Vector2< T > &other)
 Conversion method. More...
 
void operator= (Vector2< T > &&other) noexcept
 
bool operator== (const Vector2< T > &other) const
 
bool operator!= (const Vector2< T > &other) const
 
- - - - - -

-Public Attributes

x
 
y
 
- - - - - - - - - - - - - -

-Static Public Attributes

static const Vector2< double > up
 
static const Vector2< double > down
 
static const Vector2< double > right
 
static const Vector2< double > left
 
static const Vector2< double > one
 
static const Vector2< double > zero
 
- - - - - -

-Friends

std::ostream & operator<< (std::ostream &os, const Vector2< T > &v)
 
std::wostream & operator<< (std::wostream &os, const Vector2< T > &v)
 
-

Detailed Description

-

template<typename T>
-class Eule::Vector2< T >

- -

Representation of a 2d vector.

-

Contains a lot of utility methods.

- -

Definition at line 14 of file Vector2.h.

-

Constructor & Destructor Documentation

- -

◆ Vector2() [1/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - -
Eule::Vector2< T >::Vector2 ()
-
-inline
-
- -

Definition at line 17 of file Vector2.h.

-
17 : x{ 0 }, y{ 0 } {}
-
-
-
- -

◆ Vector2() [2/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
Eule::Vector2< T >::Vector2 (_x,
_y 
)
-
-inline
-
- -

Definition at line 18 of file Vector2.h.

-
18 : x{ _x }, y{ _y } {}
-
-
-
- -

◆ Vector2() [3/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
Eule::Vector2< T >::Vector2 (const Vector2< T > & other)
-
-default
-
- -
-
- -

◆ Vector2() [4/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
Eule::Vector2< T >::Vector2 (Vector2< T > && other)
-
-defaultnoexcept
-
- -
-
-

Member Function Documentation

- -

◆ CrossProduct()

- -
-
-
-template<typename T >
- - - - - - - - -
double Vector2::CrossProduct (const Vector2< T > & other) const
-
- -

Will compute the cross product to another Vector2.

- -

Definition at line 65 of file Vector2.cpp.

-
66 {
-
67  int iCross = (x * other.y) -
-
68  (y * other.x);
-
69 
-
70  return (double)iCross;
-
71 }
-
-
-
- -

◆ DotProduct()

- -
-
-
-template<typename T >
- - - - - - - - -
double Vector2::DotProduct (const Vector2< T > & other) const
-
- -

Will compute the dot product to another Vector2.

- -

Definition at line 47 of file Vector2.cpp.

-
48 {
-
49  int iDot = (x * other.x) +
-
50  (y * other.y);
-
51 
-
52  return (double)iDot;
-
53 }
-
-
-
- -

◆ Lerp()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
Vector2< double > Vector2::Lerp (const Vector2< T > & other,
double t 
) const
-
- -

Will return a lerp result between this and another vector.

- -

Definition at line 256 of file Vector2.cpp.

-
257 {
-
258  Vector2d copy(this->ToDouble());
-
259  copy.LerpSelf(other.ToDouble(), t);
-
260 
-
261  return copy;
-
262 }
-
-
-
- -

◆ LerpSelf()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
void Vector2::LerpSelf (const Vector2< T > & other,
double t 
)
-
- -

Will lerp itself towards other by t.

- -

Definition at line 238 of file Vector2.cpp.

-
239 {
-
240  const double it = 1.0 - t; // Inverse t
-
241 
-
242  x = (int)(it * (double)x + t * (double)other.x);
-
243  y = (int)(it * (double)y + t * (double)other.y);
-
244 
-
245  return;
-
246 }
-
-
-
- -

◆ Magnitude()

- -
-
-
-template<typename T >
- - - - -
double Vector2::Magnitude
-
- -

Will compute the magnitude.

- -

Definition at line 90 of file Vector2.cpp.

-
91 {
-
92  return sqrt(SqrMagnitude());
-
93 }
-
-
-
- -

◆ Normalize()

- -
-
-
-template<typename T >
- - - - -
Vector2< double > Vector2::Normalize
-
- -

Will return the normalization of this vector.

- -

Definition at line 137 of file Vector2.cpp.

-
138 {
-
139  Vector2<double> norm(x, y);
-
140  norm.NormalizeSelf();
-
141 
-
142  return norm;
-
143 }
-
-
-
- -

◆ NormalizeSelf()

- -
-
-
-template<typename T >
- - - - - - - -
void Vector2::NormalizeSelf ()
-
- -

Will normalize this vector.

- -

Definition at line 187 of file Vector2.cpp.

-
188 {
-
189  std::cerr << "Stop normalizing int-vectors!!" << std::endl;
-
190  x = 0;
-
191  y = 0;
-
192 
-
193  return;
-
194 }
-
-
-
- -

◆ operator Vector3< T >()

- -
-
-
-template<typename T >
- - - - -
Vector2::operator Vector3< T >
-
- -

Definition at line 674 of file Vector2.cpp.

-
675 {
-
676  return Vector3<T>(x, y, 0);
-
677 }
-
-
-
- -

◆ operator Vector4< T >()

- -
-
-
-template<typename T >
- - - - -
Vector2::operator Vector4< T >
-
- -

Conversion method.

- -

Definition at line 680 of file Vector2.cpp.

-
681 {
-
682  return Vector4<T>(x, y, 0, 0);
-
683 }
-
-
-
- -

◆ operator!=()

- -
-
-
-template<typename T >
- - - - - - - - -
bool Vector2::operator!= (const Vector2< T > & other) const
-
- -

Definition at line 656 of file Vector2.cpp.

-
657 {
-
658  return !operator==(other);
-
659 }
-
-
-
- -

◆ operator*()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector2< T > Vector2::operator* (const T scale) const
-
- -

Definition at line 503 of file Vector2.cpp.

-
504 {
-
505  return Vector2<T>(
-
506  x * scale,
-
507  y * scale
-
508  );
-
509 }
-
-
-
- -

◆ operator*=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector2::operator*= (const T scale)
-
- -

Definition at line 542 of file Vector2.cpp.

-
543 {
-
544  x *= scale;
-
545  y *= scale;
-
546  return;
-
547 }
-
-
-
- -

◆ operator+()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector2< T > Vector2::operator+ (const Vector2< T > & other) const
-
- -

Definition at line 346 of file Vector2.cpp.

-
347 {
-
348  return Vector2<T>(
-
349  x + other.x,
-
350  y + other.y
-
351  );
-
352 }
-
-
-
- -

◆ operator+=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector2::operator+= (const Vector2< T > & other)
-
- -

Definition at line 385 of file Vector2.cpp.

-
386 {
-
387  x += other.x;
-
388  y += other.y;
-
389  return;
-
390 }
-
-
-
- -

◆ operator-() [1/2]

- -
-
-
-template<typename T >
- - - - -
Vector2< T > Vector2::operator-
-
- -

Definition at line 662 of file Vector2.cpp.

-
663 {
-
664  return Vector2<T>(
-
665  -x,
-
666  -y
-
667  );
-
668 }
-
-
-
- -

◆ operator-() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
Vector2< T > Vector2::operator- (const Vector2< T > & other) const
-
- -

Definition at line 424 of file Vector2.cpp.

-
425 {
-
426  return Vector2<T>(
-
427  x - other.x,
-
428  y - other.y
-
429  );
-
430 }
-
-
-
- -

◆ operator-=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector2::operator-= (const Vector2< T > & other)
-
- -

Definition at line 463 of file Vector2.cpp.

-
464 {
-
465  x -= other.x;
-
466  y -= other.y;
-
467  return;
-
468 }
-
-
-
- -

◆ operator/()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector2< T > Vector2::operator/ (const T scale) const
-
- -

Definition at line 582 of file Vector2.cpp.

-
583 {
-
584  return Vector2<T>(
-
585  x / scale,
-
586  y / scale
-
587  );
-
588 }
-
-
-
- -

◆ operator/=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector2::operator/= (const T scale)
-
- -

Definition at line 620 of file Vector2.cpp.

-
621 {
-
622  x /= scale;
-
623  y /= scale;
-
624  return;
-
625 }
-
-
-
- -

◆ operator=() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector2::operator= (const Vector2< T > & other)
-
- -

Conversion method.

- -

Definition at line 630 of file Vector2.cpp.

-
631 {
-
632  x = other.x;
-
633  y = other.y;
-
634 
-
635  return;
-
636 }
-
-
-
- -

◆ operator=() [2/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
void Vector2::operator= (Vector2< T > && other)
-
-noexcept
-
- -

Definition at line 639 of file Vector2.cpp.

-
640 {
-
641  x = std::move(other.x);
-
642  y = std::move(other.y);
-
643 
-
644  return;
-
645 }
-
-
-
- -

◆ operator==()

- -
-
-
-template<typename T >
- - - - - - - - -
bool Vector2::operator== (const Vector2< T > & other) const
-
- -

Definition at line 648 of file Vector2.cpp.

-
649 {
-
650  return
-
651  (x == other.x) &&
-
652  (y == other.y);
-
653 }
-
-
-
- -

◆ operator[]() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
T & Vector2::operator[] (std::size_t idx)
-
- -

Definition at line 267 of file Vector2.cpp.

-
268 {
-
269  switch (idx)
-
270  {
-
271  case 0:
-
272  return x;
-
273  case 1:
-
274  return y;
-
275  default:
-
276  throw std::out_of_range("Array descriptor on Vector2<T> out of range!");
-
277  }
-
278 }
-
-
-
- -

◆ operator[]() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
const T & Vector2::operator[] (std::size_t idx) const
-
- -

Definition at line 281 of file Vector2.cpp.

-
282 {
-
283  switch (idx)
-
284  {
-
285  case 0:
-
286  return x;
-
287  case 1:
-
288  return y;
-
289  default:
-
290  throw std::out_of_range("Array descriptor on Vector2<T> out of range!");
-
291  }
-
292 }
-
-
-
- -

◆ Similar()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
bool Vector2::Similar (const Vector2< T > & other,
double epsilon = 0.00001 
) const
-
- -

Will compare if two vectors are similar to a certain epsilon value.

- -

Definition at line 295 of file Vector2.cpp.

-
296 {
-
297  return
-
298  (::Math::Similar(x, other.x, epsilon)) &&
-
299  (::Math::Similar(y, other.y, epsilon))
-
300  ;
-
301 }
-
-
-
- -

◆ SqrMagnitude()

- -
-
-
-template<typename T >
- - - - - - - -
double Vector2::SqrMagnitude () const
-
- -

Will compute the square magnitude.

- -

Definition at line 83 of file Vector2.cpp.

-
84 {
-
85  int iSqrMag = x*x + y*y;
-
86  return (double)iSqrMag;
-
87 }
-
-
-
- -

◆ ToDouble()

- -
-
-
-template<typename T >
- - - - -
Vector2< double > Vector2::ToDouble
-
- -

Will convert this vector to a Vector2d.

- -

Definition at line 310 of file Vector2.cpp.

-
311 {
-
312  return Vector2<double>((double)x, (double)y);
-
313 }
-
-
-
- -

◆ ToInt()

- -
-
-
-template<typename T >
- - - - -
Vector2< int > Vector2::ToInt
-
- -

Will convert this vector to a Vector2i.

- -

Definition at line 304 of file Vector2.cpp.

-
305 {
-
306  return Vector2<int>((int)x, (int)y);
-
307 }
-
-
-
- -

◆ VectorScale()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector2< int > Vector2::VectorScale (const Vector2< T > & scalar) const
-
- -

Will scale self.n by scalar.n.

- -

Definition at line 127 of file Vector2.cpp.

-
128 {
-
129  return Vector2<int>(
-
130  x * scalar.x,
-
131  y * scalar.y
-
132  );
-
133 }
-
-
-
-

Friends And Related Function Documentation

- -

◆ operator<< [1/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::ostream& operator<< (std::ostream & os,
const Vector2< T > & v 
)
-
-friend
-
- -

Definition at line 80 of file Vector2.h.

-
81  {
-
82  return os << "[x: " << v.x << " y: " << v.y << "]";
-
83  }
-
-
-
- -

◆ operator<< [2/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::wostream& operator<< (std::wostream & os,
const Vector2< T > & v 
)
-
-friend
-
- -

Definition at line 84 of file Vector2.h.

-
85  {
-
86  return os << L"[x: " << v.x << L" y: " << v.y << L"]";
-
87  }
-
-
-
-

Member Data Documentation

- -

◆ down

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector2< double > Vector2::down
-
-static
-
- -

Definition at line 94 of file Vector2.h.

- -
-
- -

◆ left

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector2< double > Vector2::left
-
-static
-
- -

Definition at line 96 of file Vector2.h.

- -
-
- -

◆ one

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector2< double > Vector2::one
-
-static
-
- -

Definition at line 97 of file Vector2.h.

- -
-
- -

◆ right

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector2< double > Vector2::right
-
-static
-
- -

Definition at line 95 of file Vector2.h.

- -
-
- -

◆ up

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector2< double > Vector2::up
-
-static
-
- -

Definition at line 93 of file Vector2.h.

- -
-
- -

◆ x

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector2< T >::x
-
- -

Definition at line 89 of file Vector2.h.

- -
-
- -

◆ y

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector2< T >::y
-
- -

Definition at line 90 of file Vector2.h.

- -
-
- -

◆ zero

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector2< double > Vector2::zero
-
-static
-
- -

Definition at line 98 of file Vector2.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
Eule::Vector3
Representation of a 3d vector.
Definition: Matrix4x4.h:9
-
Eule::Vector2::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector2.cpp:83
-
Eule::Vector2::ToDouble
Vector2< double > ToDouble() const
Will convert this vector to a Vector2d.
Definition: Vector2.cpp:310
-
Eule::Vector2< double >
-
Eule::Math::Similar
static constexpr bool Similar(const double a, const double b, const double epsilon=0.00001)
Compares two double values with a given accuracy.
Definition: Math.h:102
-
Eule::Vector2::x
T x
Definition: Vector2.h:89
-
Eule::Vector2::y
T y
Definition: Vector2.h:90
-
Eule::Vector2::operator==
bool operator==(const Vector2< T > &other) const
Definition: Vector2.cpp:648
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
- - - - diff --git a/Doxygen/build/classEule_1_1Vector3-members.html b/Doxygen/build/classEule_1_1Vector3-members.html deleted file mode 100644 index b727041..0000000 --- a/Doxygen/build/classEule_1_1Vector3-members.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::Vector3< T > Member List
-
-
- -

This is the complete list of members for Eule::Vector3< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
backwardEule::Vector3< T >static
CrossProduct(const Vector3< T > &other) constEule::Vector3< T >
DotProduct(const Vector3< T > &other) constEule::Vector3< T >
downEule::Vector3< T >static
forwardEule::Vector3< T >static
leftEule::Vector3< T >static
Lerp(const Vector3< T > &other, double t) constEule::Vector3< T >
LerpSelf(const Vector3< T > &other, double t)Eule::Vector3< T >
Magnitude() constEule::Vector3< T >
Normalize() constEule::Vector3< T >
NormalizeSelf()Eule::Vector3< T >
oneEule::Vector3< T >static
operator Vector2< T >() constEule::Vector3< T >
operator Vector4< T >() constEule::Vector3< T >
operator!=(const Vector3< T > &other) constEule::Vector3< T >
operator*(const T scale) constEule::Vector3< T >
operator*(const Matrix4x4 &mat) constEule::Vector3< T >
operator*=(const T scale)Eule::Vector3< T >
operator*=(const Matrix4x4 &mat)Eule::Vector3< T >
operator+(const Vector3< T > &other) constEule::Vector3< T >
operator+=(const Vector3< T > &other)Eule::Vector3< T >
operator-(const Vector3< T > &other) constEule::Vector3< T >
operator-() constEule::Vector3< T >
operator-=(const Vector3< T > &other)Eule::Vector3< T >
operator/(const T scale) constEule::Vector3< T >
operator/=(const T scale)Eule::Vector3< T >
operator<<(std::ostream &os, const Vector3< T > &v)Eule::Vector3< T >friend
operator<<(std::wostream &os, const Vector3< T > &v)Eule::Vector3< T >friend
operator=(const Vector3< T > &other)Eule::Vector3< T >
operator=(Vector3< T > &&other) noexceptEule::Vector3< T >
operator==(const Vector3< T > &other) constEule::Vector3< T >
operator[](std::size_t idx)Eule::Vector3< T >
operator[](std::size_t idx) constEule::Vector3< T >
rightEule::Vector3< T >static
Similar(const Vector3< T > &other, double epsilon=0.00001) constEule::Vector3< T >
SqrMagnitude() constEule::Vector3< T >
ToDouble() constEule::Vector3< T >
ToInt() constEule::Vector3< T >
upEule::Vector3< T >static
Vector3()Eule::Vector3< T >inline
Vector3(T _x, T _y, T _z)Eule::Vector3< T >inline
Vector3(const Vector3< T > &other)=defaultEule::Vector3< T >
Vector3(Vector3< T > &&other) noexcept=defaultEule::Vector3< T >
VectorScale(const Vector3< T > &scalar) constEule::Vector3< T >
xEule::Vector3< T >
yEule::Vector3< T >
zEule::Vector3< T >
zeroEule::Vector3< T >static
- - - - diff --git a/Doxygen/build/classEule_1_1Vector3.html b/Doxygen/build/classEule_1_1Vector3.html deleted file mode 100644 index 6174868..0000000 --- a/Doxygen/build/classEule_1_1Vector3.html +++ /dev/null @@ -1,1672 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Vector3< T > Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -Static Public Attributes | -Friends | -List of all members
-
-
Eule::Vector3< T > Class Template Reference
-
-
- -

Representation of a 3d vector. - More...

- -

#include <Matrix4x4.h>

-
-Collaboration diagram for Eule::Vector3< T >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Vector3 ()
 
 Vector3 (T _x, T _y, T _z)
 
 Vector3 (const Vector3< T > &other)=default
 
 Vector3 (Vector3< T > &&other) noexcept=default
 
double DotProduct (const Vector3< T > &other) const
 Will compute the dot product to another Vector3. More...
 
Vector3< double > CrossProduct (const Vector3< T > &other) const
 Will compute the cross product to another Vector3. More...
 
double SqrMagnitude () const
 Will compute the square magnitude. More...
 
double Magnitude () const
 Will compute the magnitude. More...
 
Vector3< double > Normalize () const
 Will return the normalization of this vector. More...
 
void NormalizeSelf ()
 Will normalize this vector. More...
 
Vector3< T > VectorScale (const Vector3< T > &scalar) const
 Will scale self.n by scalar.n. More...
 
void LerpSelf (const Vector3< T > &other, double t)
 Will lerp itself towards other by t. More...
 
Vector3< double > Lerp (const Vector3< T > &other, double t) const
 Will return a lerp result between this and another vector. More...
 
bool Similar (const Vector3< T > &other, double epsilon=0.00001) const
 Will compare if two vectors are similar to a certain epsilon value. More...
 
Vector3< int > ToInt () const
 Will convert this vector to a Vector3i. More...
 
Vector3< double > ToDouble () const
 Will convert this vector to a Vector3d. More...
 
T & operator[] (std::size_t idx)
 
const T & operator[] (std::size_t idx) const
 
Vector3< T > operator+ (const Vector3< T > &other) const
 
void operator+= (const Vector3< T > &other)
 
Vector3< T > operator- (const Vector3< T > &other) const
 
void operator-= (const Vector3< T > &other)
 
Vector3< T > operator* (const T scale) const
 
void operator*= (const T scale)
 
Vector3< T > operator/ (const T scale) const
 
void operator/= (const T scale)
 
Vector3< T > operator* (const Matrix4x4 &mat) const
 
void operator*= (const Matrix4x4 &mat)
 
Vector3< T > operator- () const
 
 operator Vector2< T > () const
 
 operator Vector4< T > () const
 Conversion method. More...
 
void operator= (const Vector3< T > &other)
 Conversion method. More...
 
void operator= (Vector3< T > &&other) noexcept
 
bool operator== (const Vector3< T > &other) const
 
bool operator!= (const Vector3< T > &other) const
 
- - - - - - - -

-Public Attributes

x
 
y
 
z
 
- - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const Vector3< double > up
 
static const Vector3< double > down
 
static const Vector3< double > right
 
static const Vector3< double > left
 
static const Vector3< double > forward
 
static const Vector3< double > backward
 
static const Vector3< double > one
 
static const Vector3< double > zero
 
- - - - - -

-Friends

std::ostream & operator<< (std::ostream &os, const Vector3< T > &v)
 
std::wostream & operator<< (std::wostream &os, const Vector3< T > &v)
 
-

Detailed Description

-

template<typename T>
-class Eule::Vector3< T >

- -

Representation of a 3d vector.

-

Contains a lot of utility methods.

- -

Definition at line 9 of file Matrix4x4.h.

-

Constructor & Destructor Documentation

- -

◆ Vector3() [1/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - -
Eule::Vector3< T >::Vector3 ()
-
-inline
-
- -

Definition at line 20 of file Vector3.h.

-
20 : x{ 0 }, y{ 0 }, z{ 0 } {}
-
-
-
- -

◆ Vector3() [2/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
Eule::Vector3< T >::Vector3 (_x,
_y,
_z 
)
-
-inline
-
- -

Definition at line 21 of file Vector3.h.

-
21 : x{ _x }, y{ _y }, z{ _z } {}
-
-
-
- -

◆ Vector3() [3/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
Eule::Vector3< T >::Vector3 (const Vector3< T > & other)
-
-default
-
- -
-
- -

◆ Vector3() [4/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
Eule::Vector3< T >::Vector3 (Vector3< T > && other)
-
-defaultnoexcept
-
- -
-
-

Member Function Documentation

- -

◆ CrossProduct()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector3< double > Vector3::CrossProduct (const Vector3< T > & other) const
-
- -

Will compute the cross product to another Vector3.

- -

Definition at line 68 of file Vector3.cpp.

-
69 {
-
70  Vector3<double> cp;
-
71  cp.x = ((double)y * (double)other.z) - ((double)z * (double)other.y);
-
72  cp.y = ((double)z * (double)other.x) - ((double)x * (double)other.z);
-
73  cp.z = ((double)x * (double)other.y) - ((double)y * (double)other.x);
-
74 
-
75  return cp;
-
76 }
-
-
-
- -

◆ DotProduct()

- -
-
-
-template<typename T >
- - - - - - - - -
double Vector3::DotProduct (const Vector3< T > & other) const
-
- -

Will compute the dot product to another Vector3.

- -

Definition at line 48 of file Vector3.cpp.

-
49 {
-
50  int iDot = (x * other.x) + (y * other.y) + (z * other.z);
-
51  return (double)iDot;
-
52 }
-
-
-
- -

◆ Lerp()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
Vector3< double > Vector3::Lerp (const Vector3< T > & other,
double t 
) const
-
- -

Will return a lerp result between this and another vector.

- -

Definition at line 330 of file Vector3.cpp.

-
331 {
-
332  Vector3d copy(this->ToDouble());
-
333  copy.LerpSelf(other.ToDouble(), t);
-
334 
-
335  return copy;
-
336 }
-
-
-
- -

◆ LerpSelf()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
void Vector3::LerpSelf (const Vector3< T > & other,
double t 
)
-
- -

Will lerp itself towards other by t.

- -

Definition at line 311 of file Vector3.cpp.

-
312 {
-
313  const double it = 1.0 - t; // Inverse t
-
314 
-
315  x = (int)(it * (double)x + t * (double)other.x);
-
316  y = (int)(it * (double)y + t * (double)other.y);
-
317  z = (int)(it * (double)z + t * (double)other.z);
-
318 
-
319  return;
-
320 }
-
-
-
- -

◆ Magnitude()

- -
-
-
-template<typename T >
- - - - -
double Vector3::Magnitude
-
- -

Will compute the magnitude.

- -

Definition at line 95 of file Vector3.cpp.

-
96 {
-
97  return sqrt(SqrMagnitude());
-
98 }
-
-
-
- -

◆ Normalize()

- -
-
-
-template<typename T >
- - - - -
Vector3< double > Vector3::Normalize
-
- -

Will return the normalization of this vector.

- -

Definition at line 147 of file Vector3.cpp.

-
148 {
-
149  Vector3<double> norm(x, y, z);
-
150  norm.NormalizeSelf();
-
151 
-
152  return norm;
-
153 }
-
-
-
- -

◆ NormalizeSelf()

- -
-
-
-template<typename T >
- - - - - - - -
void Vector3::NormalizeSelf ()
-
- -

Will normalize this vector.

- -

Definition at line 200 of file Vector3.cpp.

-
201 {
-
202  std::cerr << "Stop normalizing int-vectors!!" << std::endl;
-
203  x = 0;
-
204  y = 0;
-
205  z = 0;
-
206 
-
207  return;
-
208 }
-
-
-
- -

◆ operator Vector2< T >()

- -
-
-
-template<typename T >
- - - - -
Vector3::operator Vector2< T >
-
- -

Definition at line 873 of file Vector3.cpp.

-
874 {
-
875  return Vector2<T>(x, y);
-
876 }
-
-
-
- -

◆ operator Vector4< T >()

- -
-
-
-template<typename T >
- - - - -
Vector3::operator Vector4< T >
-
- -

Conversion method.

- -

Definition at line 879 of file Vector3.cpp.

-
880 {
-
881  return Vector4<T>(x, y, z, 0);
-
882 }
-
-
-
- -

◆ operator!=()

- -
-
-
-template<typename T >
- - - - - - - - -
bool Vector3::operator!= (const Vector3< T > & other) const
-
- -

Definition at line 864 of file Vector3.cpp.

-
865 {
-
866  return !operator==(other);
-
867 }
-
-
-
- -

◆ operator*() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
Vector3< int > Vector3::operator* (const Matrix4x4mat) const
-
- -

Definition at line 731 of file Vector3.cpp.

-
732 {
-
733  Vector3<double> newVec;
-
734 
-
735  // Rotation, Scaling
-
736  newVec.x = ((mat[0][0] * x) + (mat[1][0] * y) + (mat[2][0] * z));
-
737  newVec.y = ((mat[0][1] * x) + (mat[1][1] * y) + (mat[2][1] * z));
-
738  newVec.z = ((mat[0][2] * x) + (mat[1][2] * y) + (mat[2][2] * z));
-
739 
-
740  // Translation
-
741  newVec.x += mat[0][3];
-
742  newVec.y += mat[1][3];
-
743  newVec.z += mat[2][3];
-
744 
-
745  return Vector3<int>(
-
746  (int)newVec.x,
-
747  (int)newVec.y,
-
748  (int)newVec.z
-
749  );
-
750 }
-
-
-
- -

◆ operator*() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
Vector3< T > Vector3::operator* (const T scale) const
-
- -

Definition at line 541 of file Vector3.cpp.

-
542 {
-
543  return Vector3<T>(
-
544  x * scale,
-
545  y * scale,
-
546  z * scale
-
547  );
-
548 }
-
-
-
- -

◆ operator*=() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector3::operator*= (const Matrix4x4mat)
-
- -

Definition at line 836 of file Vector3.cpp.

-
837 {
-
838  Vector3<double> buffer(x, y, z);
-
839 
-
840  x = (int)((mat[0][0] * buffer.x) + (mat[0][1] * buffer.y) + (mat[0][2] * buffer.z));
-
841  y = (int)((mat[1][0] * buffer.x) + (mat[1][1] * buffer.y) + (mat[1][2] * buffer.z));
-
842  z = (int)((mat[2][0] * buffer.x) + (mat[2][1] * buffer.y) + (mat[2][2] * buffer.z));
-
843 
-
844  // Translation
-
845  x += (int)mat[0][3];
-
846  y += (int)mat[1][3];
-
847  z += (int)mat[2][3];
-
848 
-
849  return;
-
850 }
-
-
-
- -

◆ operator*=() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector3::operator*= (const T scale)
-
- -

Definition at line 583 of file Vector3.cpp.

-
584 {
-
585  x *= scale;
-
586  y *= scale;
-
587  z *= scale;
-
588  return;
-
589 }
-
-
-
- -

◆ operator+()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector3< T > Vector3::operator+ (const Vector3< T > & other) const
-
- -

Definition at line 372 of file Vector3.cpp.

-
373 {
-
374  return Vector3<T>(
-
375  x + other.x,
-
376  y + other.y,
-
377  z + other.z
-
378  );
-
379 }
-
-
-
- -

◆ operator+=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector3::operator+= (const Vector3< T > & other)
-
- -

Definition at line 414 of file Vector3.cpp.

-
415 {
-
416  x += other.x;
-
417  y += other.y;
-
418  z += other.z;
-
419  return;
-
420 }
-
-
-
- -

◆ operator-() [1/2]

- -
-
-
-template<typename T >
- - - - -
Vector3< T > Vector3::operator-
-
- -

Definition at line 806 of file Vector3.cpp.

-
807 {
-
808  return Vector3<T>(
-
809  -x,
-
810  -y,
-
811  -z
-
812  );
-
813 }
-
-
-
- -

◆ operator-() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
Vector3< T > Vector3::operator- (const Vector3< T > & other) const
-
- -

Definition at line 456 of file Vector3.cpp.

-
457 {
-
458  return Vector3<T>(
-
459  x - other.x,
-
460  y - other.y,
-
461  z - other.z
-
462  );
-
463 }
-
-
-
- -

◆ operator-=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector3::operator-= (const Vector3< T > & other)
-
- -

Definition at line 498 of file Vector3.cpp.

-
499 {
-
500  x -= other.x;
-
501  y -= other.y;
-
502  z -= other.z;
-
503  return;
-
504 }
-
-
-
- -

◆ operator/()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector3< T > Vector3::operator/ (const T scale) const
-
- -

Definition at line 626 of file Vector3.cpp.

-
627 {
-
628  return Vector3<T>(
-
629  x / scale,
-
630  y / scale,
-
631  z / scale
-
632  );
-
633 }
-
-
-
- -

◆ operator/=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector3::operator/= (const T scale)
-
- -

Definition at line 667 of file Vector3.cpp.

-
668 {
-
669  x /= scale;
-
670  y /= scale;
-
671  z /= scale;
-
672  return;
-
673 }
-
-
-
- -

◆ operator=() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector3::operator= (const Vector3< T > & other)
-
- -

Conversion method.

- -

Definition at line 816 of file Vector3.cpp.

-
817 {
-
818  x = other.x;
-
819  y = other.y;
-
820  z = other.z;
-
821 
-
822  return;
-
823 }
-
-
-
- -

◆ operator=() [2/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
void Vector3::operator= (Vector3< T > && other)
-
-noexcept
-
- -

Definition at line 826 of file Vector3.cpp.

-
827 {
-
828  x = std::move(other.x);
-
829  y = std::move(other.y);
-
830  z = std::move(other.z);
-
831 
-
832  return;
-
833 }
-
-
-
- -

◆ operator==()

- -
-
-
-template<typename T >
- - - - - - - - -
bool Vector3::operator== (const Vector3< T > & other) const
-
- -

Definition at line 855 of file Vector3.cpp.

-
856 {
-
857  return
-
858  (x == other.x) &&
-
859  (y == other.y) &&
-
860  (z == other.z);
-
861 }
-
-
-
- -

◆ operator[]() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
T & Vector3::operator[] (std::size_t idx)
-
- -

Definition at line 235 of file Vector3.cpp.

-
236 {
-
237  switch (idx)
-
238  {
-
239  case 0:
-
240  return x;
-
241  case 1:
-
242  return y;
-
243  case 2:
-
244  return z;
-
245  default:
-
246  throw std::out_of_range("Array descriptor on Vector3<T> out of range!");
-
247  }
-
248 }
-
-
-
- -

◆ operator[]() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
const T & Vector3::operator[] (std::size_t idx) const
-
- -

Definition at line 251 of file Vector3.cpp.

-
252 {
-
253  switch (idx)
-
254  {
-
255  case 0:
-
256  return x;
-
257  case 1:
-
258  return y;
-
259  case 2:
-
260  return z;
-
261  default:
-
262  throw std::out_of_range("Array descriptor on Vector3<T> out of range!");
-
263  }
-
264 }
-
-
-
- -

◆ Similar()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
bool Vector3::Similar (const Vector3< T > & other,
double epsilon = 0.00001 
) const
-
- -

Will compare if two vectors are similar to a certain epsilon value.

- -

Definition at line 213 of file Vector3.cpp.

-
214 {
-
215  return
-
216  (::Math::Similar(x, other.x, epsilon)) &&
-
217  (::Math::Similar(y, other.y, epsilon)) &&
-
218  (::Math::Similar(z, other.z, epsilon))
-
219  ;
-
220 }
-
-
-
- -

◆ SqrMagnitude()

- -
-
-
-template<typename T >
- - - - - - - -
double Vector3::SqrMagnitude () const
-
- -

Will compute the square magnitude.

- -

Definition at line 88 of file Vector3.cpp.

-
89 {
-
90  int iSqrMag = x*x + y*y + z*z;
-
91  return (double)iSqrMag;
-
92 }
-
-
-
- -

◆ ToDouble()

- -
-
-
-template<typename T >
- - - - -
Vector3< double > Vector3::ToDouble
-
- -

Will convert this vector to a Vector3d.

- -

Definition at line 229 of file Vector3.cpp.

-
230 {
-
231  return Vector3<double>((double)x, (double)y, (double)z);
-
232 }
-
-
-
- -

◆ ToInt()

- -
-
-
-template<typename T >
- - - - -
Vector3< int > Vector3::ToInt
-
- -

Will convert this vector to a Vector3i.

- -

Definition at line 223 of file Vector3.cpp.

-
224 {
-
225  return Vector3<int>((int)x, (int)y, (int)z);
-
226 }
-
-
-
- -

◆ VectorScale()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector3< int > Vector3::VectorScale (const Vector3< T > & scalar) const
-
- -

Will scale self.n by scalar.n.

- -

Definition at line 135 of file Vector3.cpp.

-
136 {
-
137  return Vector3<int>(
-
138  x * scalar.x,
-
139  y * scalar.y,
-
140  z * scalar.z
-
141  );
-
142 }
-
-
-
-

Friends And Related Function Documentation

- -

◆ operator<< [1/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::ostream& operator<< (std::ostream & os,
const Vector3< T > & v 
)
-
-friend
-
- -

Definition at line 85 of file Vector3.h.

-
86  {
-
87  return os << "[x: " << v.x << " y: " << v.y << " z: " << v.z << "]";
-
88  }
-
-
-
- -

◆ operator<< [2/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::wostream& operator<< (std::wostream & os,
const Vector3< T > & v 
)
-
-friend
-
- -

Definition at line 89 of file Vector3.h.

-
90  {
-
91  return os << L"[x: " << v.x << L" y: " << v.y << L" z: " << v.z << L"]";
-
92  }
-
-
-
-

Member Data Documentation

- -

◆ backward

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::backward
-
-static
-
- -

Definition at line 104 of file Vector3.h.

- -
-
- -

◆ down

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::down
-
-static
-
- -

Definition at line 100 of file Vector3.h.

- -
-
- -

◆ forward

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::forward
-
-static
-
- -

Definition at line 103 of file Vector3.h.

- -
-
- -

◆ left

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::left
-
-static
-
- -

Definition at line 102 of file Vector3.h.

- -
-
- -

◆ one

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::one
-
-static
-
- -

Definition at line 105 of file Vector3.h.

- -
-
- -

◆ right

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::right
-
-static
-
- -

Definition at line 101 of file Vector3.h.

- -
-
- -

◆ up

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::up
-
-static
-
- -

Definition at line 99 of file Vector3.h.

- -
-
- -

◆ x

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector3< T >::x
-
- -

Definition at line 94 of file Vector3.h.

- -
-
- -

◆ y

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector3< T >::y
-
- -

Definition at line 95 of file Vector3.h.

- -
-
- -

◆ z

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector3< T >::z
-
- -

Definition at line 96 of file Vector3.h.

- -
-
- -

◆ zero

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector3< double > Vector3::zero
-
-static
-
- -

Definition at line 106 of file Vector3.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
Eule::Vector3< double >
-
Eule::Vector3::ToDouble
Vector3< double > ToDouble() const
Will convert this vector to a Vector3d.
Definition: Vector3.cpp:229
-
Eule::Vector3::operator==
bool operator==(const Vector3< T > &other) const
Definition: Vector3.cpp:855
-
Eule::Vector3::z
T z
Definition: Vector3.h:96
-
Eule::Vector3::x
T x
Definition: Vector3.h:94
-
Eule::Vector2
Representation of a 2d vector.
Definition: Vector2.h:14
-
Eule::Math::Similar
static constexpr bool Similar(const double a, const double b, const double epsilon=0.00001)
Compares two double values with a given accuracy.
Definition: Math.h:102
-
Eule::Vector3::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector3.cpp:88
-
Eule::Vector3::y
T y
Definition: Vector3.h:95
-
Eule::Vector4
Representation of a 4d vector.
Definition: Vector2.h:8
- - - - diff --git a/Doxygen/build/classEule_1_1Vector3__coll__graph.map b/Doxygen/build/classEule_1_1Vector3__coll__graph.map deleted file mode 100644 index 1e1b359..0000000 --- a/Doxygen/build/classEule_1_1Vector3__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/classEule_1_1Vector3__coll__graph.md5 b/Doxygen/build/classEule_1_1Vector3__coll__graph.md5 deleted file mode 100644 index 71ea584..0000000 --- a/Doxygen/build/classEule_1_1Vector3__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b3a7a2417e6523c8919c534d316cd3d7 \ No newline at end of file diff --git a/Doxygen/build/classEule_1_1Vector3__coll__graph.png b/Doxygen/build/classEule_1_1Vector3__coll__graph.png deleted file mode 100644 index 2a8937b..0000000 Binary files a/Doxygen/build/classEule_1_1Vector3__coll__graph.png and /dev/null differ diff --git a/Doxygen/build/classEule_1_1Vector4-members.html b/Doxygen/build/classEule_1_1Vector4-members.html deleted file mode 100644 index bf62005..0000000 --- a/Doxygen/build/classEule_1_1Vector4-members.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule::Vector4< T > Member List
-
-
- -

This is the complete list of members for Eule::Vector4< T >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
backwardEule::Vector4< T >static
downEule::Vector4< T >static
forwardEule::Vector4< T >static
futureEule::Vector4< T >static
leftEule::Vector4< T >static
Lerp(const Vector4< T > &other, double t) constEule::Vector4< T >
LerpSelf(const Vector4< T > &other, double t)Eule::Vector4< T >
Magnitude() constEule::Vector4< T >
Normalize() constEule::Vector4< T >
NormalizeSelf()Eule::Vector4< T >
oneEule::Vector4< T >static
operator Vector2< T >() constEule::Vector4< T >
operator Vector3< T >() constEule::Vector4< T >
operator!=(const Vector4< T > &other) constEule::Vector4< T >
operator*(const T scale) constEule::Vector4< T >
operator*(const Matrix4x4 &mat) constEule::Vector4< T >
operator*=(const T scale)Eule::Vector4< T >
operator*=(const Matrix4x4 &mat)Eule::Vector4< T >
operator+(const Vector4< T > &other) constEule::Vector4< T >
operator+=(const Vector4< T > &other)Eule::Vector4< T >
operator-(const Vector4< T > &other) constEule::Vector4< T >
operator-() constEule::Vector4< T >
operator-=(const Vector4< T > &other)Eule::Vector4< T >
operator/(const T scale) constEule::Vector4< T >
operator/=(const T scale)Eule::Vector4< T >
operator<<(std::ostream &os, const Vector4< T > &v)Eule::Vector4< T >friend
operator<<(std::wostream &os, const Vector4< T > &v)Eule::Vector4< T >friend
operator=(const Vector4< T > &other)Eule::Vector4< T >
operator=(Vector4< T > &&other) noexceptEule::Vector4< T >
operator==(const Vector4< T > &other) constEule::Vector4< T >
operator[](std::size_t idx)Eule::Vector4< T >
operator[](std::size_t idx) constEule::Vector4< T >
pastEule::Vector4< T >static
rightEule::Vector4< T >static
Similar(const Vector4< T > &other, double epsilon=0.00001) constEule::Vector4< T >
SqrMagnitude() constEule::Vector4< T >
ToDouble() constEule::Vector4< T >
ToInt() constEule::Vector4< T >
upEule::Vector4< T >static
Vector4()Eule::Vector4< T >inline
Vector4(T _x, T _y, T _z, T _w)Eule::Vector4< T >inline
Vector4(const Vector4< T > &other)=defaultEule::Vector4< T >
Vector4(Vector4< T > &&other) noexcept=defaultEule::Vector4< T >
VectorScale(const Vector4< T > &scalar) constEule::Vector4< T >
wEule::Vector4< T >
xEule::Vector4< T >
yEule::Vector4< T >
zEule::Vector4< T >
zeroEule::Vector4< T >static
- - - - diff --git a/Doxygen/build/classEule_1_1Vector4.html b/Doxygen/build/classEule_1_1Vector4.html deleted file mode 100644 index 5fd52ea..0000000 --- a/Doxygen/build/classEule_1_1Vector4.html +++ /dev/null @@ -1,1703 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Vector4< T > Class Template Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-Public Member Functions | -Public Attributes | -Static Public Attributes | -Friends | -List of all members
-
-
Eule::Vector4< T > Class Template Reference
-
-
- -

Representation of a 4d vector. - More...

- -

#include <Vector2.h>

-
-Collaboration diagram for Eule::Vector4< T >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Vector4 ()
 
 Vector4 (T _x, T _y, T _z, T _w)
 
 Vector4 (const Vector4< T > &other)=default
 
 Vector4 (Vector4< T > &&other) noexcept=default
 
double SqrMagnitude () const
 Will compute the square magnitude. More...
 
double Magnitude () const
 Will compute the magnitude. More...
 
Vector4< double > Normalize () const
 Will return the normalization of this vector. More...
 
void NormalizeSelf ()
 Will normalize this vector. More...
 
Vector4< T > VectorScale (const Vector4< T > &scalar) const
 Will scale self.n by scalar.n. More...
 
void LerpSelf (const Vector4< T > &other, double t)
 Will lerp itself towards other by t. More...
 
Vector4< double > Lerp (const Vector4< T > &other, double t) const
 Will return a lerp result between this and another vector. More...
 
bool Similar (const Vector4< T > &other, double epsilon=0.00001) const
 Will compare if two vectors are similar to a certain epsilon value. More...
 
Vector4< int > ToInt () const
 Will convert this vector to a Vector4i. More...
 
Vector4< double > ToDouble () const
 Will convert this vector to a Vector4d. More...
 
T & operator[] (std::size_t idx)
 
const T & operator[] (std::size_t idx) const
 
Vector4< T > operator+ (const Vector4< T > &other) const
 
void operator+= (const Vector4< T > &other)
 
Vector4< T > operator- (const Vector4< T > &other) const
 
void operator-= (const Vector4< T > &other)
 
Vector4< T > operator* (const T scale) const
 
void operator*= (const T scale)
 
Vector4< T > operator/ (const T scale) const
 
void operator/= (const T scale)
 
Vector4< T > operator* (const Matrix4x4 &mat) const
 
void operator*= (const Matrix4x4 &mat)
 
Vector4< T > operator- () const
 
 operator Vector2< T > () const
 
 operator Vector3< T > () const
 Conversion method. More...
 
void operator= (const Vector4< T > &other)
 Conversion method. More...
 
void operator= (Vector4< T > &&other) noexcept
 
bool operator== (const Vector4< T > &other) const
 
bool operator!= (const Vector4< T > &other) const
 
- - - - - - - - - -

-Public Attributes

x
 
y
 
z
 
w
 
- - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const Vector4< double > up
 
static const Vector4< double > down
 
static const Vector4< double > right
 
static const Vector4< double > left
 
static const Vector4< double > forward
 
static const Vector4< double > backward
 
static const Vector4< double > future
 
static const Vector4< double > past
 
static const Vector4< double > one
 
static const Vector4< double > zero
 
- - - - - -

-Friends

std::ostream & operator<< (std::ostream &os, const Vector4< T > &v)
 
std::wostream & operator<< (std::wostream &os, const Vector4< T > &v)
 
-

Detailed Description

-

template<typename T>
-class Eule::Vector4< T >

- -

Representation of a 4d vector.

-

Contains a lot of utility methods.

- -

Definition at line 8 of file Vector2.h.

-

Constructor & Destructor Documentation

- -

◆ Vector4() [1/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - -
Eule::Vector4< T >::Vector4 ()
-
-inline
-
- -

Definition at line 20 of file Vector4.h.

-
20 : x{ 0 }, y{ 0 }, z{ 0 }, w{ 0 } {}
-
-
-
- -

◆ Vector4() [2/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Eule::Vector4< T >::Vector4 (_x,
_y,
_z,
_w 
)
-
-inline
-
- -

Definition at line 21 of file Vector4.h.

-
21 : x{ _x }, y{ _y }, z{ _z }, w{ _w } {}
-
-
-
- -

◆ Vector4() [3/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
Eule::Vector4< T >::Vector4 (const Vector4< T > & other)
-
-default
-
- -
-
- -

◆ Vector4() [4/4]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
Eule::Vector4< T >::Vector4 (Vector4< T > && other)
-
-defaultnoexcept
-
- -
-
-

Member Function Documentation

- -

◆ Lerp()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
Vector4< double > Vector4::Lerp (const Vector4< T > & other,
double t 
) const
-
- -

Will return a lerp result between this and another vector.

- -

Definition at line 287 of file Vector4.cpp.

-
288 {
-
289  Vector4d copy(this->ToDouble());
-
290  copy.LerpSelf(other.ToDouble(), t);
-
291 
-
292  return copy;
-
293 }
-
-
-
- -

◆ LerpSelf()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
void Vector4::LerpSelf (const Vector4< T > & other,
double t 
)
-
- -

Will lerp itself towards other by t.

- -

Definition at line 267 of file Vector4.cpp.

-
268 {
-
269  const double it = 1.0 - t;
-
270 
-
271  x = (int)(it * (double)x + t * (double)other.x);
-
272  y = (int)(it * (double)y + t * (double)other.y);
-
273  z = (int)(it * (double)z + t * (double)other.z);
-
274  w = (int)(it * (double)w + t * (double)other.w);
-
275 
-
276  return;
-
277 }
-
-
-
- -

◆ Magnitude()

- -
-
-
-template<typename T >
- - - - -
double Vector4::Magnitude
-
- -

Will compute the magnitude.

- -

Definition at line 38 of file Vector4.cpp.

-
39 {
-
40  return sqrt(SqrMagnitude());
-
41 }
-
-
-
- -

◆ Normalize()

- -
-
-
-template<typename T >
- - - - -
Vector4< double > Vector4::Normalize
-
- -

Will return the normalization of this vector.

- -

Definition at line 92 of file Vector4.cpp.

-
93 {
-
94  Vector4<double> norm(x, y, z, w);
-
95  norm.NormalizeSelf();
-
96 
-
97  return norm;
-
98 }
-
-
-
- -

◆ NormalizeSelf()

- -
-
-
-template<typename T >
- - - - - - - -
void Vector4::NormalizeSelf ()
-
- -

Will normalize this vector.

- -

Definition at line 148 of file Vector4.cpp.

-
149 {
-
150  std::cerr << "Stop normalizing int-vectors!!" << std::endl;
-
151  x = 0;
-
152  y = 0;
-
153  z = 0;
-
154  w = 0;
-
155 
-
156  return;
-
157 }
-
-
-
- -

◆ operator Vector2< T >()

- -
-
-
-template<typename T >
- - - - -
Vector4::operator Vector2< T >
-
- -

Definition at line 775 of file Vector4.cpp.

-
776 {
-
777  return Vector2<T>(x, y);
-
778 }
-
-
-
- -

◆ operator Vector3< T >()

- -
-
-
-template<typename T >
- - - - -
Vector4::operator Vector3< T >
-
- -

Conversion method.

- -

Definition at line 781 of file Vector4.cpp.

-
782 {
-
783  return Vector3<T>(x, y, z);
-
784 }
-
-
-
- -

◆ operator!=()

- -
-
-
-template<typename T >
- - - - - - - - -
bool Vector4::operator!= (const Vector4< T > & other) const
-
- -

Definition at line 767 of file Vector4.cpp.

-
768 {
-
769  return !operator==(other);
-
770 }
-
-
-
- -

◆ operator*() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
Vector4< int > Vector4::operator* (const Matrix4x4mat) const
-
- -

Definition at line 684 of file Vector4.cpp.

-
685 {
-
686  Vector4<double> newVec;
-
687 
-
688  newVec.x = (mat[0][0] * x) + (mat[0][1] * y) + (mat[0][2] * z) + (mat[0][3] * w);
-
689  newVec.y = (mat[1][0] * x) + (mat[1][1] * y) + (mat[1][2] * z) + (mat[1][3] * w);
-
690  newVec.z = (mat[2][0] * x) + (mat[2][1] * y) + (mat[2][2] * z) + (mat[2][3] * w);
-
691  newVec.w = (mat[3][0] * x) + (mat[3][1] * y) + (mat[3][2] * z) + (mat[3][3] * w);
-
692 
-
693  return Vector4<int>(
-
694  (int)newVec.x,
-
695  (int)newVec.y,
-
696  (int)newVec.z,
-
697  (int)newVec.w
-
698  );
-
699 }
-
-
-
- -

◆ operator*() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
Vector4< T > Vector4::operator* (const T scale) const
-
- -

Definition at line 512 of file Vector4.cpp.

-
513 {
-
514  return Vector4<T>(
-
515  x * scale,
-
516  y * scale,
-
517  z * scale,
-
518  w * scale
-
519  );
-
520 }
-
-
-
- -

◆ operator*=() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector4::operator*= (const Matrix4x4mat)
-
- -

Definition at line 752 of file Vector4.cpp.

-
753 {
-
754  Vector4<double> buffer(x, y, z, w);
-
755 
-
756  // Should this still be reversed...? like, instead of mat[x][y], use mat[y][m]
-
757  // idk right now. check that if something doesn't work
-
758  x = (int)((mat[0][0] * buffer.x) + (mat[0][1] * buffer.y) + (mat[0][2] * buffer.z) + (mat[0][3] * buffer.w));
-
759  y = (int)((mat[1][0] * buffer.x) + (mat[1][1] * buffer.y) + (mat[1][2] * buffer.z) + (mat[1][3] * buffer.w));
-
760  z = (int)((mat[2][0] * buffer.x) + (mat[2][1] * buffer.y) + (mat[2][2] * buffer.z) + (mat[2][3] * buffer.w));
-
761  w = (int)((mat[3][0] * buffer.x) + (mat[3][1] * buffer.y) + (mat[3][2] * buffer.z) + (mat[3][3] * buffer.w));
-
762 
-
763  return;
-
764 }
-
-
-
- -

◆ operator*=() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector4::operator*= (const T scale)
-
- -

Definition at line 557 of file Vector4.cpp.

-
558 {
-
559  x *= scale;
-
560  y *= scale;
-
561  z *= scale;
-
562  w *= scale;
-
563  return;
-
564 }
-
-
-
- -

◆ operator+()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector4< T > Vector4::operator+ (const Vector4< T > & other) const
-
- -

Definition at line 331 of file Vector4.cpp.

-
332 {
-
333  return Vector4<T>(
-
334  x + other.x,
-
335  y + other.y,
-
336  z + other.z,
-
337  w + other.w
-
338  );
-
339 }
-
-
-
- -

◆ operator+=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector4::operator+= (const Vector4< T > & other)
-
- -

Definition at line 376 of file Vector4.cpp.

-
377 {
-
378  x += other.x;
-
379  y += other.y;
-
380  z += other.z;
-
381  w += other.w;
-
382  return;
-
383 }
-
-
-
- -

◆ operator-() [1/2]

- -
-
-
-template<typename T >
- - - - -
Vector4< T > Vector4::operator-
-
- -

Definition at line 719 of file Vector4.cpp.

-
720 {
-
721  return Vector4<T>(
-
722  -x,
-
723  -y,
-
724  -z,
-
725  -w
-
726  );
-
727 }
-
-
-
- -

◆ operator-() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
Vector4< T > Vector4::operator- (const Vector4< T > & other) const
-
- -

Definition at line 421 of file Vector4.cpp.

-
422 {
-
423  return Vector4<T>(
-
424  x - other.x,
-
425  y - other.y,
-
426  z - other.z,
-
427  w - other.w
-
428  );
-
429 }
-
-
-
- -

◆ operator-=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector4::operator-= (const Vector4< T > & other)
-
- -

Definition at line 466 of file Vector4.cpp.

-
467 {
-
468  x -= other.x;
-
469  y -= other.y;
-
470  z -= other.z;
-
471  w -= other.w;
-
472  return;
-
473 }
-
-
-
- -

◆ operator/()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector4< T > Vector4::operator/ (const T scale) const
-
- -

Definition at line 603 of file Vector4.cpp.

-
604 {
-
605  return Vector4<T>(
-
606  x / scale,
-
607  y / scale,
-
608  z / scale,
-
609  w / scale
-
610  );
-
611 }
-
-
-
- -

◆ operator/=()

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector4::operator/= (const T scale)
-
- -

Definition at line 647 of file Vector4.cpp.

-
648 {
-
649  x /= scale;
-
650  y /= scale;
-
651  z /= scale;
-
652  w /= scale;
-
653  return;
-
654 }
-
-
-
- -

◆ operator=() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
void Vector4::operator= (const Vector4< T > & other)
-
- -

Conversion method.

- -

Definition at line 730 of file Vector4.cpp.

-
731 {
-
732  x = other.x;
-
733  y = other.y;
-
734  z = other.z;
-
735  w = other.w;
-
736 
-
737  return;
-
738 }
-
-
-
- -

◆ operator=() [2/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
void Vector4::operator= (Vector4< T > && other)
-
-noexcept
-
- -

Definition at line 741 of file Vector4.cpp.

-
742 {
-
743  x = std::move(other.x);
-
744  y = std::move(other.y);
-
745  z = std::move(other.z);
-
746  w = std::move(other.w);
-
747 
-
748  return;
-
749 }
-
-
-
- -

◆ operator==()

- -
-
-
-template<typename T >
- - - - - - - - -
bool Vector4::operator== (const Vector4< T > & other) const
-
- -

Definition at line 659 of file Vector4.cpp.

-
660 {
-
661  return
-
662  (x == other.x) &&
-
663  (y == other.y) &&
-
664  (z == other.z) &&
-
665  (w == other.w);
-
666 }
-
-
-
- -

◆ operator[]() [1/2]

- -
-
-
-template<typename T >
- - - - - - - - -
T & Vector4::operator[] (std::size_t idx)
-
- -

Definition at line 185 of file Vector4.cpp.

-
186 {
-
187  switch (idx)
-
188  {
-
189  case 0:
-
190  return x;
-
191  case 1:
-
192  return y;
-
193  case 2:
-
194  return z;
-
195  case 3:
-
196  return w;
-
197  default:
-
198  throw std::out_of_range("Array descriptor on Vector4<T> out of range!");
-
199  }
-
200 }
-
-
-
- -

◆ operator[]() [2/2]

- -
-
-
-template<typename T >
- - - - - - - - -
const T & Vector4::operator[] (std::size_t idx) const
-
- -

Definition at line 203 of file Vector4.cpp.

-
204 {
-
205  switch (idx)
-
206  {
-
207  case 0:
-
208  return x;
-
209  case 1:
-
210  return y;
-
211  case 2:
-
212  return z;
-
213  case 3:
-
214  return w;
-
215  default:
-
216  throw std::out_of_range("Array descriptor on Vector4<T> out of range!");
-
217  }
-
218 }
-
-
-
- -

◆ Similar()

- -
-
-
-template<typename T >
- - - - - - - - - - - - - - - - - - -
bool Vector4::Similar (const Vector4< T > & other,
double epsilon = 0.00001 
) const
-
- -

Will compare if two vectors are similar to a certain epsilon value.

- -

Definition at line 162 of file Vector4.cpp.

-
163 {
-
164  return
-
165  (::Math::Similar(x, other.x, epsilon)) &&
-
166  (::Math::Similar(y, other.y, epsilon)) &&
-
167  (::Math::Similar(z, other.z, epsilon)) &&
-
168  (::Math::Similar(w, other.w, epsilon))
-
169  ;
-
170 }
-
-
-
- -

◆ SqrMagnitude()

- -
-
-
-template<typename T >
- - - - - - - -
double Vector4::SqrMagnitude () const
-
- -

Will compute the square magnitude.

- -

Definition at line 31 of file Vector4.cpp.

-
32 {
-
33  int iSqrMag = x*x + y*y + z*z + w*w;
-
34  return (double)iSqrMag;
-
35 }
-
-
-
- -

◆ ToDouble()

- -
-
-
-template<typename T >
- - - - -
Vector4< double > Vector4::ToDouble
-
- -

Will convert this vector to a Vector4d.

- -

Definition at line 179 of file Vector4.cpp.

-
180 {
-
181  return Vector4<double>((double)x, (double)y, (double)z, (double)w);
-
182 }
-
-
-
- -

◆ ToInt()

- -
-
-
-template<typename T >
- - - - -
Vector4< int > Vector4::ToInt
-
- -

Will convert this vector to a Vector4i.

- -

Definition at line 173 of file Vector4.cpp.

-
174 {
-
175  return Vector4<int>((int)x, (int)y, (int)z, (int)w);
-
176 }
-
-
-
- -

◆ VectorScale()

- -
-
-
-template<typename T >
- - - - - - - - -
Vector4< int > Vector4::VectorScale (const Vector4< T > & scalar) const
-
- -

Will scale self.n by scalar.n.

- -

Definition at line 79 of file Vector4.cpp.

-
80 {
-
81  return Vector4<int>(
-
82  x * scalar.x,
-
83  y * scalar.y,
-
84  z * scalar.z,
-
85  w * scalar.w
-
86  );
-
87 }
-
-
-
-

Friends And Related Function Documentation

- -

◆ operator<< [1/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::ostream& operator<< (std::ostream & os,
const Vector4< T > & v 
)
-
-friend
-
- -

Definition at line 79 of file Vector4.h.

-
80  {
-
81  return os << "[x: " << v.x << " y: " << v.y << " z: " << v.z << " w: " << v.w << "]";
-
82  }
-
-
-
- -

◆ operator<< [2/2]

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::wostream& operator<< (std::wostream & os,
const Vector4< T > & v 
)
-
-friend
-
- -

Definition at line 83 of file Vector4.h.

-
84  {
-
85  return os << L"[x: " << v.x << L" y: " << v.y << L" z: " << v.z << L" w: " << v.w << L"]";
-
86  }
-
-
-
-

Member Data Documentation

- -

◆ backward

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::backward
-
-static
-
- -

Definition at line 99 of file Vector4.h.

- -
-
- -

◆ down

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::down
-
-static
-
- -

Definition at line 95 of file Vector4.h.

- -
-
- -

◆ forward

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::forward
-
-static
-
- -

Definition at line 98 of file Vector4.h.

- -
-
- -

◆ future

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::future
-
-static
-
- -

Definition at line 100 of file Vector4.h.

- -
-
- -

◆ left

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::left
-
-static
-
- -

Definition at line 97 of file Vector4.h.

- -
-
- -

◆ one

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::one
-
-static
-
- -

Definition at line 102 of file Vector4.h.

- -
-
- -

◆ past

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::past
-
-static
-
- -

Definition at line 101 of file Vector4.h.

- -
-
- -

◆ right

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::right
-
-static
-
- -

Definition at line 96 of file Vector4.h.

- -
-
- -

◆ up

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::up
-
-static
-
- -

Definition at line 94 of file Vector4.h.

- -
-
- -

◆ w

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector4< T >::w
-
- -

Definition at line 91 of file Vector4.h.

- -
-
- -

◆ x

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector4< T >::x
-
- -

Definition at line 88 of file Vector4.h.

- -
-
- -

◆ y

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector4< T >::y
-
- -

Definition at line 89 of file Vector4.h.

- -
-
- -

◆ z

- -
-
-
-template<typename T >
- - - - -
T Eule::Vector4< T >::z
-
- -

Definition at line 90 of file Vector4.h.

- -
-
- -

◆ zero

- -
-
-
-template<typename T >
- - - - - -
- - - - -
const Vector4< double > Vector4::zero
-
-static
-
- -

Definition at line 103 of file Vector4.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
Eule::Vector3
Representation of a 3d vector.
Definition: Matrix4x4.h:9
-
Eule::Vector4::x
T x
Definition: Vector4.h:88
-
Eule::Vector4::z
T z
Definition: Vector4.h:90
-
Eule::Vector4::w
T w
Definition: Vector4.h:91
-
Eule::Vector4::ToDouble
Vector4< double > ToDouble() const
Will convert this vector to a Vector4d.
Definition: Vector4.cpp:179
-
Eule::Vector2
Representation of a 2d vector.
Definition: Vector2.h:14
-
Eule::Math::Similar
static constexpr bool Similar(const double a, const double b, const double epsilon=0.00001)
Compares two double values with a given accuracy.
Definition: Math.h:102
-
Eule::Vector4::operator==
bool operator==(const Vector4< T > &other) const
Definition: Vector4.cpp:659
-
Eule::Vector4::SqrMagnitude
double SqrMagnitude() const
Will compute the square magnitude.
Definition: Vector4.cpp:31
-
Eule::Vector4::y
T y
Definition: Vector4.h:89
-
Eule::Vector4< double >
- - - - diff --git a/Doxygen/build/classEule_1_1Vector4__coll__graph.map b/Doxygen/build/classEule_1_1Vector4__coll__graph.map deleted file mode 100644 index 4c69d0c..0000000 --- a/Doxygen/build/classEule_1_1Vector4__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/classEule_1_1Vector4__coll__graph.md5 b/Doxygen/build/classEule_1_1Vector4__coll__graph.md5 deleted file mode 100644 index f5ae0ed..0000000 --- a/Doxygen/build/classEule_1_1Vector4__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -09796771b7af89436ab56cfd53f68a29 \ No newline at end of file diff --git a/Doxygen/build/classEule_1_1Vector4__coll__graph.png b/Doxygen/build/classEule_1_1Vector4__coll__graph.png deleted file mode 100644 index fe84cea..0000000 Binary files a/Doxygen/build/classEule_1_1Vector4__coll__graph.png and /dev/null differ diff --git a/Doxygen/build/classes.html b/Doxygen/build/classes.html deleted file mode 100644 index b2129e0..0000000 --- a/Doxygen/build/classes.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Index - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
c | m | q | r | t | v
- - - - - - - - - - - - - - - - - - - - - - - - -
  c  
-
Matrix4x4 (Eule)   
  t  
-
Vector3 (Eule)   
  q  
-
Vector4 (Eule)   
Collider (Eule)   TrapazoidalPrismCollider (Eule)   
  m  
-
Quaternion (Eule)   
  v  
-
  r  
-
Math (Eule)   Vector2 (Eule)   
Rect (Eule)   
-
c | m | q | r | t | v
-
- - - - diff --git a/Doxygen/build/closed.png b/Doxygen/build/closed.png deleted file mode 100644 index 98cc2c9..0000000 Binary files a/Doxygen/build/closed.png and /dev/null differ diff --git a/Doxygen/build/dir_1fefb9009d41306f82e23dc917083c9e.html b/Doxygen/build/dir_1fefb9009d41306f82e23dc917083c9e.html deleted file mode 100644 index 6df4a37..0000000 --- a/Doxygen/build/dir_1fefb9009d41306f82e23dc917083c9e.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/x64/Release Directory Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Release Directory Reference
-
-
-
- - - - diff --git a/Doxygen/build/dir_29a3c7679fa29c698d8a016dea7d0b26.html b/Doxygen/build/dir_29a3c7679fa29c698d8a016dea7d0b26.html deleted file mode 100644 index 2782838..0000000 --- a/Doxygen/build/dir_29a3c7679fa29c698d8a016dea7d0b26.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule Directory Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Eule Directory Reference
-
-
- - - - - - -

-Directories

directory  Debug
 
directory  x64
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  Collider.cpp [code]
 
file  Collider.h [code]
 
file  Constants.h [code]
 
file  Math.cpp [code]
 
file  Math.h [code]
 
file  Matrix4x4.cpp [code]
 
file  Matrix4x4.h [code]
 
file  Quaternion.cpp [code]
 
file  Quaternion.h [code]
 
file  Rect.h [code]
 
file  TrapazoidalPrismCollider.cpp [code]
 
file  TrapazoidalPrismCollider.h [code]
 
file  Vector2.cpp [code]
 
file  Vector2.h [code]
 
file  Vector3.cpp [code]
 
file  Vector3.h [code]
 
file  Vector4.cpp [code]
 
file  Vector4.h [code]
 
file  version.h [code]
 
-
- - - - diff --git a/Doxygen/build/dir_b9243fac9f130637c8e868960898670e.html b/Doxygen/build/dir_b9243fac9f130637c8e868960898670e.html deleted file mode 100644 index 7609e92..0000000 --- a/Doxygen/build/dir_b9243fac9f130637c8e868960898670e.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/x64 Directory Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
x64 Directory Reference
-
-
- - - - - - -

-Directories

directory  Debug
 
directory  Release
 
-
- - - - diff --git a/Doxygen/build/dir_c806cfdecfdfd6ea1cddf5ffe1bf0281.html b/Doxygen/build/dir_c806cfdecfdfd6ea1cddf5ffe1bf0281.html deleted file mode 100644 index d9f504b..0000000 --- a/Doxygen/build/dir_c806cfdecfdfd6ea1cddf5ffe1bf0281.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/Debug Directory Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Debug Directory Reference
-
-
-
- - - - diff --git a/Doxygen/build/dir_e847076a3068559a2237d545d5d06d37.html b/Doxygen/build/dir_e847076a3068559a2237d545d5d06d37.html deleted file mode 100644 index b42c4d9..0000000 --- a/Doxygen/build/dir_e847076a3068559a2237d545d5d06d37.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/x64/Debug Directory Reference - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
Debug Directory Reference
-
-
-
- - - - diff --git a/Doxygen/build/doc.png b/Doxygen/build/doc.png deleted file mode 100644 index 17edabf..0000000 Binary files a/Doxygen/build/doc.png and /dev/null differ diff --git a/Doxygen/build/doxygen.css b/Doxygen/build/doxygen.css deleted file mode 100644 index 73ecbb2..0000000 --- a/Doxygen/build/doxygen.css +++ /dev/null @@ -1,1771 +0,0 @@ -/* The standard CSS for doxygen 1.8.17 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, p.intertd, p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #FFFFFF; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -/* -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTableHead tr { -} - -table.markdownTableBodyLeft td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft { - text-align: left -} - -th.markdownTableHeadRight { - text-align: right -} - -th.markdownTableHeadCenter { - text-align: center -} -*/ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} - diff --git a/Doxygen/build/doxygen.png b/Doxygen/build/doxygen.png deleted file mode 100644 index 3ff17d8..0000000 Binary files a/Doxygen/build/doxygen.png and /dev/null differ diff --git a/Doxygen/build/dynsections.js b/Doxygen/build/dynsections.js deleted file mode 100644 index c8e84aa..0000000 --- a/Doxygen/build/dynsections.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -Leonetienne/Eule: File List - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all files with brief descriptions:
-
- - - - diff --git a/Doxygen/build/folderclosed.png b/Doxygen/build/folderclosed.png deleted file mode 100644 index bb8ab35..0000000 Binary files a/Doxygen/build/folderclosed.png and /dev/null differ diff --git a/Doxygen/build/folderopen.png b/Doxygen/build/folderopen.png deleted file mode 100644 index d6c7f67..0000000 Binary files a/Doxygen/build/folderopen.png and /dev/null differ diff --git a/Doxygen/build/functions.html b/Doxygen/build/functions.html deleted file mode 100644 index 821e6b7..0000000 --- a/Doxygen/build/functions.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- a -

-
- - - - diff --git a/Doxygen/build/functions_b.html b/Doxygen/build/functions_b.html deleted file mode 100644 index e38d684..0000000 --- a/Doxygen/build/functions_b.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- b -

-
- - - - diff --git a/Doxygen/build/functions_c.html b/Doxygen/build/functions_c.html deleted file mode 100644 index ed653b3..0000000 --- a/Doxygen/build/functions_c.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- c -

-
- - - - diff --git a/Doxygen/build/functions_d.html b/Doxygen/build/functions_d.html deleted file mode 100644 index 17770ab..0000000 --- a/Doxygen/build/functions_d.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- d -

-
- - - - diff --git a/Doxygen/build/functions_e.html b/Doxygen/build/functions_e.html deleted file mode 100644 index 665980c..0000000 --- a/Doxygen/build/functions_e.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- e -

-
- - - - diff --git a/Doxygen/build/functions_f.html b/Doxygen/build/functions_f.html deleted file mode 100644 index e5c43d9..0000000 --- a/Doxygen/build/functions_f.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- f -

-
- - - - diff --git a/Doxygen/build/functions_func.html b/Doxygen/build/functions_func.html deleted file mode 100644 index a46a85a..0000000 --- a/Doxygen/build/functions_func.html +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - Functions - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- c -

- - -

- d -

- - -

- g -

- - -

- i -

- - -

- l -

- - -

- m -

- - -

- n -

- - -

- o -

- - -

- q -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

- - -

- ~ -

-
- - - - diff --git a/Doxygen/build/functions_g.html b/Doxygen/build/functions_g.html deleted file mode 100644 index cfc3f75..0000000 --- a/Doxygen/build/functions_g.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- g -

-
- - - - diff --git a/Doxygen/build/functions_h.html b/Doxygen/build/functions_h.html deleted file mode 100644 index eaa1dd6..0000000 --- a/Doxygen/build/functions_h.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- h -

-
- - - - diff --git a/Doxygen/build/functions_i.html b/Doxygen/build/functions_i.html deleted file mode 100644 index 482522d..0000000 --- a/Doxygen/build/functions_i.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- i -

-
- - - - diff --git a/Doxygen/build/functions_j.html b/Doxygen/build/functions_j.html deleted file mode 100644 index e47055f..0000000 --- a/Doxygen/build/functions_j.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- j -

-
- - - - diff --git a/Doxygen/build/functions_k.html b/Doxygen/build/functions_k.html deleted file mode 100644 index bc47234..0000000 --- a/Doxygen/build/functions_k.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- k -

-
- - - - diff --git a/Doxygen/build/functions_l.html b/Doxygen/build/functions_l.html deleted file mode 100644 index 6501fad..0000000 --- a/Doxygen/build/functions_l.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- l -

-
- - - - diff --git a/Doxygen/build/functions_m.html b/Doxygen/build/functions_m.html deleted file mode 100644 index 450f633..0000000 --- a/Doxygen/build/functions_m.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- m -

-
- - - - diff --git a/Doxygen/build/functions_n.html b/Doxygen/build/functions_n.html deleted file mode 100644 index 4fcb9ff..0000000 --- a/Doxygen/build/functions_n.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- n -

-
- - - - diff --git a/Doxygen/build/functions_o.html b/Doxygen/build/functions_o.html deleted file mode 100644 index a357b01..0000000 --- a/Doxygen/build/functions_o.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- o -

-
- - - - diff --git a/Doxygen/build/functions_p.html b/Doxygen/build/functions_p.html deleted file mode 100644 index 3163e10..0000000 --- a/Doxygen/build/functions_p.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- p -

-
- - - - diff --git a/Doxygen/build/functions_q.html b/Doxygen/build/functions_q.html deleted file mode 100644 index e4d9639..0000000 --- a/Doxygen/build/functions_q.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- q -

-
- - - - diff --git a/Doxygen/build/functions_r.html b/Doxygen/build/functions_r.html deleted file mode 100644 index 1a04069..0000000 --- a/Doxygen/build/functions_r.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- r -

-
- - - - diff --git a/Doxygen/build/functions_rela.html b/Doxygen/build/functions_rela.html deleted file mode 100644 index 0320f03..0000000 --- a/Doxygen/build/functions_rela.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - Related Functions - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/Doxygen/build/functions_s.html b/Doxygen/build/functions_s.html deleted file mode 100644 index 9b9a136..0000000 --- a/Doxygen/build/functions_s.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- s -

-
- - - - diff --git a/Doxygen/build/functions_t.html b/Doxygen/build/functions_t.html deleted file mode 100644 index 9a47775..0000000 --- a/Doxygen/build/functions_t.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- t -

-
- - - - diff --git a/Doxygen/build/functions_u.html b/Doxygen/build/functions_u.html deleted file mode 100644 index 5be3c63..0000000 --- a/Doxygen/build/functions_u.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- u -

-
- - - - diff --git a/Doxygen/build/functions_v.html b/Doxygen/build/functions_v.html deleted file mode 100644 index bafb2bc..0000000 --- a/Doxygen/build/functions_v.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- v -

-
- - - - diff --git a/Doxygen/build/functions_vars.html b/Doxygen/build/functions_vars.html deleted file mode 100644 index 81acb1f..0000000 --- a/Doxygen/build/functions_vars.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - Variables - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- j -

- - -

- k -

- - -

- l -

- - -

- m -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

- - -

- w -

- - -

- x -

- - -

- y -

- - -

- z -

-
- - - - diff --git a/Doxygen/build/functions_w.html b/Doxygen/build/functions_w.html deleted file mode 100644 index 412d149..0000000 --- a/Doxygen/build/functions_w.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- w -

-
- - - - diff --git a/Doxygen/build/functions_x.html b/Doxygen/build/functions_x.html deleted file mode 100644 index 2226f3e..0000000 --- a/Doxygen/build/functions_x.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- x -

-
- - - - diff --git a/Doxygen/build/functions_y.html b/Doxygen/build/functions_y.html deleted file mode 100644 index e19f72a..0000000 --- a/Doxygen/build/functions_y.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- y -

-
- - - - diff --git a/Doxygen/build/functions_z.html b/Doxygen/build/functions_z.html deleted file mode 100644 index b398b37..0000000 --- a/Doxygen/build/functions_z.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- z -

-
- - - - diff --git a/Doxygen/build/functions_~.html b/Doxygen/build/functions_~.html deleted file mode 100644 index 09ac5b6..0000000 --- a/Doxygen/build/functions_~.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all class members with links to the classes they belong to:
- -

- ~ -

-
- - - - diff --git a/Doxygen/build/globals.html b/Doxygen/build/globals.html deleted file mode 100644 index d461301..0000000 --- a/Doxygen/build/globals.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -Leonetienne/Eule: File Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all file members with links to the files they belong to:
-
- - - - diff --git a/Doxygen/build/globals_defs.html b/Doxygen/build/globals_defs.html deleted file mode 100644 index 8504d3b..0000000 --- a/Doxygen/build/globals_defs.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -Leonetienne/Eule: File Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/Doxygen/build/globals_vars.html b/Doxygen/build/globals_vars.html deleted file mode 100644 index 7737e7c..0000000 --- a/Doxygen/build/globals_vars.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -Leonetienne/Eule: File Members - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/Doxygen/build/graph_legend.html b/Doxygen/build/graph_legend.html deleted file mode 100644 index ef5c1f3..0000000 --- a/Doxygen/build/graph_legend.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -Leonetienne/Eule: Graph Legend - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Graph Legend
-
-
-

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
-
class Invisible { };
-
-
/*! Truncated class, inheritance relation is hidden */
-
class Truncated : public Invisible { };
-
-
/* Class not documented with doxygen comments */
-
class Undocumented { };
-
-
/*! Class that is inherited using public inheritance */
-
class PublicBase : public Truncated { };
-
-
/*! A template class */
-
template<class T> class Templ { };
-
-
/*! Class that is inherited using protected inheritance */
-
class ProtectedBase { };
-
-
/*! Class that is inherited using private inheritance */
-
class PrivateBase { };
-
-
/*! Class that is used by the Inherited class */
-
class Used { };
-
-
/*! Super class that inherits a number of other classes */
-
class Inherited : public PublicBase,
-
protected ProtectedBase,
-
private PrivateBase,
-
public Undocumented,
-
public Templ<int>
-
{
-
private:
-
Used *m_usedClass;
-
};
-

This will result in the following graph:

-

The boxes in the above graph have the following meaning:

- -

The arrows have the following meaning:

- -
- - - - diff --git a/Doxygen/build/graph_legend.md5 b/Doxygen/build/graph_legend.md5 deleted file mode 100644 index 8fcdccd..0000000 --- a/Doxygen/build/graph_legend.md5 +++ /dev/null @@ -1 +0,0 @@ -f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/Doxygen/build/graph_legend.png b/Doxygen/build/graph_legend.png deleted file mode 100644 index 7e2cbcf..0000000 Binary files a/Doxygen/build/graph_legend.png and /dev/null differ diff --git a/Doxygen/build/hierarchy.html b/Doxygen/build/hierarchy.html deleted file mode 100644 index 1d49d37..0000000 --- a/Doxygen/build/hierarchy.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Hierarchy - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
-
-

Go to the graphical class hierarchy

-This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 12]
- - - - - - - - - - - - -
 CEule::ColliderAbstract class of a collider domain
 CEule::TrapazoidalPrismColliderA collider describing a trapazoidal prism
 CEule::MathMath utility class containing basic functions
 CEule::Matrix4x4A matrix 4x4 class representing a 3d transformation
 CEule::Quaternion3D rotation representation
 CEule::RectTrivial data structure representing a rectangle
 CEule::Vector2< T >Representation of a 2d vector
 CEule::Vector2< double >
 CEule::Vector3< T >Representation of a 3d vector
 CEule::Vector3< double >
 CEule::Vector4< T >Representation of a 4d vector
 CEule::Vector4< double >
-
-
- - - - diff --git a/Doxygen/build/index.html b/Doxygen/build/index.html deleted file mode 100644 index e285b9b..0000000 --- a/Doxygen/build/index.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -Leonetienne/Eule: Main Page - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Leonetienne/Eule Documentation
-
-
-
- - - - diff --git a/Doxygen/build/inherit_graph_0.map b/Doxygen/build/inherit_graph_0.map deleted file mode 100644 index 40c0fac..0000000 --- a/Doxygen/build/inherit_graph_0.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/inherit_graph_0.md5 b/Doxygen/build/inherit_graph_0.md5 deleted file mode 100644 index 92d61c3..0000000 --- a/Doxygen/build/inherit_graph_0.md5 +++ /dev/null @@ -1 +0,0 @@ -faecc536e16ff6fdde92040a1b4025d5 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_0.png b/Doxygen/build/inherit_graph_0.png deleted file mode 100644 index 3d3407f..0000000 Binary files a/Doxygen/build/inherit_graph_0.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_1.map b/Doxygen/build/inherit_graph_1.map deleted file mode 100644 index 510e898..0000000 --- a/Doxygen/build/inherit_graph_1.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_1.md5 b/Doxygen/build/inherit_graph_1.md5 deleted file mode 100644 index 2074742..0000000 --- a/Doxygen/build/inherit_graph_1.md5 +++ /dev/null @@ -1 +0,0 @@ -02a8e24e44839d466af4e3c27a008a2d \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_1.png b/Doxygen/build/inherit_graph_1.png deleted file mode 100644 index 0c7dd1a..0000000 Binary files a/Doxygen/build/inherit_graph_1.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_10.map b/Doxygen/build/inherit_graph_10.map deleted file mode 100644 index 30fc0c2..0000000 --- a/Doxygen/build/inherit_graph_10.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_10.md5 b/Doxygen/build/inherit_graph_10.md5 deleted file mode 100644 index daa19f2..0000000 --- a/Doxygen/build/inherit_graph_10.md5 +++ /dev/null @@ -1 +0,0 @@ -7155a82293b3a5bd041fc17368c37b0b \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_10.png b/Doxygen/build/inherit_graph_10.png deleted file mode 100644 index dac0139..0000000 Binary files a/Doxygen/build/inherit_graph_10.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_2.map b/Doxygen/build/inherit_graph_2.map deleted file mode 100644 index 0c0c201..0000000 --- a/Doxygen/build/inherit_graph_2.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_2.md5 b/Doxygen/build/inherit_graph_2.md5 deleted file mode 100644 index 81fa185..0000000 --- a/Doxygen/build/inherit_graph_2.md5 +++ /dev/null @@ -1 +0,0 @@ -da8ec51f432ceed38d2a3ba830433862 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_2.png b/Doxygen/build/inherit_graph_2.png deleted file mode 100644 index b5f1e4c..0000000 Binary files a/Doxygen/build/inherit_graph_2.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_3.map b/Doxygen/build/inherit_graph_3.map deleted file mode 100644 index 00d562a..0000000 --- a/Doxygen/build/inherit_graph_3.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_3.md5 b/Doxygen/build/inherit_graph_3.md5 deleted file mode 100644 index e78feaa..0000000 --- a/Doxygen/build/inherit_graph_3.md5 +++ /dev/null @@ -1 +0,0 @@ -d1f60b83f5f2b808ebacc2a8461bbcf1 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_3.png b/Doxygen/build/inherit_graph_3.png deleted file mode 100644 index 98925f5..0000000 Binary files a/Doxygen/build/inherit_graph_3.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_4.map b/Doxygen/build/inherit_graph_4.map deleted file mode 100644 index bc2ad07..0000000 --- a/Doxygen/build/inherit_graph_4.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_4.md5 b/Doxygen/build/inherit_graph_4.md5 deleted file mode 100644 index c38e462..0000000 --- a/Doxygen/build/inherit_graph_4.md5 +++ /dev/null @@ -1 +0,0 @@ -b877581d0cf44caf9f55600648999181 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_4.png b/Doxygen/build/inherit_graph_4.png deleted file mode 100644 index b4259b1..0000000 Binary files a/Doxygen/build/inherit_graph_4.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_5.map b/Doxygen/build/inherit_graph_5.map deleted file mode 100644 index 023aec9..0000000 --- a/Doxygen/build/inherit_graph_5.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_5.md5 b/Doxygen/build/inherit_graph_5.md5 deleted file mode 100644 index 2a70403..0000000 --- a/Doxygen/build/inherit_graph_5.md5 +++ /dev/null @@ -1 +0,0 @@ -0c13f6ce1f78441ee21cf9d1c45e1908 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_5.png b/Doxygen/build/inherit_graph_5.png deleted file mode 100644 index d5c92c8..0000000 Binary files a/Doxygen/build/inherit_graph_5.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_6.map b/Doxygen/build/inherit_graph_6.map deleted file mode 100644 index 68566a6..0000000 --- a/Doxygen/build/inherit_graph_6.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_6.md5 b/Doxygen/build/inherit_graph_6.md5 deleted file mode 100644 index bcc4c49..0000000 --- a/Doxygen/build/inherit_graph_6.md5 +++ /dev/null @@ -1 +0,0 @@ -d94d4c448319ade5856fe16313cdaf90 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_6.png b/Doxygen/build/inherit_graph_6.png deleted file mode 100644 index 432d70c..0000000 Binary files a/Doxygen/build/inherit_graph_6.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_7.map b/Doxygen/build/inherit_graph_7.map deleted file mode 100644 index 1b6f392..0000000 --- a/Doxygen/build/inherit_graph_7.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_7.md5 b/Doxygen/build/inherit_graph_7.md5 deleted file mode 100644 index 68acb99..0000000 --- a/Doxygen/build/inherit_graph_7.md5 +++ /dev/null @@ -1 +0,0 @@ -6ba22a43115dfe6a9765ea4069b86b04 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_7.png b/Doxygen/build/inherit_graph_7.png deleted file mode 100644 index f6283ce..0000000 Binary files a/Doxygen/build/inherit_graph_7.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_8.map b/Doxygen/build/inherit_graph_8.map deleted file mode 100644 index 46bb199..0000000 --- a/Doxygen/build/inherit_graph_8.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_8.md5 b/Doxygen/build/inherit_graph_8.md5 deleted file mode 100644 index 1f180c8..0000000 --- a/Doxygen/build/inherit_graph_8.md5 +++ /dev/null @@ -1 +0,0 @@ -519b7766a67ae2440b4386b052cd2b9d \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_8.png b/Doxygen/build/inherit_graph_8.png deleted file mode 100644 index 1b5d9a6..0000000 Binary files a/Doxygen/build/inherit_graph_8.png and /dev/null differ diff --git a/Doxygen/build/inherit_graph_9.map b/Doxygen/build/inherit_graph_9.map deleted file mode 100644 index 640de15..0000000 --- a/Doxygen/build/inherit_graph_9.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Doxygen/build/inherit_graph_9.md5 b/Doxygen/build/inherit_graph_9.md5 deleted file mode 100644 index 8dcd915..0000000 --- a/Doxygen/build/inherit_graph_9.md5 +++ /dev/null @@ -1 +0,0 @@ -432c836055c60e0a7148cd35fe49ed41 \ No newline at end of file diff --git a/Doxygen/build/inherit_graph_9.png b/Doxygen/build/inherit_graph_9.png deleted file mode 100644 index a0707c5..0000000 Binary files a/Doxygen/build/inherit_graph_9.png and /dev/null differ diff --git a/Doxygen/build/inherits.html b/Doxygen/build/inherits.html deleted file mode 100644 index a17584d..0000000 --- a/Doxygen/build/inherits.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -Leonetienne/Eule: Class Hierarchy - - - - - - - - - - - -
-
- - - - - - -
-
Leonetienne/Eule -
-
Homemade math library, mainly targetted towards computer graphics
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
- - - - - - - - - - - - -
- - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
-
- - - - diff --git a/Doxygen/build/jquery.js b/Doxygen/build/jquery.js deleted file mode 100644 index 103c32d..0000000 --- a/Doxygen/build/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/Doxygen/build/menu.js b/Doxygen/build/menu.js deleted file mode 100644 index 433c15b..0000000 --- a/Doxygen/build/menu.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
  • '); - } else { - $('#main-menu').append('
  • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/Doxygen/build/menudata.js b/Doxygen/build/menudata.js deleted file mode 100644 index bd0ec67..0000000 --- a/Doxygen/build/menudata.js +++ /dev/null @@ -1,113 +0,0 @@ -/* -@licstart The following is the entire license notice for the -JavaScript code in this file. - -Copyright (C) 1997-2019 by Dimitri van Heesch - -This program is free software; you can redistribute it and/or modify -it under the terms of version 2 of the GNU General Public License as published by -the Free Software Foundation - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -@licend The above is the entire license notice -for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Namespaces",url:"namespaces.html",children:[ -{text:"Namespace List",url:"namespaces.html"}, -{text:"Namespace Members",url:"namespacemembers.html",children:[ -{text:"All",url:"namespacemembers.html"}, -{text:"Functions",url:"namespacemembers_func.html"}, -{text:"Typedefs",url:"namespacemembers_type.html"}]}]}, -{text:"Classes",url:"annotated.html",children:[ -{text:"Class List",url:"annotated.html"}, -{text:"Class Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"inherits.html"}, -{text:"Class Members",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"a",url:"functions.html#index_a"}, -{text:"b",url:"functions_b.html#index_b"}, -{text:"c",url:"functions_c.html#index_c"}, -{text:"d",url:"functions_d.html#index_d"}, -{text:"e",url:"functions_e.html#index_e"}, -{text:"f",url:"functions_f.html#index_f"}, -{text:"g",url:"functions_g.html#index_g"}, -{text:"h",url:"functions_h.html#index_h"}, -{text:"i",url:"functions_i.html#index_i"}, -{text:"j",url:"functions_j.html#index_j"}, -{text:"k",url:"functions_k.html#index_k"}, -{text:"l",url:"functions_l.html#index_l"}, -{text:"m",url:"functions_m.html#index_m"}, -{text:"n",url:"functions_n.html#index_n"}, -{text:"o",url:"functions_o.html#index_o"}, -{text:"p",url:"functions_p.html#index_p"}, -{text:"q",url:"functions_q.html#index_q"}, -{text:"r",url:"functions_r.html#index_r"}, -{text:"s",url:"functions_s.html#index_s"}, -{text:"t",url:"functions_t.html#index_t"}, -{text:"u",url:"functions_u.html#index_u"}, -{text:"v",url:"functions_v.html#index_v"}, -{text:"w",url:"functions_w.html#index_w"}, -{text:"x",url:"functions_x.html#index_x"}, -{text:"y",url:"functions_y.html#index_y"}, -{text:"z",url:"functions_z.html#index_z"}, -{text:"~",url:"functions_~.html#index__7E"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"c",url:"functions_func.html#index_c"}, -{text:"d",url:"functions_func.html#index_d"}, -{text:"g",url:"functions_func.html#index_g"}, -{text:"i",url:"functions_func.html#index_i"}, -{text:"l",url:"functions_func.html#index_l"}, -{text:"m",url:"functions_func.html#index_m"}, -{text:"n",url:"functions_func.html#index_n"}, -{text:"o",url:"functions_func.html#index_o"}, -{text:"q",url:"functions_func.html#index_q"}, -{text:"r",url:"functions_func.html#index_r"}, -{text:"s",url:"functions_func.html#index_s"}, -{text:"t",url:"functions_func.html#index_t"}, -{text:"u",url:"functions_func.html#index_u"}, -{text:"v",url:"functions_func.html#index_v"}, -{text:"~",url:"functions_func.html#index__7E"}]}, -{text:"Variables",url:"functions_vars.html",children:[ -{text:"a",url:"functions_vars.html#index_a"}, -{text:"b",url:"functions_vars.html#index_b"}, -{text:"c",url:"functions_vars.html#index_c"}, -{text:"d",url:"functions_vars.html#index_d"}, -{text:"e",url:"functions_vars.html#index_e"}, -{text:"f",url:"functions_vars.html#index_f"}, -{text:"g",url:"functions_vars.html#index_g"}, -{text:"h",url:"functions_vars.html#index_h"}, -{text:"i",url:"functions_vars.html#index_i"}, -{text:"j",url:"functions_vars.html#index_j"}, -{text:"k",url:"functions_vars.html#index_k"}, -{text:"l",url:"functions_vars.html#index_l"}, -{text:"m",url:"functions_vars.html#index_m"}, -{text:"n",url:"functions_vars.html#index_n"}, -{text:"o",url:"functions_vars.html#index_o"}, -{text:"p",url:"functions_vars.html#index_p"}, -{text:"r",url:"functions_vars.html#index_r"}, -{text:"s",url:"functions_vars.html#index_s"}, -{text:"t",url:"functions_vars.html#index_t"}, -{text:"u",url:"functions_vars.html#index_u"}, -{text:"v",url:"functions_vars.html#index_v"}, -{text:"w",url:"functions_vars.html#index_w"}, -{text:"x",url:"functions_vars.html#index_x"}, -{text:"y",url:"functions_vars.html#index_y"}, -{text:"z",url:"functions_vars.html#index_z"}]}, -{text:"Related Functions",url:"functions_rela.html"}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}, -{text:"File Members",url:"globals.html",children:[ -{text:"All",url:"globals.html"}, -{text:"Variables",url:"globals_vars.html"}, -{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/Doxygen/build/namespaceEule.html b/Doxygen/build/namespaceEule.html deleted file mode 100644 index 9ab075a..0000000 --- a/Doxygen/build/namespaceEule.html +++ /dev/null @@ -1,397 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule Namespace Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    Eule Namespace Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Classes

    class  Collider
     Abstract class of a collider domain. More...
     
    class  Math
     Math utility class containing basic functions. More...
     
    class  Matrix4x4
     A matrix 4x4 class representing a 3d transformation. More...
     
    class  Quaternion
     3D rotation representation More...
     
    struct  Rect
     Trivial data structure representing a rectangle. More...
     
    class  TrapazoidalPrismCollider
     A collider describing a trapazoidal prism. More...
     
    class  Vector2
     Representation of a 2d vector. More...
     
    class  Vector3
     Representation of a 3d vector. More...
     
    class  Vector4
     Representation of a 4d vector. More...
     
    - - - - - - - - - - - - - -

    -Typedefs

    typedef Vector3< double > Vector3d
     
    typedef Vector2< int > Vector2i
     
    typedef Vector2< double > Vector2d
     
    typedef Vector3< int > Vector3i
     
    typedef Vector4< int > Vector4i
     
    typedef Vector4< double > Vector4d
     
    - - - - - - - - - -

    -Functions

    std::ostream & operator<< (std::ostream &os, const Matrix4x4 &m)
     
    std::wostream & operator<< (std::wostream &os, const Matrix4x4 &m)
     
    std::ostream & operator<< (std::ostream &os, const Quaternion &q)
     
    std::wostream & operator<< (std::wostream &os, const Quaternion &q)
     
    -

    Typedef Documentation

    - -

    ◆ Vector2d

    - -
    -
    - - - - -
    typedef Vector2<double> Eule::Vector2d
    -
    - -

    Definition at line 102 of file Vector2.h.

    - -
    -
    - -

    ◆ Vector2i

    - -
    -
    - - - - -
    typedef Vector2<int> Eule::Vector2i
    -
    - -

    Definition at line 101 of file Vector2.h.

    - -
    -
    - -

    ◆ Vector3d

    - -
    -
    - - - - -
    typedef Vector3< double > Eule::Vector3d
    -
    - -

    Definition at line 9 of file Matrix4x4.h.

    - -
    -
    - -

    ◆ Vector3i

    - -
    -
    - - - - -
    typedef Vector3<int> Eule::Vector3i
    -
    - -

    Definition at line 109 of file Vector3.h.

    - -
    -
    - -

    ◆ Vector4d

    - -
    -
    - - - - -
    typedef Vector4<double> Eule::Vector4d
    -
    - -

    Definition at line 107 of file Vector4.h.

    - -
    -
    - -

    ◆ Vector4i

    - -
    -
    - - - - -
    typedef Vector4<int> Eule::Vector4i
    -
    - -

    Definition at line 106 of file Vector4.h.

    - -
    -
    -

    Function Documentation

    - -

    ◆ operator<<() [1/4]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    std::ostream& Eule::operator<< (std::ostream & os,
    const Matrix4x4m 
    )
    -
    - -

    Definition at line 620 of file Matrix4x4.cpp.

    -
    621  {
    -
    622  os << std::endl;
    -
    623 
    -
    624  for (std::size_t y = 0; y < 4; y++)
    -
    625  {
    -
    626  for (std::size_t x = 0; x < 4; x++)
    -
    627  os << " | " << m[y][x];
    -
    628 
    -
    629  os << " |" << std::endl;
    -
    630  }
    -
    631 
    -
    632  return os;
    -
    633  }
    -
    -
    -
    - -

    ◆ operator<<() [2/4]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    std::ostream& Eule::operator<< (std::ostream & os,
    const Quaternionq 
    )
    -
    - -

    Definition at line 325 of file Quaternion.cpp.

    -
    326  {
    -
    327  os << "[" << q.v << "]";
    -
    328  return os;
    -
    329  }
    -
    -
    -
    - -

    ◆ operator<<() [3/4]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    std::wostream& Eule::operator<< (std::wostream & os,
    const Matrix4x4m 
    )
    -
    - -

    Definition at line 635 of file Matrix4x4.cpp.

    -
    636  {
    -
    637  os << std::endl;
    -
    638 
    -
    639  for (std::size_t y = 0; y < 4; y++)
    -
    640  {
    -
    641  for (std::size_t x = 0; x < 4; x++)
    -
    642  os << L" | " << m[y][x];
    -
    643 
    -
    644  os << L" |" << std::endl;
    -
    645  }
    -
    646 
    -
    647  return os;
    -
    648  }
    -
    -
    -
    - -

    ◆ operator<<() [4/4]

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    std::wostream& Eule::operator<< (std::wostream & os,
    const Quaternionq 
    )
    -
    - -

    Definition at line 331 of file Quaternion.cpp.

    -
    332  {
    -
    333  os << L"[" << q.v << L"]";
    -
    334  return os;
    -
    335  }
    -
    -
    -
    -
    - - - - diff --git a/Doxygen/build/namespacemembers.html b/Doxygen/build/namespacemembers.html deleted file mode 100644 index 4400f6c..0000000 --- a/Doxygen/build/namespacemembers.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -Leonetienne/Eule: Namespace Members - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all namespace members with links to the namespace documentation for each member:
      -
    • operator<<() -: Eule -
    • -
    • Vector2d -: Eule -
    • -
    • Vector2i -: Eule -
    • -
    • Vector3d -: Eule -
    • -
    • Vector3i -: Eule -
    • -
    • Vector4d -: Eule -
    • -
    • Vector4i -: Eule -
    • -
    -
    - - - - diff --git a/Doxygen/build/namespacemembers_func.html b/Doxygen/build/namespacemembers_func.html deleted file mode 100644 index 1ec034b..0000000 --- a/Doxygen/build/namespacemembers_func.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -Leonetienne/Eule: Namespace Members - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
      -
    • operator<<() -: Eule -
    • -
    -
    - - - - diff --git a/Doxygen/build/namespacemembers_type.html b/Doxygen/build/namespacemembers_type.html deleted file mode 100644 index df09243..0000000 --- a/Doxygen/build/namespacemembers_type.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -Leonetienne/Eule: Namespace Members - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
      -
    • Vector2d -: Eule -
    • -
    • Vector2i -: Eule -
    • -
    • Vector3d -: Eule -
    • -
    • Vector3i -: Eule -
    • -
    • Vector4d -: Eule -
    • -
    • Vector4i -: Eule -
    • -
    -
    - - - - diff --git a/Doxygen/build/namespaces.html b/Doxygen/build/namespaces.html deleted file mode 100644 index 370b6a3..0000000 --- a/Doxygen/build/namespaces.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -Leonetienne/Eule: Namespace List - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    Namespace List
    -
    -
    -
    Here is a list of all namespaces with brief descriptions:
    - - -
     NEule
    -
    -
    - - - - diff --git a/Doxygen/build/nav_f.png b/Doxygen/build/nav_f.png deleted file mode 100644 index 72a58a5..0000000 Binary files a/Doxygen/build/nav_f.png and /dev/null differ diff --git a/Doxygen/build/nav_g.png b/Doxygen/build/nav_g.png deleted file mode 100644 index 2093a23..0000000 Binary files a/Doxygen/build/nav_g.png and /dev/null differ diff --git a/Doxygen/build/nav_h.png b/Doxygen/build/nav_h.png deleted file mode 100644 index 33389b1..0000000 Binary files a/Doxygen/build/nav_h.png and /dev/null differ diff --git a/Doxygen/build/open.png b/Doxygen/build/open.png deleted file mode 100644 index 30f75c7..0000000 Binary files a/Doxygen/build/open.png and /dev/null differ diff --git a/Doxygen/build/search/all_0.html b/Doxygen/build/search/all_0.html deleted file mode 100644 index 26dd244..0000000 --- a/Doxygen/build/search/all_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_0.js b/Doxygen/build/search/all_0.js deleted file mode 100644 index f6e1bc9..0000000 --- a/Doxygen/build/search/all_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['a_0',['a',['../classEule_1_1Matrix4x4.html#ab3ff5bc09a2598faa76188d0cc31addb',1,'Eule::Matrix4x4']]], - ['abs_1',['Abs',['../classEule_1_1Math.html#ab9ccf4aa730ef825faf224445c86ab25',1,'Eule::Math']]], - ['adjoint_2',['Adjoint',['../classEule_1_1Matrix4x4.html#a1c664d93fbd68ec9f8c762263fc45a97',1,'Eule::Matrix4x4']]], - ['anglebetween_3',['AngleBetween',['../classEule_1_1Quaternion.html#a2c7d0c3521f0e6127ca4b5d5bdbf8329',1,'Eule::Quaternion']]] -]; diff --git a/Doxygen/build/search/all_1.html b/Doxygen/build/search/all_1.html deleted file mode 100644 index 8eb215b..0000000 --- a/Doxygen/build/search/all_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_1.js b/Doxygen/build/search/all_1.js deleted file mode 100644 index da0e8db..0000000 --- a/Doxygen/build/search/all_1.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['b_4',['b',['../classEule_1_1Matrix4x4.html#a2258f9cce9558711c59ffcf140a39756',1,'Eule::Matrix4x4']]], - ['back_5',['BACK',['../classEule_1_1TrapazoidalPrismCollider.html#a756f4bcb931dd6381901362e51410da9',1,'Eule::TrapazoidalPrismCollider']]], - ['backward_6',['backward',['../classEule_1_1Vector3.html#a34083239eb29eaf4614d09d4d7014b06',1,'Eule::Vector3::backward()'],['../classEule_1_1Vector4.html#a59d02244dbcd06b9d3f09da75128242e',1,'Eule::Vector4::backward()']]], - ['bottom_7',['BOTTOM',['../classEule_1_1TrapazoidalPrismCollider.html#a7f7594171358bbc10680e2dc42f1b53d',1,'Eule::TrapazoidalPrismCollider']]] -]; diff --git a/Doxygen/build/search/all_10.html b/Doxygen/build/search/all_10.html deleted file mode 100644 index 6fd3a4a..0000000 --- a/Doxygen/build/search/all_10.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_10.js b/Doxygen/build/search/all_10.js deleted file mode 100644 index 1719522..0000000 --- a/Doxygen/build/search/all_10.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['quaternion_88',['Quaternion',['../classEule_1_1Quaternion.html',1,'Eule::Quaternion'],['../classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d',1,'Eule::Quaternion::Quaternion()'],['../classEule_1_1Quaternion.html#a2dc0ed0c7773600cf443151573287e4a',1,'Eule::Quaternion::Quaternion(const Vector4d values)'],['../classEule_1_1Quaternion.html#ab3b8862f9fd86c7ebb426b4940d08b39',1,'Eule::Quaternion::Quaternion(const Quaternion &q)'],['../classEule_1_1Quaternion.html#a1e4c6f8984bb7a9ae1ffed45adffe02f',1,'Eule::Quaternion::Quaternion(const Vector3d eulerAngles)']]], - ['quaternion_2ecpp_89',['Quaternion.cpp',['../Quaternion_8cpp.html',1,'']]], - ['quaternion_2eh_90',['Quaternion.h',['../Quaternion_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/all_11.html b/Doxygen/build/search/all_11.html deleted file mode 100644 index f78343b..0000000 --- a/Doxygen/build/search/all_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_11.js b/Doxygen/build/search/all_11.js deleted file mode 100644 index 18863ae..0000000 --- a/Doxygen/build/search/all_11.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['rad2deg_91',['Rad2Deg',['../Constants_8h.html#afa51234d581318384aacb84a195c3a2b',1,'Constants.h']]], - ['random_92',['Random',['../classEule_1_1Math.html#a6aa6d6c804f995a089779219e5136e4f',1,'Eule::Math']]], - ['randomchance_93',['RandomChance',['../classEule_1_1Math.html#a60bffec38a861b7701fc90bd6f1a11d6',1,'Eule::Math']]], - ['randomint_94',['RandomInt',['../classEule_1_1Math.html#ab8d66e39e794d89594c50690ccc92c60',1,'Eule::Math']]], - ['randomintrange_95',['RandomIntRange',['../classEule_1_1Math.html#adfc55be8cb68aba351374f045f29a2ad',1,'Eule::Math']]], - ['randomrange_96',['RandomRange',['../classEule_1_1Math.html#a48ca8451f9803ce35d2a35cfb83d8ae9',1,'Eule::Math']]], - ['randomuint_97',['RandomUint',['../classEule_1_1Math.html#ad38d9a50e08cd02bb35161cc3bd77b26',1,'Eule::Math']]], - ['rect_98',['Rect',['../structEule_1_1Rect.html',1,'Eule']]], - ['rect_2eh_99',['Rect.h',['../Rect_8h.html',1,'']]], - ['right_100',['right',['../classEule_1_1Vector2.html#a594b062e78cb2e92dbb533a435258f49',1,'Eule::Vector2::right()'],['../classEule_1_1Vector3.html#a1febd6152b8964147229242630b8c8f0',1,'Eule::Vector3::right()'],['../classEule_1_1Vector4.html#a4701bae8f20522fe93575e8909478f36',1,'Eule::Vector4::right()'],['../classEule_1_1TrapazoidalPrismCollider.html#a67a468becb53ca0d50e8da3daab98b85',1,'Eule::TrapazoidalPrismCollider::RIGHT()']]], - ['rotatevector_101',['RotateVector',['../classEule_1_1Quaternion.html#aaeb89218e886e605c6e2a87c9cb773a4',1,'Eule::Quaternion']]] -]; diff --git a/Doxygen/build/search/all_12.html b/Doxygen/build/search/all_12.html deleted file mode 100644 index dd9ff1d..0000000 --- a/Doxygen/build/search/all_12.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_12.js b/Doxygen/build/search/all_12.js deleted file mode 100644 index a7b87bc..0000000 --- a/Doxygen/build/search/all_12.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['setrawvalues_102',['SetRawValues',['../classEule_1_1Quaternion.html#a7046064a89615e16760f17f41b60a31d',1,'Eule::Quaternion']]], - ['settranslationcomponent_103',['SetTranslationComponent',['../classEule_1_1Matrix4x4.html#a6e4fd75a1f47f42f922ef4355d448411',1,'Eule::Matrix4x4']]], - ['setvertex_104',['SetVertex',['../classEule_1_1TrapazoidalPrismCollider.html#a5acc127ec848dceead5ad017f36696aa',1,'Eule::TrapazoidalPrismCollider']]], - ['similar_105',['Similar',['../classEule_1_1Math.html#a4c9a4bc679357551b4a6315497f80f6f',1,'Eule::Math::Similar()'],['../classEule_1_1Matrix4x4.html#ab8340e0e909a6cbb1a32439f2ca2c092',1,'Eule::Matrix4x4::Similar()'],['../classEule_1_1Vector2.html#a69fc37a6e885b64426d5846be33c7366',1,'Eule::Vector2::Similar()'],['../classEule_1_1Vector3.html#a9613bb7d4981c921b8310d5eedf59b07',1,'Eule::Vector3::Similar()'],['../classEule_1_1Vector4.html#af49ea98d369420a07158d705eab60479',1,'Eule::Vector4::Similar()']]], - ['size_106',['size',['../structEule_1_1Rect.html#a330821ad2e2fbffe4575783619923f8d',1,'Eule::Rect']]], - ['sqrmagnitude_107',['SqrMagnitude',['../classEule_1_1Vector2.html#ad8c2b3e86fc91a641a0817047a63170f',1,'Eule::Vector2::SqrMagnitude()'],['../classEule_1_1Vector3.html#ad2f078dd733634a321157d23979a4162',1,'Eule::Vector3::SqrMagnitude()'],['../classEule_1_1Vector4.html#a2cd0433c99303b8934993b2fd2aa1c6e',1,'Eule::Vector4::SqrMagnitude()']]] -]; diff --git a/Doxygen/build/search/all_13.html b/Doxygen/build/search/all_13.html deleted file mode 100644 index 2611a10..0000000 --- a/Doxygen/build/search/all_13.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_13.js b/Doxygen/build/search/all_13.js deleted file mode 100644 index 2b90eff..0000000 --- a/Doxygen/build/search/all_13.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['todouble_108',['ToDouble',['../classEule_1_1Vector2.html#a2f7e2f5eb22ab04166cbaa0aca6dfb20',1,'Eule::Vector2::ToDouble()'],['../classEule_1_1Vector3.html#a04560b5fa992b7fa455fc4d406928df8',1,'Eule::Vector3::ToDouble()'],['../classEule_1_1Vector4.html#a267ad7bfad5ea8f6f8c001cee817c54e',1,'Eule::Vector4::ToDouble()']]], - ['toeulerangles_109',['ToEulerAngles',['../classEule_1_1Quaternion.html#a5a6349cb3e0a0c73df527e9ba907b0da',1,'Eule::Quaternion']]], - ['toint_110',['ToInt',['../classEule_1_1Vector2.html#a078a567a49b6d02fb8dce79885b4c2e9',1,'Eule::Vector2::ToInt()'],['../classEule_1_1Vector3.html#a0510707e23eb81c4a799dffc7b0ce127',1,'Eule::Vector3::ToInt()'],['../classEule_1_1Vector4.html#a53244995fd4f19de4e740b47aec029a3',1,'Eule::Vector4::ToInt()']]], - ['top_111',['TOP',['../classEule_1_1TrapazoidalPrismCollider.html#a09b3433cb41848fd166fc9c7614aff7e',1,'Eule::TrapazoidalPrismCollider']]], - ['torotationmatrix_112',['ToRotationMatrix',['../classEule_1_1Quaternion.html#aedb36036ee6a39fb97c5d2ba12b5d986',1,'Eule::Quaternion']]], - ['transpose3x3_113',['Transpose3x3',['../classEule_1_1Matrix4x4.html#a410b88abff7991d9faa3f818efd6807d',1,'Eule::Matrix4x4']]], - ['transpose4x4_114',['Transpose4x4',['../classEule_1_1Matrix4x4.html#af454812ef8205562e14ee094ce7172b1',1,'Eule::Matrix4x4']]], - ['trapazoidalprismcollider_115',['TrapazoidalPrismCollider',['../classEule_1_1TrapazoidalPrismCollider.html',1,'Eule::TrapazoidalPrismCollider'],['../classEule_1_1TrapazoidalPrismCollider.html#a787c22d1c84b74dd078a2d3d6d76ee34',1,'Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider()'],['../classEule_1_1TrapazoidalPrismCollider.html#acc761aadc1b6421db75eea36d5d722d1',1,'Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider(const TrapazoidalPrismCollider &other)=default'],['../classEule_1_1TrapazoidalPrismCollider.html#aad0faabb1b27478320da6d2fa44f034b',1,'Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider(TrapazoidalPrismCollider &&other) noexcept=default']]], - ['trapazoidalprismcollider_2ecpp_116',['TrapazoidalPrismCollider.cpp',['../TrapazoidalPrismCollider_8cpp.html',1,'']]], - ['trapazoidalprismcollider_2eh_117',['TrapazoidalPrismCollider.h',['../TrapazoidalPrismCollider_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/all_14.html b/Doxygen/build/search/all_14.html deleted file mode 100644 index 72d12e9..0000000 --- a/Doxygen/build/search/all_14.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_14.js b/Doxygen/build/search/all_14.js deleted file mode 100644 index e03ec2d..0000000 --- a/Doxygen/build/search/all_14.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['unitquaternion_118',['UnitQuaternion',['../classEule_1_1Quaternion.html#affb1a8ac42e356ee5efb304ca8df38ca',1,'Eule::Quaternion']]], - ['up_119',['up',['../classEule_1_1Vector2.html#a010bbbc9de53adcc00ffe1565c3a8208',1,'Eule::Vector2::up()'],['../classEule_1_1Vector3.html#a7508f8b060773b00cd40df94d628d7b6',1,'Eule::Vector3::up()'],['../classEule_1_1Vector4.html#a9a8c5882154587b3e34ae308466f98a5',1,'Eule::Vector4::up()']]] -]; diff --git a/Doxygen/build/search/all_15.html b/Doxygen/build/search/all_15.html deleted file mode 100644 index 767aec3..0000000 --- a/Doxygen/build/search/all_15.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_15.js b/Doxygen/build/search/all_15.js deleted file mode 100644 index db232b8..0000000 --- a/Doxygen/build/search/all_15.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['v_120',['v',['../classEule_1_1Matrix4x4.html#a6cf89fe3ccd64d362a1d4c6ea77ff660',1,'Eule::Matrix4x4']]], - ['vector2_121',['Vector2',['../classEule_1_1Vector2.html',1,'Eule::Vector2< T >'],['../classEule_1_1Vector2.html#a99b4d19728ca8577413ccba9cecc5948',1,'Eule::Vector2::Vector2()'],['../classEule_1_1Vector2.html#ad106a7fa36501663af6959f17b317c9f',1,'Eule::Vector2::Vector2(T _x, T _y)'],['../classEule_1_1Vector2.html#af5b98f03dae0721f155eee4ef2babc8d',1,'Eule::Vector2::Vector2(const Vector2< T > &other)=default'],['../classEule_1_1Vector2.html#a3a37db279577d277c890abe282951cb4',1,'Eule::Vector2::Vector2(Vector2< T > &&other) noexcept=default']]], - ['vector2_2ecpp_122',['Vector2.cpp',['../Vector2_8cpp.html',1,'']]], - ['vector2_2eh_123',['Vector2.h',['../Vector2_8h.html',1,'']]], - ['vector2_3c_20double_20_3e_124',['Vector2< double >',['../classEule_1_1Vector2.html',1,'Eule']]], - ['vector2d_125',['Vector2d',['../namespaceEule.html#ad2b14d99a3b97a954d09be46e86fa554',1,'Eule']]], - ['vector2i_126',['Vector2i',['../namespaceEule.html#a4b8529f841686a41ce0423f3610f0779',1,'Eule']]], - ['vector3_127',['Vector3',['../classEule_1_1Vector3.html',1,'Eule::Vector3< T >'],['../classEule_1_1Vector3.html#abba435897a7050d8c111d703c5bb3eb8',1,'Eule::Vector3::Vector3()'],['../classEule_1_1Vector3.html#ab43c649b5f80f80660ce83a28697f1e9',1,'Eule::Vector3::Vector3(T _x, T _y, T _z)'],['../classEule_1_1Vector3.html#ac485bad4d2a077e0ab2a2bc68e223740',1,'Eule::Vector3::Vector3(const Vector3< T > &other)=default'],['../classEule_1_1Vector3.html#a9c6dc41aad5e44f30baad3c3864148b8',1,'Eule::Vector3::Vector3(Vector3< T > &&other) noexcept=default']]], - ['vector3_2ecpp_128',['Vector3.cpp',['../Vector3_8cpp.html',1,'']]], - ['vector3_2eh_129',['Vector3.h',['../Vector3_8h.html',1,'']]], - ['vector3_3c_20double_20_3e_130',['Vector3< double >',['../classEule_1_1Vector3.html',1,'Eule']]], - ['vector3d_131',['Vector3d',['../namespaceEule.html#afc45246550a85134cf500caa2b81061a',1,'Eule']]], - ['vector3i_132',['Vector3i',['../namespaceEule.html#a2ee0ef456d32068e4f9b8355ca47acd7',1,'Eule']]], - ['vector4_133',['Vector4',['../classEule_1_1Vector4.html',1,'Eule::Vector4< T >'],['../classEule_1_1Vector4.html#ad49c5d39b5478aefea2acfe65bd59393',1,'Eule::Vector4::Vector4()'],['../classEule_1_1Vector4.html#aaa8aa9abea8ad8dde3aaa2de27ac2391',1,'Eule::Vector4::Vector4(T _x, T _y, T _z, T _w)'],['../classEule_1_1Vector4.html#aa47cf18eb55ec51c7dd0a95794d7230d',1,'Eule::Vector4::Vector4(const Vector4< T > &other)=default'],['../classEule_1_1Vector4.html#a9c9e20e38663621063f2437965fac438',1,'Eule::Vector4::Vector4(Vector4< T > &&other) noexcept=default']]], - ['vector4_2ecpp_134',['Vector4.cpp',['../Vector4_8cpp.html',1,'']]], - ['vector4_2eh_135',['Vector4.h',['../Vector4_8h.html',1,'']]], - ['vector4_3c_20double_20_3e_136',['Vector4< double >',['../classEule_1_1Vector4.html',1,'Eule']]], - ['vector4d_137',['Vector4d',['../namespaceEule.html#ab1f7f26891b56b960ca6cca5cc1cc44e',1,'Eule']]], - ['vector4i_138',['Vector4i',['../namespaceEule.html#aea48fbceb33833fc808355c9eec721bb',1,'Eule']]], - ['vectorscale_139',['VectorScale',['../classEule_1_1Vector2.html#a5c7eb6afd348c8409f856d398593713e',1,'Eule::Vector2::VectorScale()'],['../classEule_1_1Vector3.html#afbfdd011a51ae697bdf0d297f2f6aa95',1,'Eule::Vector3::VectorScale()'],['../classEule_1_1Vector4.html#ae24537cb41abb4365a22fe3b07869b85',1,'Eule::Vector4::VectorScale()']]], - ['version_2eh_140',['version.h',['../version_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/all_16.html b/Doxygen/build/search/all_16.html deleted file mode 100644 index 7bd7afe..0000000 --- a/Doxygen/build/search/all_16.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_16.js b/Doxygen/build/search/all_16.js deleted file mode 100644 index f6d9c32..0000000 --- a/Doxygen/build/search/all_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['w_141',['w',['../classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e',1,'Eule::Vector4']]] -]; diff --git a/Doxygen/build/search/all_17.html b/Doxygen/build/search/all_17.html deleted file mode 100644 index 35702ec..0000000 --- a/Doxygen/build/search/all_17.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_17.js b/Doxygen/build/search/all_17.js deleted file mode 100644 index 848013c..0000000 --- a/Doxygen/build/search/all_17.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['x_142',['x',['../classEule_1_1Vector2.html#acca020e7957a9b7b2682f2df496bcdb7',1,'Eule::Vector2::x()'],['../classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b',1,'Eule::Vector3::x()'],['../classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf',1,'Eule::Vector4::x()']]] -]; diff --git a/Doxygen/build/search/all_18.html b/Doxygen/build/search/all_18.html deleted file mode 100644 index 540cdb6..0000000 --- a/Doxygen/build/search/all_18.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_18.js b/Doxygen/build/search/all_18.js deleted file mode 100644 index 109234d..0000000 --- a/Doxygen/build/search/all_18.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['y_143',['y',['../classEule_1_1Vector2.html#a077434c60e04b051347a43ce26fbdbc9',1,'Eule::Vector2::y()'],['../classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146',1,'Eule::Vector3::y()'],['../classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9',1,'Eule::Vector4::y()']]] -]; diff --git a/Doxygen/build/search/all_19.html b/Doxygen/build/search/all_19.html deleted file mode 100644 index 14e13e7..0000000 --- a/Doxygen/build/search/all_19.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_19.js b/Doxygen/build/search/all_19.js deleted file mode 100644 index f5893b5..0000000 --- a/Doxygen/build/search/all_19.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['z_144',['z',['../classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674',1,'Eule::Vector3::z()'],['../classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0',1,'Eule::Vector4::z()']]], - ['zero_145',['zero',['../classEule_1_1Vector2.html#a44cd63661b38477ebd67c9eb20369e7c',1,'Eule::Vector2::zero()'],['../classEule_1_1Vector3.html#a1f0b4bb9f5533e3a134310d702bbfb33',1,'Eule::Vector3::zero()'],['../classEule_1_1Vector4.html#adf801d37181ff33a920f31536337ca07',1,'Eule::Vector4::zero()']]] -]; diff --git a/Doxygen/build/search/all_1a.html b/Doxygen/build/search/all_1a.html deleted file mode 100644 index 233281a..0000000 --- a/Doxygen/build/search/all_1a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_1a.js b/Doxygen/build/search/all_1a.js deleted file mode 100644 index 9958fe7..0000000 --- a/Doxygen/build/search/all_1a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['_7equaternion_146',['~Quaternion',['../classEule_1_1Quaternion.html#a5f834c2ca469cd71edc8a23fdc3f56e8',1,'Eule::Quaternion']]] -]; diff --git a/Doxygen/build/search/all_2.html b/Doxygen/build/search/all_2.html deleted file mode 100644 index b26d916..0000000 --- a/Doxygen/build/search/all_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_2.js b/Doxygen/build/search/all_2.js deleted file mode 100644 index 9ef97b0..0000000 --- a/Doxygen/build/search/all_2.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['c_8',['c',['../classEule_1_1Matrix4x4.html#a68920de2728741859aa7cb3d245aa2c3',1,'Eule::Matrix4x4']]], - ['clamp_9',['Clamp',['../classEule_1_1Math.html#a73947ee95912f0a06359fc5004bfc840',1,'Eule::Math']]], - ['collider_10',['Collider',['../classEule_1_1Collider.html',1,'Eule']]], - ['collider_2ecpp_11',['Collider.cpp',['../Collider_8cpp.html',1,'']]], - ['collider_2eh_12',['Collider.h',['../Collider_8h.html',1,'']]], - ['conjugate_13',['Conjugate',['../classEule_1_1Quaternion.html#aa5333ab28dbe4d5ae15ab5dbc36b90ca',1,'Eule::Quaternion']]], - ['constants_2eh_14',['Constants.h',['../Constants_8h.html',1,'']]], - ['contains_15',['Contains',['../classEule_1_1Collider.html#a19a1220bf41df1d8c720296bfe91f5fb',1,'Eule::Collider::Contains()'],['../classEule_1_1TrapazoidalPrismCollider.html#abc4865f44bef057bbbb39385eae9e2dc',1,'Eule::TrapazoidalPrismCollider::Contains()']]], - ['crossproduct_16',['CrossProduct',['../classEule_1_1Vector2.html#a308df926fccbf4a5321a821d92924dfb',1,'Eule::Vector2::CrossProduct()'],['../classEule_1_1Vector3.html#abd62a5f6b0f380491cf80d70ed2e5317',1,'Eule::Vector3::CrossProduct()']]] -]; diff --git a/Doxygen/build/search/all_3.html b/Doxygen/build/search/all_3.html deleted file mode 100644 index b61b96f..0000000 --- a/Doxygen/build/search/all_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_3.js b/Doxygen/build/search/all_3.js deleted file mode 100644 index 145de13..0000000 --- a/Doxygen/build/search/all_3.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['d_17',['d',['../classEule_1_1Matrix4x4.html#a7f21115e0597a25fbdb4d9784de0c988',1,'Eule::Matrix4x4']]], - ['deg2rad_18',['Deg2Rad',['../Constants_8h.html#a0688d82670a3ba9d40853859003c64df',1,'Constants.h']]], - ['determinant_19',['Determinant',['../classEule_1_1Matrix4x4.html#a8a7c7d927d012aaa3abbbc210444b4c0',1,'Eule::Matrix4x4']]], - ['dotproduct_20',['DotProduct',['../classEule_1_1Vector2.html#a5ed3a9b01d550a9b745b885fdb03d68c',1,'Eule::Vector2::DotProduct()'],['../classEule_1_1Vector3.html#a6cbc1516e045c0334f8bf8a1dcd6ca91',1,'Eule::Vector3::DotProduct()']]], - ['down_21',['down',['../classEule_1_1Vector2.html#a7e60489f914c01c98839333dd41d8a49',1,'Eule::Vector2::down()'],['../classEule_1_1Vector3.html#ac44e82051be457c78f6428859482f848',1,'Eule::Vector3::down()'],['../classEule_1_1Vector4.html#a0f00c430129cb8edfb9c96693c39ab73',1,'Eule::Vector4::down()']]], - ['droptranslationcomponents_22',['DropTranslationComponents',['../classEule_1_1Matrix4x4.html#a42eaf01fbe7f1f57d6fb5bf7111d3338',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/all_4.html b/Doxygen/build/search/all_4.html deleted file mode 100644 index 06de155..0000000 --- a/Doxygen/build/search/all_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_4.js b/Doxygen/build/search/all_4.js deleted file mode 100644 index 96883f9..0000000 --- a/Doxygen/build/search/all_4.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['e_23',['e',['../classEule_1_1Matrix4x4.html#a19fb1d47aea5672da2fe1fc20500615a',1,'Eule::Matrix4x4']]], - ['eule_24',['Eule',['../namespaceEule.html',1,'']]], - ['eule_2evcxproj_2efilelistabsolute_2etxt_25',['Eule.vcxproj.FileListAbsolute.txt',['../Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html',1,'(Global Namespace)'],['../x64_2Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html',1,'(Global Namespace)'],['../x64_2Release_2Eule_8vcxproj_8FileListAbsolute_8txt.html',1,'(Global Namespace)']]] -]; diff --git a/Doxygen/build/search/all_5.html b/Doxygen/build/search/all_5.html deleted file mode 100644 index 2544c4e..0000000 --- a/Doxygen/build/search/all_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_5.js b/Doxygen/build/search/all_5.js deleted file mode 100644 index 353ae65..0000000 --- a/Doxygen/build/search/all_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['f_26',['f',['../classEule_1_1Matrix4x4.html#a47b0d5273289c602f1ab4d3b963fe267',1,'Eule::Matrix4x4']]], - ['forward_27',['forward',['../classEule_1_1Vector3.html#a791d893f68f2aee85287ab3ab7612ff0',1,'Eule::Vector3::forward()'],['../classEule_1_1Vector4.html#a9ec10cf10c0edb934169211ad7fef821',1,'Eule::Vector4::forward()']]], - ['front_28',['FRONT',['../classEule_1_1TrapazoidalPrismCollider.html#ad8648ff086e60e5cae763c14b72cd8fd',1,'Eule::TrapazoidalPrismCollider']]], - ['future_29',['future',['../classEule_1_1Vector4.html#afefa0db0ba202f63e338506fd21a61e9',1,'Eule::Vector4']]] -]; diff --git a/Doxygen/build/search/all_6.html b/Doxygen/build/search/all_6.html deleted file mode 100644 index 43f14ea..0000000 --- a/Doxygen/build/search/all_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_6.js b/Doxygen/build/search/all_6.js deleted file mode 100644 index 77cd9f4..0000000 --- a/Doxygen/build/search/all_6.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['g_30',['g',['../classEule_1_1Matrix4x4.html#a1519f79fbfd4f33a0718ffc030fb6706',1,'Eule::Matrix4x4']]], - ['getcofactors_31',['GetCofactors',['../classEule_1_1Matrix4x4.html#aefc37ab31604f888e393a1de62927d55',1,'Eule::Matrix4x4']]], - ['getrawvalues_32',['GetRawValues',['../classEule_1_1Quaternion.html#aaa193aa23729338a64bbd16eacab56ec',1,'Eule::Quaternion']]], - ['gettranslationcomponent_33',['GetTranslationComponent',['../classEule_1_1Matrix4x4.html#a19cc83344e288c09f7200d8410277b28',1,'Eule::Matrix4x4']]], - ['getvertex_34',['GetVertex',['../classEule_1_1TrapazoidalPrismCollider.html#a4b49f6749d39571121621dd45b32bac3',1,'Eule::TrapazoidalPrismCollider']]] -]; diff --git a/Doxygen/build/search/all_7.html b/Doxygen/build/search/all_7.html deleted file mode 100644 index af52f82..0000000 --- a/Doxygen/build/search/all_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_7.js b/Doxygen/build/search/all_7.js deleted file mode 100644 index ef4b9f5..0000000 --- a/Doxygen/build/search/all_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['h_35',['h',['../classEule_1_1Matrix4x4.html#ac48433ef3faa767919938e56803bfc41',1,'Eule::Matrix4x4']]], - ['half_5fpi_36',['HALF_PI',['../Constants_8h.html#ad0661cafa18be7ccadefb27b6b809264',1,'Constants.h']]] -]; diff --git a/Doxygen/build/search/all_8.html b/Doxygen/build/search/all_8.html deleted file mode 100644 index cf2b5df..0000000 --- a/Doxygen/build/search/all_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_8.js b/Doxygen/build/search/all_8.js deleted file mode 100644 index 3e59f07..0000000 --- a/Doxygen/build/search/all_8.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['i_37',['i',['../classEule_1_1Matrix4x4.html#afb1b52d2d395e1d4a099556fac3918dc',1,'Eule::Matrix4x4']]], - ['inverse_38',['Inverse',['../classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576',1,'Eule::Quaternion']]], - ['inverse3x3_39',['Inverse3x3',['../classEule_1_1Matrix4x4.html#acfd6d8677484cb6ed246efe5c39b9119',1,'Eule::Matrix4x4']]], - ['inverse4x4_40',['Inverse4x4',['../classEule_1_1Matrix4x4.html#ab635c2bbd0d91ad35369efd4dc5dac29',1,'Eule::Matrix4x4']]], - ['isinversible3x3_41',['IsInversible3x3',['../classEule_1_1Matrix4x4.html#ab52b7e10a4e7ecbdb347fd82eb9ecd22',1,'Eule::Matrix4x4']]], - ['isinversible4x4_42',['IsInversible4x4',['../classEule_1_1Matrix4x4.html#a24a2113d49c0a86c48755b8ad11e22c0',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/all_9.html b/Doxygen/build/search/all_9.html deleted file mode 100644 index 690785a..0000000 --- a/Doxygen/build/search/all_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_9.js b/Doxygen/build/search/all_9.js deleted file mode 100644 index 227d400..0000000 --- a/Doxygen/build/search/all_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['j_43',['j',['../classEule_1_1Matrix4x4.html#a6ad97bdfe3f070fd4d1d0ebc2ee1309a',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/all_a.html b/Doxygen/build/search/all_a.html deleted file mode 100644 index f2f3d3a..0000000 --- a/Doxygen/build/search/all_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_a.js b/Doxygen/build/search/all_a.js deleted file mode 100644 index e47277f..0000000 --- a/Doxygen/build/search/all_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['k_44',['k',['../classEule_1_1Matrix4x4.html#af93a84acffc7d5282653b7b591633874',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/all_b.html b/Doxygen/build/search/all_b.html deleted file mode 100644 index 14f3403..0000000 --- a/Doxygen/build/search/all_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_b.js b/Doxygen/build/search/all_b.js deleted file mode 100644 index fadfc60..0000000 --- a/Doxygen/build/search/all_b.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['l_45',['l',['../classEule_1_1Matrix4x4.html#a9a18b42500a1f9c551c7f27039cb6a67',1,'Eule::Matrix4x4']]], - ['left_46',['left',['../classEule_1_1Vector2.html#a4ad2191854a9fdbc8dae0967b3a48be5',1,'Eule::Vector2::left()'],['../classEule_1_1Vector3.html#a37949a2f74ceb05ea1797be34c42989a',1,'Eule::Vector3::left()'],['../classEule_1_1Vector4.html#a354e05fd3b3a38b530258b3247c544d1',1,'Eule::Vector4::left()'],['../classEule_1_1TrapazoidalPrismCollider.html#a2d1fb0b58a8562c1869a8dbef330c22b',1,'Eule::TrapazoidalPrismCollider::LEFT()']]], - ['lerp_47',['Lerp',['../classEule_1_1Math.html#a991f62401991014de20aca0fda9f9ef7',1,'Eule::Math::Lerp()'],['../classEule_1_1Quaternion.html#a2c386181050f7745341a00f79e496e08',1,'Eule::Quaternion::Lerp()'],['../classEule_1_1Vector2.html#a8bb45fd8415f24c58a59739d67f86038',1,'Eule::Vector2::Lerp()'],['../classEule_1_1Vector3.html#add2f96155edb1159b53725932d951f1f',1,'Eule::Vector3::Lerp()'],['../classEule_1_1Vector4.html#ae5b7ed7132d76ffbde20f24330fd4f69',1,'Eule::Vector4::Lerp()']]], - ['lerpself_48',['LerpSelf',['../classEule_1_1Vector2.html#a85ad9f5dca4f60c679be5edd86942774',1,'Eule::Vector2::LerpSelf()'],['../classEule_1_1Vector3.html#a8fb48e9a527d5e6fadb3b3102fa8f4c3',1,'Eule::Vector3::LerpSelf()'],['../classEule_1_1Vector4.html#ab4efb629829cfebcbb82b4318c3e3bb3',1,'Eule::Vector4::LerpSelf()']]] -]; diff --git a/Doxygen/build/search/all_c.html b/Doxygen/build/search/all_c.html deleted file mode 100644 index da60ab8..0000000 --- a/Doxygen/build/search/all_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_c.js b/Doxygen/build/search/all_c.js deleted file mode 100644 index b82369c..0000000 --- a/Doxygen/build/search/all_c.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['m_49',['m',['../classEule_1_1Matrix4x4.html#a337d6bb2a36f36cd4620cdd35555893d',1,'Eule::Matrix4x4']]], - ['magnitude_50',['Magnitude',['../classEule_1_1Vector2.html#a85551e0734a2f3143c4ecdbaf4a3ea46',1,'Eule::Vector2::Magnitude()'],['../classEule_1_1Vector3.html#a96e6e436600d1420250ef2868854988d',1,'Eule::Vector3::Magnitude()'],['../classEule_1_1Vector4.html#a35c6fccb7a02095b595575903b590dd2',1,'Eule::Vector4::Magnitude()']]], - ['make_5fsure_5frng_5fis_5finitialized_51',['MAKE_SURE_RNG_IS_INITIALIZED',['../Math_8cpp.html#ac0cae806d3e9a3772f7388dd53cfc370',1,'Math.cpp']]], - ['math_52',['Math',['../classEule_1_1Math.html',1,'Eule']]], - ['math_2ecpp_53',['Math.cpp',['../Math_8cpp.html',1,'']]], - ['math_2eh_54',['Math.h',['../Math_8h.html',1,'']]], - ['matrix4x4_55',['Matrix4x4',['../classEule_1_1Matrix4x4.html',1,'Eule::Matrix4x4'],['../classEule_1_1Matrix4x4.html#a714a467ba7f85f88ebe3897b5e3580be',1,'Eule::Matrix4x4::Matrix4x4()'],['../classEule_1_1Matrix4x4.html#a4a71d8fc881ddb7d51577e0a762ac186',1,'Eule::Matrix4x4::Matrix4x4(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a44f2af9bfad01c2d065985c1dfda8d08',1,'Eule::Matrix4x4::Matrix4x4(Matrix4x4 &&other) noexcept']]], - ['matrix4x4_2ecpp_56',['Matrix4x4.cpp',['../Matrix4x4_8cpp.html',1,'']]], - ['matrix4x4_2eh_57',['Matrix4x4.h',['../Matrix4x4_8h.html',1,'']]], - ['max_58',['Max',['../classEule_1_1Math.html#a991c620839f5fa9fcfe7e503b8ab0008',1,'Eule::Math']]], - ['min_59',['Min',['../classEule_1_1Math.html#aa4d3c52cb09984ec567a9961ff7e3f02',1,'Eule::Math']]], - ['mod_60',['Mod',['../classEule_1_1Math.html#a9d17091e986de45e9bbee484e2d56430',1,'Eule::Math']]], - ['multiply4x4_61',['Multiply4x4',['../classEule_1_1Matrix4x4.html#ae364e54822b558526dd3404953d48090',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/all_d.html b/Doxygen/build/search/all_d.html deleted file mode 100644 index bc376fe..0000000 --- a/Doxygen/build/search/all_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_d.js b/Doxygen/build/search/all_d.js deleted file mode 100644 index a783cdd..0000000 --- a/Doxygen/build/search/all_d.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['n_62',['n',['../classEule_1_1Matrix4x4.html#a4d6df21744055ee87479591b619af33d',1,'Eule::Matrix4x4']]], - ['normalize_63',['Normalize',['../classEule_1_1Vector2.html#a0f8de10acb284e2d6fcda8ba6efb3a15',1,'Eule::Vector2::Normalize()'],['../classEule_1_1Vector3.html#a4650f19df9b05d941d0fbc29ba59d980',1,'Eule::Vector3::Normalize()'],['../classEule_1_1Vector4.html#a3d10b51b1fe97661650b2991b29b67a7',1,'Eule::Vector4::Normalize()']]], - ['normalizeself_64',['NormalizeSelf',['../classEule_1_1Vector2.html#a9b15bbe640e8b40a743de72652b74591',1,'Eule::Vector2::NormalizeSelf()'],['../classEule_1_1Vector3.html#a69f80925d46f3630a2242b44ddb43a56',1,'Eule::Vector3::NormalizeSelf()'],['../classEule_1_1Vector4.html#a98bea58a58b04357044f72afc905896d',1,'Eule::Vector4::NormalizeSelf()']]] -]; diff --git a/Doxygen/build/search/all_e.html b/Doxygen/build/search/all_e.html deleted file mode 100644 index 2e3c74d..0000000 --- a/Doxygen/build/search/all_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_e.js b/Doxygen/build/search/all_e.js deleted file mode 100644 index dead099..0000000 --- a/Doxygen/build/search/all_e.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['o_65',['o',['../classEule_1_1Matrix4x4.html#a9e813c2000f912ba2b16ea19d387565b',1,'Eule::Matrix4x4']]], - ['one_66',['one',['../classEule_1_1Vector2.html#a2651455a1339e1d61151538f986aa19b',1,'Eule::Vector2::one()'],['../classEule_1_1Vector3.html#a46a389aa258dc615650ffd7e98e3e482',1,'Eule::Vector3::one()'],['../classEule_1_1Vector4.html#a41087d79654271a580c8e5705825b2ed',1,'Eule::Vector4::one()']]], - ['operator_20vector2_3c_20t_20_3e_67',['operator Vector2< T >',['../classEule_1_1Vector3.html#a0bdcd7104775000964029ef94e8a3b6a',1,'Eule::Vector3::operator Vector2< T >()'],['../classEule_1_1Vector4.html#aa1384f5e84216dc264074b716efd37a0',1,'Eule::Vector4::operator Vector2< T >()']]], - ['operator_20vector3_3c_20t_20_3e_68',['operator Vector3< T >',['../classEule_1_1Vector2.html#a3623d54a21bd36d25916218d7ee6eef0',1,'Eule::Vector2::operator Vector3< T >()'],['../classEule_1_1Vector4.html#ab6911dc86dd0289c604167b95e18ebbc',1,'Eule::Vector4::operator Vector3< T >()']]], - ['operator_20vector4_3c_20t_20_3e_69',['operator Vector4< T >',['../classEule_1_1Vector2.html#a4adc4bcb6adab3c937c8154ddc4d9d51',1,'Eule::Vector2::operator Vector4< T >()'],['../classEule_1_1Vector3.html#a67d1daadee40fbaada3b5c3b4b4b7e79',1,'Eule::Vector3::operator Vector4< T >()']]], - ['operator_21_3d_70',['operator!=',['../classEule_1_1Matrix4x4.html#a4e78f3931e6467f50f979e35e4b39a22',1,'Eule::Matrix4x4::operator!=()'],['../classEule_1_1Quaternion.html#a1a97201d7deb56f543d65be9741cd2bd',1,'Eule::Quaternion::operator!=()'],['../classEule_1_1Vector2.html#aff40b705013d8356239b01c80b26e9a9',1,'Eule::Vector2::operator!=()'],['../classEule_1_1Vector3.html#ad71e5d9e7c46e63d226c180a2d8c0beb',1,'Eule::Vector3::operator!=()'],['../classEule_1_1Vector4.html#abc9e49133b73116830c953a4666e403c',1,'Eule::Vector4::operator!=()']]], - ['operator_2a_71',['operator*',['../classEule_1_1Matrix4x4.html#a1c687b90d224b7fac251d8539b8d1a57',1,'Eule::Matrix4x4::operator*(const Matrix4x4 &other) const'],['../classEule_1_1Matrix4x4.html#aea2039315271583e4832c8502e5d9144',1,'Eule::Matrix4x4::operator*(const double scalar) const'],['../classEule_1_1Quaternion.html#ab178e12364d87fb676d85695e491361f',1,'Eule::Quaternion::operator*(const Quaternion &q) const'],['../classEule_1_1Quaternion.html#a29aeab8de1a33ae8c043e3438829835f',1,'Eule::Quaternion::operator*(const Vector3d &p) const'],['../classEule_1_1Vector2.html#af70e271efeb2ea957532e917773e2724',1,'Eule::Vector2::operator*()'],['../classEule_1_1Vector3.html#afd6db19e66c398814f79bfd454682548',1,'Eule::Vector3::operator*(const T scale) const'],['../classEule_1_1Vector3.html#ab7148d41a5184ee4e2948cfdc5eb53f5',1,'Eule::Vector3::operator*(const Matrix4x4 &mat) const'],['../classEule_1_1Vector4.html#af397629f4fc12f8846df9bab8d6d8bbe',1,'Eule::Vector4::operator*(const T scale) const'],['../classEule_1_1Vector4.html#af19cb20ab4ccf6f39c9c8875495de565',1,'Eule::Vector4::operator*(const Matrix4x4 &mat) const']]], - ['operator_2a_3d_72',['operator*=',['../classEule_1_1Matrix4x4.html#a45fbc7927b3acf79c219da27470e0d27',1,'Eule::Matrix4x4::operator*=(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a0e8b677ef2f023df5bc46b47d4c15220',1,'Eule::Matrix4x4::operator*=(const double scalar)'],['../classEule_1_1Quaternion.html#a8941e3b43aabd15e2471e57ebd49c8a7',1,'Eule::Quaternion::operator*=()'],['../classEule_1_1Vector2.html#a14bd68884a3d6b83201f38df17ff1082',1,'Eule::Vector2::operator*=()'],['../classEule_1_1Vector3.html#a7a6e66693d2a1e5cf4dd7cca94ad49db',1,'Eule::Vector3::operator*=(const T scale)'],['../classEule_1_1Vector3.html#a2c3254704c4bf900277d2205f55f4157',1,'Eule::Vector3::operator*=(const Matrix4x4 &mat)'],['../classEule_1_1Vector4.html#a2359c0ecd8b9af425df240774d5ae950',1,'Eule::Vector4::operator*=(const T scale)'],['../classEule_1_1Vector4.html#a7b48a3504125d0017ea237825da3d126',1,'Eule::Vector4::operator*=(const Matrix4x4 &mat)']]], - ['operator_2b_73',['operator+',['../classEule_1_1Matrix4x4.html#a8e5abd340eef361f18bd8cc7166fef1b',1,'Eule::Matrix4x4::operator+()'],['../classEule_1_1Vector2.html#a2acbb7e46d9659a26afb746372ea4364',1,'Eule::Vector2::operator+()'],['../classEule_1_1Vector3.html#ae094943bacbd043b41f9b34bdb51542e',1,'Eule::Vector3::operator+()'],['../classEule_1_1Vector4.html#a0b8b7947175218917b2683d48790a40f',1,'Eule::Vector4::operator+()']]], - ['operator_2b_3d_74',['operator+=',['../classEule_1_1Matrix4x4.html#a89e9d610c16c97178a62b697d04fd873',1,'Eule::Matrix4x4::operator+=()'],['../classEule_1_1Vector2.html#a8b1eb48922a38c4237ea26b11ce43fd2',1,'Eule::Vector2::operator+=()'],['../classEule_1_1Vector3.html#ac6fe920a34552925aff185f335b13e14',1,'Eule::Vector3::operator+=()'],['../classEule_1_1Vector4.html#a54a9edbe72049b85f03827d488363d0a',1,'Eule::Vector4::operator+=()']]], - ['operator_2d_75',['operator-',['../classEule_1_1Matrix4x4.html#a4d4f16882462f4afc18debc6594019a1',1,'Eule::Matrix4x4::operator-()'],['../classEule_1_1Vector2.html#a52060a0688502456b4bb3e443c36c25d',1,'Eule::Vector2::operator-(const Vector2< T > &other) const'],['../classEule_1_1Vector2.html#a352b4e84721183ef182324d350df64df',1,'Eule::Vector2::operator-() const'],['../classEule_1_1Vector3.html#a88273031482c057795e05ea25218ea4b',1,'Eule::Vector3::operator-(const Vector3< T > &other) const'],['../classEule_1_1Vector3.html#a11f2449516a8787f4cce227f12ae2f03',1,'Eule::Vector3::operator-() const'],['../classEule_1_1Vector4.html#a6e68957131d6d87c69dce71ff88097f3',1,'Eule::Vector4::operator-(const Vector4< T > &other) const'],['../classEule_1_1Vector4.html#a36426b12cdcdbfaa6daa35c9d3d4e9c4',1,'Eule::Vector4::operator-() const']]], - ['operator_2d_3d_76',['operator-=',['../classEule_1_1Matrix4x4.html#aca08ad35ac143742eb2aa22892d30e46',1,'Eule::Matrix4x4::operator-=()'],['../classEule_1_1Vector2.html#a76103604080c7d718b634f9394143bfd',1,'Eule::Vector2::operator-=()'],['../classEule_1_1Vector3.html#af1207f3bf66aaf0fa781d43db40b8006',1,'Eule::Vector3::operator-=()'],['../classEule_1_1Vector4.html#aec85460804d89ed9206cc478b2f3c8ba',1,'Eule::Vector4::operator-=()']]], - ['operator_2f_77',['operator/',['../classEule_1_1Matrix4x4.html#acbc9bcf9b58d98372b8f754b2661dc04',1,'Eule::Matrix4x4::operator/(const Matrix4x4 &other) const'],['../classEule_1_1Matrix4x4.html#acca753b1befa72d893ccb73a2390a259',1,'Eule::Matrix4x4::operator/(const double denominator) const'],['../classEule_1_1Quaternion.html#a23488d14e31db8cec75a0e8c6f38c70a',1,'Eule::Quaternion::operator/()'],['../classEule_1_1Vector2.html#adcecda237ca7909bc8de0f8e4a1b586d',1,'Eule::Vector2::operator/()'],['../classEule_1_1Vector3.html#aa9bace50e1db42029d93fbd8a417fc70',1,'Eule::Vector3::operator/()'],['../classEule_1_1Vector4.html#ac952c5322209dffd5ea7bb4a9b06c52d',1,'Eule::Vector4::operator/()']]], - ['operator_2f_3d_78',['operator/=',['../classEule_1_1Matrix4x4.html#a25369a9c56f20e205e827dab8be78b21',1,'Eule::Matrix4x4::operator/=(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a7335fdcec31085ff17b4eda00bf0e3eb',1,'Eule::Matrix4x4::operator/=(const double denominator)'],['../classEule_1_1Quaternion.html#aa071c90a64d21cbb8109366bf2449838',1,'Eule::Quaternion::operator/=()'],['../classEule_1_1Vector2.html#a1a4503a880f870a1f225fe635e7482bb',1,'Eule::Vector2::operator/=()'],['../classEule_1_1Vector3.html#a69f00f05eda60630d48499067297e431',1,'Eule::Vector3::operator/=()'],['../classEule_1_1Vector4.html#a35680f0675813c93e1c2cd3607c1ea2e',1,'Eule::Vector4::operator/=()']]], - ['operator_3c_3c_79',['operator<<',['../classEule_1_1Matrix4x4.html#ab4da4b366d5d0a7bbe890aff1f2445df',1,'Eule::Matrix4x4::operator<<()'],['../classEule_1_1Matrix4x4.html#a4edddbe2b7f5913d67bb90a4d28f44e3',1,'Eule::Matrix4x4::operator<<()'],['../classEule_1_1Quaternion.html#a9dc71eaedf4486dc005fa9a67c6da866',1,'Eule::Quaternion::operator<<()'],['../classEule_1_1Quaternion.html#a7cf5f94ea6e861b3c01f674d7ef987c7',1,'Eule::Quaternion::operator<<()'],['../classEule_1_1Vector2.html#aa89ba3c2ae7a53a25530d3eef6a3c4e3',1,'Eule::Vector2::operator<<()'],['../classEule_1_1Vector2.html#a7ae9f5fa7ea5f9e9ae4ba0dca0a8494b',1,'Eule::Vector2::operator<<()'],['../classEule_1_1Vector3.html#a5705993a4489fc62d73b85f3654261cf',1,'Eule::Vector3::operator<<()'],['../classEule_1_1Vector3.html#a062adbc281326979ec3f5f71052d0deb',1,'Eule::Vector3::operator<<()'],['../classEule_1_1Vector4.html#a67f776474e56594e4973be32df68602a',1,'Eule::Vector4::operator<<()'],['../classEule_1_1Vector4.html#a111187ac1ffc14d4aa33d85a14645870',1,'Eule::Vector4::operator<<()'],['../namespaceEule.html#aa7ebcddcafa056556a6e17dcc968e7dd',1,'Eule::operator<<(std::ostream &os, const Matrix4x4 &m)'],['../namespaceEule.html#ae2fd3ed809d4c950926560fd9b3f2886',1,'Eule::operator<<(std::wostream &os, const Matrix4x4 &m)'],['../namespaceEule.html#a632355bad553c40d9fd297c260c1d44b',1,'Eule::operator<<(std::ostream &os, const Quaternion &q)'],['../namespaceEule.html#a5d5c597b5ae3b3143015316a4a60eacc',1,'Eule::operator<<(std::wostream &os, const Quaternion &q)']]], - ['operator_3d_80',['operator=',['../classEule_1_1Matrix4x4.html#a26938f026d8d438f72b1d5fd4a28f61c',1,'Eule::Matrix4x4::operator=(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a3e2dab83b760ff7da038f14b977d7642',1,'Eule::Matrix4x4::operator=(Matrix4x4 &&other) noexcept'],['../classEule_1_1Quaternion.html#a9cf7fd3318ffdd50e6567c84d24c20e9',1,'Eule::Quaternion::operator=()'],['../classEule_1_1TrapazoidalPrismCollider.html#a1dd50a1f4139a78d9c1c9d6f62a429bd',1,'Eule::TrapazoidalPrismCollider::operator=(const TrapazoidalPrismCollider &other)'],['../classEule_1_1TrapazoidalPrismCollider.html#a7ca93565db388a08ed955a42c8fb99d8',1,'Eule::TrapazoidalPrismCollider::operator=(TrapazoidalPrismCollider &&other) noexcept'],['../classEule_1_1Vector2.html#afc79cf4d93bd0e6feec0fe64fa10d3cf',1,'Eule::Vector2::operator=(const Vector2< T > &other)'],['../classEule_1_1Vector2.html#a6642aa42c0446aecd59f67244ddad873',1,'Eule::Vector2::operator=(Vector2< T > &&other) noexcept'],['../classEule_1_1Vector3.html#a9e725f7a3bf0fb822acf9418dc950ad5',1,'Eule::Vector3::operator=(const Vector3< T > &other)'],['../classEule_1_1Vector3.html#a68cd4f7804a47455d5a5af9cc6b66e38',1,'Eule::Vector3::operator=(Vector3< T > &&other) noexcept'],['../classEule_1_1Vector4.html#a7dc41444f6e3fd30a9cc256ed8414ee6',1,'Eule::Vector4::operator=(const Vector4< T > &other)'],['../classEule_1_1Vector4.html#a331a780b59a0e15e887f11a6fe396934',1,'Eule::Vector4::operator=(Vector4< T > &&other) noexcept']]], - ['operator_3d_3d_81',['operator==',['../classEule_1_1Matrix4x4.html#a37f9e809552b58472f4e20fbeabffdca',1,'Eule::Matrix4x4::operator==()'],['../classEule_1_1Quaternion.html#a516d4dcc7c6f13d8846070b72f588210',1,'Eule::Quaternion::operator==()'],['../classEule_1_1Vector2.html#a3f73897ee668229ea1513f1e2482b296',1,'Eule::Vector2::operator==()'],['../classEule_1_1Vector3.html#a8619be9756e498c50158c5dac275262e',1,'Eule::Vector3::operator==()'],['../classEule_1_1Vector4.html#ae2af40b477e41f8a42db7f80a832a1e7',1,'Eule::Vector4::operator==()']]], - ['operator_5b_5d_82',['operator[]',['../classEule_1_1Matrix4x4.html#a17702fbf3399b86eb883486208895272',1,'Eule::Matrix4x4::operator[](std::size_t y)'],['../classEule_1_1Matrix4x4.html#a1fc5eb915560132c9d908a9c9eacc510',1,'Eule::Matrix4x4::operator[](std::size_t y) const'],['../classEule_1_1Vector2.html#acbfb002c7f506358e1c9648ad0a79734',1,'Eule::Vector2::operator[](std::size_t idx)'],['../classEule_1_1Vector2.html#ac5e06e8ff35709b2a0dda3d932f0d025',1,'Eule::Vector2::operator[](std::size_t idx) const'],['../classEule_1_1Vector3.html#a71f307ae6427a4d6df51647c9d76504b',1,'Eule::Vector3::operator[](std::size_t idx)'],['../classEule_1_1Vector3.html#a4c028a7bab65693aff5d1a7c992326dc',1,'Eule::Vector3::operator[](std::size_t idx) const'],['../classEule_1_1Vector4.html#ae64012cf90d0ad436066232a741b27d5',1,'Eule::Vector4::operator[](std::size_t idx)'],['../classEule_1_1Vector4.html#a603808150eb90008831ba3050bb38a37',1,'Eule::Vector4::operator[](std::size_t idx) const']]], - ['oscillate_83',['Oscillate',['../classEule_1_1Math.html#a1b0fb72c51751470f7f819b20a5b3b3f',1,'Eule::Math']]] -]; diff --git a/Doxygen/build/search/all_f.html b/Doxygen/build/search/all_f.html deleted file mode 100644 index 246f8ab..0000000 --- a/Doxygen/build/search/all_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/all_f.js b/Doxygen/build/search/all_f.js deleted file mode 100644 index 3a9055f..0000000 --- a/Doxygen/build/search/all_f.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['p_84',['p',['../classEule_1_1Matrix4x4.html#a3fdccd317c5ea363b91f6d8096b28bd7',1,'Eule::Matrix4x4']]], - ['past_85',['past',['../classEule_1_1Vector4.html#a5533bb69dbc4714fd53aaf1e0db9bf99',1,'Eule::Vector4']]], - ['pi_86',['PI',['../Constants_8h.html#a299aabc5fc8285cbf99025330a3d0d0d',1,'Constants.h']]], - ['pos_87',['pos',['../structEule_1_1Rect.html#a8013088ed66af106df10acd7ded49bc7',1,'Eule::Rect']]] -]; diff --git a/Doxygen/build/search/classes_0.html b/Doxygen/build/search/classes_0.html deleted file mode 100644 index f7e4c14..0000000 --- a/Doxygen/build/search/classes_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/classes_0.js b/Doxygen/build/search/classes_0.js deleted file mode 100644 index 0a10b0a..0000000 --- a/Doxygen/build/search/classes_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['collider_147',['Collider',['../classEule_1_1Collider.html',1,'Eule']]] -]; diff --git a/Doxygen/build/search/classes_1.html b/Doxygen/build/search/classes_1.html deleted file mode 100644 index c7ff4b3..0000000 --- a/Doxygen/build/search/classes_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/classes_1.js b/Doxygen/build/search/classes_1.js deleted file mode 100644 index 4e4cd5e..0000000 --- a/Doxygen/build/search/classes_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['math_148',['Math',['../classEule_1_1Math.html',1,'Eule']]], - ['matrix4x4_149',['Matrix4x4',['../classEule_1_1Matrix4x4.html',1,'Eule']]] -]; diff --git a/Doxygen/build/search/classes_2.html b/Doxygen/build/search/classes_2.html deleted file mode 100644 index 0d1e8a0..0000000 --- a/Doxygen/build/search/classes_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/classes_2.js b/Doxygen/build/search/classes_2.js deleted file mode 100644 index 315d86c..0000000 --- a/Doxygen/build/search/classes_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['quaternion_150',['Quaternion',['../classEule_1_1Quaternion.html',1,'Eule']]] -]; diff --git a/Doxygen/build/search/classes_3.html b/Doxygen/build/search/classes_3.html deleted file mode 100644 index 2102545..0000000 --- a/Doxygen/build/search/classes_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/classes_3.js b/Doxygen/build/search/classes_3.js deleted file mode 100644 index ed7125e..0000000 --- a/Doxygen/build/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['rect_151',['Rect',['../structEule_1_1Rect.html',1,'Eule']]] -]; diff --git a/Doxygen/build/search/classes_4.html b/Doxygen/build/search/classes_4.html deleted file mode 100644 index 095ab59..0000000 --- a/Doxygen/build/search/classes_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/classes_4.js b/Doxygen/build/search/classes_4.js deleted file mode 100644 index b098135..0000000 --- a/Doxygen/build/search/classes_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['trapazoidalprismcollider_152',['TrapazoidalPrismCollider',['../classEule_1_1TrapazoidalPrismCollider.html',1,'Eule']]] -]; diff --git a/Doxygen/build/search/classes_5.html b/Doxygen/build/search/classes_5.html deleted file mode 100644 index fc9cdc9..0000000 --- a/Doxygen/build/search/classes_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/classes_5.js b/Doxygen/build/search/classes_5.js deleted file mode 100644 index 850c799..0000000 --- a/Doxygen/build/search/classes_5.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['vector2_153',['Vector2',['../classEule_1_1Vector2.html',1,'Eule']]], - ['vector2_3c_20double_20_3e_154',['Vector2< double >',['../classEule_1_1Vector2.html',1,'Eule']]], - ['vector3_155',['Vector3',['../classEule_1_1Vector3.html',1,'Eule']]], - ['vector3_3c_20double_20_3e_156',['Vector3< double >',['../classEule_1_1Vector3.html',1,'Eule']]], - ['vector4_157',['Vector4',['../classEule_1_1Vector4.html',1,'Eule']]], - ['vector4_3c_20double_20_3e_158',['Vector4< double >',['../classEule_1_1Vector4.html',1,'Eule']]] -]; diff --git a/Doxygen/build/search/close.png b/Doxygen/build/search/close.png deleted file mode 100644 index 9342d3d..0000000 Binary files a/Doxygen/build/search/close.png and /dev/null differ diff --git a/Doxygen/build/search/defines_0.html b/Doxygen/build/search/defines_0.html deleted file mode 100644 index 2deb369..0000000 --- a/Doxygen/build/search/defines_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/defines_0.js b/Doxygen/build/search/defines_0.js deleted file mode 100644 index 6fad43e..0000000 --- a/Doxygen/build/search/defines_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['make_5fsure_5frng_5fis_5finitialized_300',['MAKE_SURE_RNG_IS_INITIALIZED',['../Math_8cpp.html#ac0cae806d3e9a3772f7388dd53cfc370',1,'Math.cpp']]] -]; diff --git a/Doxygen/build/search/defines_1.html b/Doxygen/build/search/defines_1.html deleted file mode 100644 index e0d0b6d..0000000 --- a/Doxygen/build/search/defines_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/defines_1.js b/Doxygen/build/search/defines_1.js deleted file mode 100644 index 20e866d..0000000 --- a/Doxygen/build/search/defines_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['half_5fpi_293',['HALF_PI',['../Constants_8h.html#ae3ec3219e4eee3b0992bfd59c2e2bc42',1,'Constants.h']]] -]; diff --git a/Doxygen/build/search/defines_2.html b/Doxygen/build/search/defines_2.html deleted file mode 100644 index 707f942..0000000 --- a/Doxygen/build/search/defines_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/defines_2.js b/Doxygen/build/search/defines_2.js deleted file mode 100644 index 09df58b..0000000 --- a/Doxygen/build/search/defines_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['make_5fsure_5frng_5fis_5finitialized_294',['MAKE_SURE_RNG_IS_INITIALIZED',['../Math_8cpp.html#ac0cae806d3e9a3772f7388dd53cfc370',1,'Math.cpp']]] -]; diff --git a/Doxygen/build/search/defines_3.html b/Doxygen/build/search/defines_3.html deleted file mode 100644 index f30be10..0000000 --- a/Doxygen/build/search/defines_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/defines_3.js b/Doxygen/build/search/defines_3.js deleted file mode 100644 index 77b863e..0000000 --- a/Doxygen/build/search/defines_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['pi_295',['PI',['../Constants_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'Constants.h']]] -]; diff --git a/Doxygen/build/search/defines_4.html b/Doxygen/build/search/defines_4.html deleted file mode 100644 index 046ad4a..0000000 --- a/Doxygen/build/search/defines_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/defines_4.js b/Doxygen/build/search/defines_4.js deleted file mode 100644 index aa71a8e..0000000 --- a/Doxygen/build/search/defines_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['rad2deg_296',['Rad2Deg',['../Constants_8h.html#a0272b2f5a4ca917a60dad22a3cbc6faf',1,'Constants.h']]] -]; diff --git a/Doxygen/build/search/files_0.html b/Doxygen/build/search/files_0.html deleted file mode 100644 index 737608e..0000000 --- a/Doxygen/build/search/files_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/files_0.js b/Doxygen/build/search/files_0.js deleted file mode 100644 index 1c2fd6e..0000000 --- a/Doxygen/build/search/files_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['collider_2ecpp_160',['Collider.cpp',['../Collider_8cpp.html',1,'']]], - ['collider_2eh_161',['Collider.h',['../Collider_8h.html',1,'']]], - ['constants_2eh_162',['Constants.h',['../Constants_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/files_1.html b/Doxygen/build/search/files_1.html deleted file mode 100644 index f27a62d..0000000 --- a/Doxygen/build/search/files_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/files_1.js b/Doxygen/build/search/files_1.js deleted file mode 100644 index 2c6ef06..0000000 --- a/Doxygen/build/search/files_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['eule_2evcxproj_2efilelistabsolute_2etxt_163',['Eule.vcxproj.FileListAbsolute.txt',['../Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html',1,'(Global Namespace)'],['../x64_2Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html',1,'(Global Namespace)'],['../x64_2Release_2Eule_8vcxproj_8FileListAbsolute_8txt.html',1,'(Global Namespace)']]] -]; diff --git a/Doxygen/build/search/files_2.html b/Doxygen/build/search/files_2.html deleted file mode 100644 index a45066e..0000000 --- a/Doxygen/build/search/files_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/files_2.js b/Doxygen/build/search/files_2.js deleted file mode 100644 index 483ee96..0000000 --- a/Doxygen/build/search/files_2.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['math_2ecpp_164',['Math.cpp',['../Math_8cpp.html',1,'']]], - ['math_2eh_165',['Math.h',['../Math_8h.html',1,'']]], - ['matrix4x4_2ecpp_166',['Matrix4x4.cpp',['../Matrix4x4_8cpp.html',1,'']]], - ['matrix4x4_2eh_167',['Matrix4x4.h',['../Matrix4x4_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/files_3.html b/Doxygen/build/search/files_3.html deleted file mode 100644 index 1076bc5..0000000 --- a/Doxygen/build/search/files_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/files_3.js b/Doxygen/build/search/files_3.js deleted file mode 100644 index 355bef5..0000000 --- a/Doxygen/build/search/files_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['quaternion_2ecpp_168',['Quaternion.cpp',['../Quaternion_8cpp.html',1,'']]], - ['quaternion_2eh_169',['Quaternion.h',['../Quaternion_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/files_4.html b/Doxygen/build/search/files_4.html deleted file mode 100644 index e5cd7f4..0000000 --- a/Doxygen/build/search/files_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/files_4.js b/Doxygen/build/search/files_4.js deleted file mode 100644 index 4e17532..0000000 --- a/Doxygen/build/search/files_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['rect_2eh_170',['Rect.h',['../Rect_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/files_5.html b/Doxygen/build/search/files_5.html deleted file mode 100644 index 2cc480f..0000000 --- a/Doxygen/build/search/files_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/files_5.js b/Doxygen/build/search/files_5.js deleted file mode 100644 index 04d66c7..0000000 --- a/Doxygen/build/search/files_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['trapazoidalprismcollider_2ecpp_171',['TrapazoidalPrismCollider.cpp',['../TrapazoidalPrismCollider_8cpp.html',1,'']]], - ['trapazoidalprismcollider_2eh_172',['TrapazoidalPrismCollider.h',['../TrapazoidalPrismCollider_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/files_6.html b/Doxygen/build/search/files_6.html deleted file mode 100644 index 6510245..0000000 --- a/Doxygen/build/search/files_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/files_6.js b/Doxygen/build/search/files_6.js deleted file mode 100644 index 72dda93..0000000 --- a/Doxygen/build/search/files_6.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['vector2_2ecpp_173',['Vector2.cpp',['../Vector2_8cpp.html',1,'']]], - ['vector2_2eh_174',['Vector2.h',['../Vector2_8h.html',1,'']]], - ['vector3_2ecpp_175',['Vector3.cpp',['../Vector3_8cpp.html',1,'']]], - ['vector3_2eh_176',['Vector3.h',['../Vector3_8h.html',1,'']]], - ['vector4_2ecpp_177',['Vector4.cpp',['../Vector4_8cpp.html',1,'']]], - ['vector4_2eh_178',['Vector4.h',['../Vector4_8h.html',1,'']]], - ['version_2eh_179',['version.h',['../version_8h.html',1,'']]] -]; diff --git a/Doxygen/build/search/functions_0.html b/Doxygen/build/search/functions_0.html deleted file mode 100644 index e17c711..0000000 --- a/Doxygen/build/search/functions_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_0.js b/Doxygen/build/search/functions_0.js deleted file mode 100644 index c47143f..0000000 --- a/Doxygen/build/search/functions_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['abs_180',['Abs',['../classEule_1_1Math.html#ab9ccf4aa730ef825faf224445c86ab25',1,'Eule::Math']]], - ['adjoint_181',['Adjoint',['../classEule_1_1Matrix4x4.html#a1c664d93fbd68ec9f8c762263fc45a97',1,'Eule::Matrix4x4']]], - ['anglebetween_182',['AngleBetween',['../classEule_1_1Quaternion.html#a2c7d0c3521f0e6127ca4b5d5bdbf8329',1,'Eule::Quaternion']]] -]; diff --git a/Doxygen/build/search/functions_1.html b/Doxygen/build/search/functions_1.html deleted file mode 100644 index 0ddac0a..0000000 --- a/Doxygen/build/search/functions_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_1.js b/Doxygen/build/search/functions_1.js deleted file mode 100644 index 4395755..0000000 --- a/Doxygen/build/search/functions_1.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['clamp_183',['Clamp',['../classEule_1_1Math.html#a73947ee95912f0a06359fc5004bfc840',1,'Eule::Math']]], - ['conjugate_184',['Conjugate',['../classEule_1_1Quaternion.html#aa5333ab28dbe4d5ae15ab5dbc36b90ca',1,'Eule::Quaternion']]], - ['contains_185',['Contains',['../classEule_1_1Collider.html#a19a1220bf41df1d8c720296bfe91f5fb',1,'Eule::Collider::Contains()'],['../classEule_1_1TrapazoidalPrismCollider.html#abc4865f44bef057bbbb39385eae9e2dc',1,'Eule::TrapazoidalPrismCollider::Contains()']]], - ['crossproduct_186',['CrossProduct',['../classEule_1_1Vector2.html#a308df926fccbf4a5321a821d92924dfb',1,'Eule::Vector2::CrossProduct()'],['../classEule_1_1Vector3.html#abd62a5f6b0f380491cf80d70ed2e5317',1,'Eule::Vector3::CrossProduct()']]] -]; diff --git a/Doxygen/build/search/functions_2.html b/Doxygen/build/search/functions_2.html deleted file mode 100644 index 2737c5a..0000000 --- a/Doxygen/build/search/functions_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_2.js b/Doxygen/build/search/functions_2.js deleted file mode 100644 index 7e49eb4..0000000 --- a/Doxygen/build/search/functions_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['determinant_187',['Determinant',['../classEule_1_1Matrix4x4.html#a8a7c7d927d012aaa3abbbc210444b4c0',1,'Eule::Matrix4x4']]], - ['dotproduct_188',['DotProduct',['../classEule_1_1Vector2.html#a5ed3a9b01d550a9b745b885fdb03d68c',1,'Eule::Vector2::DotProduct()'],['../classEule_1_1Vector3.html#a6cbc1516e045c0334f8bf8a1dcd6ca91',1,'Eule::Vector3::DotProduct()']]], - ['droptranslationcomponents_189',['DropTranslationComponents',['../classEule_1_1Matrix4x4.html#a42eaf01fbe7f1f57d6fb5bf7111d3338',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/functions_3.html b/Doxygen/build/search/functions_3.html deleted file mode 100644 index 6da86e7..0000000 --- a/Doxygen/build/search/functions_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_3.js b/Doxygen/build/search/functions_3.js deleted file mode 100644 index 8492558..0000000 --- a/Doxygen/build/search/functions_3.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['getcofactors_190',['GetCofactors',['../classEule_1_1Matrix4x4.html#aefc37ab31604f888e393a1de62927d55',1,'Eule::Matrix4x4']]], - ['getrawvalues_191',['GetRawValues',['../classEule_1_1Quaternion.html#aaa193aa23729338a64bbd16eacab56ec',1,'Eule::Quaternion']]], - ['gettranslationcomponent_192',['GetTranslationComponent',['../classEule_1_1Matrix4x4.html#a19cc83344e288c09f7200d8410277b28',1,'Eule::Matrix4x4']]], - ['getvertex_193',['GetVertex',['../classEule_1_1TrapazoidalPrismCollider.html#a4b49f6749d39571121621dd45b32bac3',1,'Eule::TrapazoidalPrismCollider']]] -]; diff --git a/Doxygen/build/search/functions_4.html b/Doxygen/build/search/functions_4.html deleted file mode 100644 index 911304e..0000000 --- a/Doxygen/build/search/functions_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_4.js b/Doxygen/build/search/functions_4.js deleted file mode 100644 index 01a6187..0000000 --- a/Doxygen/build/search/functions_4.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['inverse_194',['Inverse',['../classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576',1,'Eule::Quaternion']]], - ['inverse3x3_195',['Inverse3x3',['../classEule_1_1Matrix4x4.html#acfd6d8677484cb6ed246efe5c39b9119',1,'Eule::Matrix4x4']]], - ['inverse4x4_196',['Inverse4x4',['../classEule_1_1Matrix4x4.html#ab635c2bbd0d91ad35369efd4dc5dac29',1,'Eule::Matrix4x4']]], - ['isinversible3x3_197',['IsInversible3x3',['../classEule_1_1Matrix4x4.html#ab52b7e10a4e7ecbdb347fd82eb9ecd22',1,'Eule::Matrix4x4']]], - ['isinversible4x4_198',['IsInversible4x4',['../classEule_1_1Matrix4x4.html#a24a2113d49c0a86c48755b8ad11e22c0',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/functions_5.html b/Doxygen/build/search/functions_5.html deleted file mode 100644 index 61b920d..0000000 --- a/Doxygen/build/search/functions_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_5.js b/Doxygen/build/search/functions_5.js deleted file mode 100644 index f3e792c..0000000 --- a/Doxygen/build/search/functions_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['lerp_199',['Lerp',['../classEule_1_1Math.html#a991f62401991014de20aca0fda9f9ef7',1,'Eule::Math::Lerp()'],['../classEule_1_1Quaternion.html#a2c386181050f7745341a00f79e496e08',1,'Eule::Quaternion::Lerp()'],['../classEule_1_1Vector2.html#a8bb45fd8415f24c58a59739d67f86038',1,'Eule::Vector2::Lerp()'],['../classEule_1_1Vector3.html#add2f96155edb1159b53725932d951f1f',1,'Eule::Vector3::Lerp()'],['../classEule_1_1Vector4.html#ae5b7ed7132d76ffbde20f24330fd4f69',1,'Eule::Vector4::Lerp()']]], - ['lerpself_200',['LerpSelf',['../classEule_1_1Vector2.html#a85ad9f5dca4f60c679be5edd86942774',1,'Eule::Vector2::LerpSelf()'],['../classEule_1_1Vector3.html#a8fb48e9a527d5e6fadb3b3102fa8f4c3',1,'Eule::Vector3::LerpSelf()'],['../classEule_1_1Vector4.html#ab4efb629829cfebcbb82b4318c3e3bb3',1,'Eule::Vector4::LerpSelf()']]] -]; diff --git a/Doxygen/build/search/functions_6.html b/Doxygen/build/search/functions_6.html deleted file mode 100644 index dc70a4a..0000000 --- a/Doxygen/build/search/functions_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_6.js b/Doxygen/build/search/functions_6.js deleted file mode 100644 index abd5fdf..0000000 --- a/Doxygen/build/search/functions_6.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['magnitude_201',['Magnitude',['../classEule_1_1Vector2.html#a85551e0734a2f3143c4ecdbaf4a3ea46',1,'Eule::Vector2::Magnitude()'],['../classEule_1_1Vector3.html#a96e6e436600d1420250ef2868854988d',1,'Eule::Vector3::Magnitude()'],['../classEule_1_1Vector4.html#a35c6fccb7a02095b595575903b590dd2',1,'Eule::Vector4::Magnitude()']]], - ['matrix4x4_202',['Matrix4x4',['../classEule_1_1Matrix4x4.html#a714a467ba7f85f88ebe3897b5e3580be',1,'Eule::Matrix4x4::Matrix4x4()'],['../classEule_1_1Matrix4x4.html#a4a71d8fc881ddb7d51577e0a762ac186',1,'Eule::Matrix4x4::Matrix4x4(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a44f2af9bfad01c2d065985c1dfda8d08',1,'Eule::Matrix4x4::Matrix4x4(Matrix4x4 &&other) noexcept']]], - ['max_203',['Max',['../classEule_1_1Math.html#a991c620839f5fa9fcfe7e503b8ab0008',1,'Eule::Math']]], - ['min_204',['Min',['../classEule_1_1Math.html#aa4d3c52cb09984ec567a9961ff7e3f02',1,'Eule::Math']]], - ['mod_205',['Mod',['../classEule_1_1Math.html#a9d17091e986de45e9bbee484e2d56430',1,'Eule::Math']]], - ['multiply4x4_206',['Multiply4x4',['../classEule_1_1Matrix4x4.html#ae364e54822b558526dd3404953d48090',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/functions_7.html b/Doxygen/build/search/functions_7.html deleted file mode 100644 index 7de3106..0000000 --- a/Doxygen/build/search/functions_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_7.js b/Doxygen/build/search/functions_7.js deleted file mode 100644 index 55e45fc..0000000 --- a/Doxygen/build/search/functions_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['normalize_207',['Normalize',['../classEule_1_1Vector2.html#a0f8de10acb284e2d6fcda8ba6efb3a15',1,'Eule::Vector2::Normalize()'],['../classEule_1_1Vector3.html#a4650f19df9b05d941d0fbc29ba59d980',1,'Eule::Vector3::Normalize()'],['../classEule_1_1Vector4.html#a3d10b51b1fe97661650b2991b29b67a7',1,'Eule::Vector4::Normalize()']]], - ['normalizeself_208',['NormalizeSelf',['../classEule_1_1Vector2.html#a9b15bbe640e8b40a743de72652b74591',1,'Eule::Vector2::NormalizeSelf()'],['../classEule_1_1Vector3.html#a69f80925d46f3630a2242b44ddb43a56',1,'Eule::Vector3::NormalizeSelf()'],['../classEule_1_1Vector4.html#a98bea58a58b04357044f72afc905896d',1,'Eule::Vector4::NormalizeSelf()']]] -]; diff --git a/Doxygen/build/search/functions_8.html b/Doxygen/build/search/functions_8.html deleted file mode 100644 index 7422be2..0000000 --- a/Doxygen/build/search/functions_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_8.js b/Doxygen/build/search/functions_8.js deleted file mode 100644 index 1e72441..0000000 --- a/Doxygen/build/search/functions_8.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['operator_20vector2_3c_20t_20_3e_209',['operator Vector2< T >',['../classEule_1_1Vector3.html#a0bdcd7104775000964029ef94e8a3b6a',1,'Eule::Vector3::operator Vector2< T >()'],['../classEule_1_1Vector4.html#aa1384f5e84216dc264074b716efd37a0',1,'Eule::Vector4::operator Vector2< T >()']]], - ['operator_20vector3_3c_20t_20_3e_210',['operator Vector3< T >',['../classEule_1_1Vector2.html#a3623d54a21bd36d25916218d7ee6eef0',1,'Eule::Vector2::operator Vector3< T >()'],['../classEule_1_1Vector4.html#ab6911dc86dd0289c604167b95e18ebbc',1,'Eule::Vector4::operator Vector3< T >()']]], - ['operator_20vector4_3c_20t_20_3e_211',['operator Vector4< T >',['../classEule_1_1Vector2.html#a4adc4bcb6adab3c937c8154ddc4d9d51',1,'Eule::Vector2::operator Vector4< T >()'],['../classEule_1_1Vector3.html#a67d1daadee40fbaada3b5c3b4b4b7e79',1,'Eule::Vector3::operator Vector4< T >()']]], - ['operator_21_3d_212',['operator!=',['../classEule_1_1Matrix4x4.html#a4e78f3931e6467f50f979e35e4b39a22',1,'Eule::Matrix4x4::operator!=()'],['../classEule_1_1Quaternion.html#a1a97201d7deb56f543d65be9741cd2bd',1,'Eule::Quaternion::operator!=()'],['../classEule_1_1Vector2.html#aff40b705013d8356239b01c80b26e9a9',1,'Eule::Vector2::operator!=()'],['../classEule_1_1Vector3.html#ad71e5d9e7c46e63d226c180a2d8c0beb',1,'Eule::Vector3::operator!=()'],['../classEule_1_1Vector4.html#abc9e49133b73116830c953a4666e403c',1,'Eule::Vector4::operator!=()']]], - ['operator_2a_213',['operator*',['../classEule_1_1Matrix4x4.html#a1c687b90d224b7fac251d8539b8d1a57',1,'Eule::Matrix4x4::operator*(const Matrix4x4 &other) const'],['../classEule_1_1Matrix4x4.html#aea2039315271583e4832c8502e5d9144',1,'Eule::Matrix4x4::operator*(const double scalar) const'],['../classEule_1_1Quaternion.html#ab178e12364d87fb676d85695e491361f',1,'Eule::Quaternion::operator*(const Quaternion &q) const'],['../classEule_1_1Quaternion.html#a29aeab8de1a33ae8c043e3438829835f',1,'Eule::Quaternion::operator*(const Vector3d &p) const'],['../classEule_1_1Vector2.html#af70e271efeb2ea957532e917773e2724',1,'Eule::Vector2::operator*()'],['../classEule_1_1Vector3.html#afd6db19e66c398814f79bfd454682548',1,'Eule::Vector3::operator*(const T scale) const'],['../classEule_1_1Vector3.html#ab7148d41a5184ee4e2948cfdc5eb53f5',1,'Eule::Vector3::operator*(const Matrix4x4 &mat) const'],['../classEule_1_1Vector4.html#af397629f4fc12f8846df9bab8d6d8bbe',1,'Eule::Vector4::operator*(const T scale) const'],['../classEule_1_1Vector4.html#af19cb20ab4ccf6f39c9c8875495de565',1,'Eule::Vector4::operator*(const Matrix4x4 &mat) const']]], - ['operator_2a_3d_214',['operator*=',['../classEule_1_1Matrix4x4.html#a45fbc7927b3acf79c219da27470e0d27',1,'Eule::Matrix4x4::operator*=(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a0e8b677ef2f023df5bc46b47d4c15220',1,'Eule::Matrix4x4::operator*=(const double scalar)'],['../classEule_1_1Quaternion.html#a8941e3b43aabd15e2471e57ebd49c8a7',1,'Eule::Quaternion::operator*=()'],['../classEule_1_1Vector2.html#a14bd68884a3d6b83201f38df17ff1082',1,'Eule::Vector2::operator*=()'],['../classEule_1_1Vector3.html#a7a6e66693d2a1e5cf4dd7cca94ad49db',1,'Eule::Vector3::operator*=(const T scale)'],['../classEule_1_1Vector3.html#a2c3254704c4bf900277d2205f55f4157',1,'Eule::Vector3::operator*=(const Matrix4x4 &mat)'],['../classEule_1_1Vector4.html#a2359c0ecd8b9af425df240774d5ae950',1,'Eule::Vector4::operator*=(const T scale)'],['../classEule_1_1Vector4.html#a7b48a3504125d0017ea237825da3d126',1,'Eule::Vector4::operator*=(const Matrix4x4 &mat)']]], - ['operator_2b_215',['operator+',['../classEule_1_1Matrix4x4.html#a8e5abd340eef361f18bd8cc7166fef1b',1,'Eule::Matrix4x4::operator+()'],['../classEule_1_1Vector2.html#a2acbb7e46d9659a26afb746372ea4364',1,'Eule::Vector2::operator+()'],['../classEule_1_1Vector3.html#ae094943bacbd043b41f9b34bdb51542e',1,'Eule::Vector3::operator+()'],['../classEule_1_1Vector4.html#a0b8b7947175218917b2683d48790a40f',1,'Eule::Vector4::operator+()']]], - ['operator_2b_3d_216',['operator+=',['../classEule_1_1Matrix4x4.html#a89e9d610c16c97178a62b697d04fd873',1,'Eule::Matrix4x4::operator+=()'],['../classEule_1_1Vector2.html#a8b1eb48922a38c4237ea26b11ce43fd2',1,'Eule::Vector2::operator+=()'],['../classEule_1_1Vector3.html#ac6fe920a34552925aff185f335b13e14',1,'Eule::Vector3::operator+=()'],['../classEule_1_1Vector4.html#a54a9edbe72049b85f03827d488363d0a',1,'Eule::Vector4::operator+=()']]], - ['operator_2d_217',['operator-',['../classEule_1_1Matrix4x4.html#a4d4f16882462f4afc18debc6594019a1',1,'Eule::Matrix4x4::operator-()'],['../classEule_1_1Vector2.html#a52060a0688502456b4bb3e443c36c25d',1,'Eule::Vector2::operator-(const Vector2< T > &other) const'],['../classEule_1_1Vector2.html#a352b4e84721183ef182324d350df64df',1,'Eule::Vector2::operator-() const'],['../classEule_1_1Vector3.html#a88273031482c057795e05ea25218ea4b',1,'Eule::Vector3::operator-(const Vector3< T > &other) const'],['../classEule_1_1Vector3.html#a11f2449516a8787f4cce227f12ae2f03',1,'Eule::Vector3::operator-() const'],['../classEule_1_1Vector4.html#a6e68957131d6d87c69dce71ff88097f3',1,'Eule::Vector4::operator-(const Vector4< T > &other) const'],['../classEule_1_1Vector4.html#a36426b12cdcdbfaa6daa35c9d3d4e9c4',1,'Eule::Vector4::operator-() const']]], - ['operator_2d_3d_218',['operator-=',['../classEule_1_1Matrix4x4.html#aca08ad35ac143742eb2aa22892d30e46',1,'Eule::Matrix4x4::operator-=()'],['../classEule_1_1Vector2.html#a76103604080c7d718b634f9394143bfd',1,'Eule::Vector2::operator-=()'],['../classEule_1_1Vector3.html#af1207f3bf66aaf0fa781d43db40b8006',1,'Eule::Vector3::operator-=()'],['../classEule_1_1Vector4.html#aec85460804d89ed9206cc478b2f3c8ba',1,'Eule::Vector4::operator-=()']]], - ['operator_2f_219',['operator/',['../classEule_1_1Matrix4x4.html#acbc9bcf9b58d98372b8f754b2661dc04',1,'Eule::Matrix4x4::operator/(const Matrix4x4 &other) const'],['../classEule_1_1Matrix4x4.html#acca753b1befa72d893ccb73a2390a259',1,'Eule::Matrix4x4::operator/(const double denominator) const'],['../classEule_1_1Quaternion.html#a23488d14e31db8cec75a0e8c6f38c70a',1,'Eule::Quaternion::operator/()'],['../classEule_1_1Vector2.html#adcecda237ca7909bc8de0f8e4a1b586d',1,'Eule::Vector2::operator/()'],['../classEule_1_1Vector3.html#aa9bace50e1db42029d93fbd8a417fc70',1,'Eule::Vector3::operator/()'],['../classEule_1_1Vector4.html#ac952c5322209dffd5ea7bb4a9b06c52d',1,'Eule::Vector4::operator/()']]], - ['operator_2f_3d_220',['operator/=',['../classEule_1_1Matrix4x4.html#a25369a9c56f20e205e827dab8be78b21',1,'Eule::Matrix4x4::operator/=(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a7335fdcec31085ff17b4eda00bf0e3eb',1,'Eule::Matrix4x4::operator/=(const double denominator)'],['../classEule_1_1Quaternion.html#aa071c90a64d21cbb8109366bf2449838',1,'Eule::Quaternion::operator/=()'],['../classEule_1_1Vector2.html#a1a4503a880f870a1f225fe635e7482bb',1,'Eule::Vector2::operator/=()'],['../classEule_1_1Vector3.html#a69f00f05eda60630d48499067297e431',1,'Eule::Vector3::operator/=()'],['../classEule_1_1Vector4.html#a35680f0675813c93e1c2cd3607c1ea2e',1,'Eule::Vector4::operator/=()']]], - ['operator_3c_3c_221',['operator<<',['../namespaceEule.html#aa7ebcddcafa056556a6e17dcc968e7dd',1,'Eule::operator<<(std::ostream &os, const Matrix4x4 &m)'],['../namespaceEule.html#ae2fd3ed809d4c950926560fd9b3f2886',1,'Eule::operator<<(std::wostream &os, const Matrix4x4 &m)'],['../namespaceEule.html#a632355bad553c40d9fd297c260c1d44b',1,'Eule::operator<<(std::ostream &os, const Quaternion &q)'],['../namespaceEule.html#a5d5c597b5ae3b3143015316a4a60eacc',1,'Eule::operator<<(std::wostream &os, const Quaternion &q)']]], - ['operator_3d_222',['operator=',['../classEule_1_1Matrix4x4.html#a26938f026d8d438f72b1d5fd4a28f61c',1,'Eule::Matrix4x4::operator=(const Matrix4x4 &other)'],['../classEule_1_1Matrix4x4.html#a3e2dab83b760ff7da038f14b977d7642',1,'Eule::Matrix4x4::operator=(Matrix4x4 &&other) noexcept'],['../classEule_1_1Quaternion.html#a9cf7fd3318ffdd50e6567c84d24c20e9',1,'Eule::Quaternion::operator=()'],['../classEule_1_1TrapazoidalPrismCollider.html#a1dd50a1f4139a78d9c1c9d6f62a429bd',1,'Eule::TrapazoidalPrismCollider::operator=(const TrapazoidalPrismCollider &other)'],['../classEule_1_1TrapazoidalPrismCollider.html#a7ca93565db388a08ed955a42c8fb99d8',1,'Eule::TrapazoidalPrismCollider::operator=(TrapazoidalPrismCollider &&other) noexcept'],['../classEule_1_1Vector2.html#afc79cf4d93bd0e6feec0fe64fa10d3cf',1,'Eule::Vector2::operator=(const Vector2< T > &other)'],['../classEule_1_1Vector2.html#a6642aa42c0446aecd59f67244ddad873',1,'Eule::Vector2::operator=(Vector2< T > &&other) noexcept'],['../classEule_1_1Vector3.html#a9e725f7a3bf0fb822acf9418dc950ad5',1,'Eule::Vector3::operator=(const Vector3< T > &other)'],['../classEule_1_1Vector3.html#a68cd4f7804a47455d5a5af9cc6b66e38',1,'Eule::Vector3::operator=(Vector3< T > &&other) noexcept'],['../classEule_1_1Vector4.html#a7dc41444f6e3fd30a9cc256ed8414ee6',1,'Eule::Vector4::operator=(const Vector4< T > &other)'],['../classEule_1_1Vector4.html#a331a780b59a0e15e887f11a6fe396934',1,'Eule::Vector4::operator=(Vector4< T > &&other) noexcept']]], - ['operator_3d_3d_223',['operator==',['../classEule_1_1Matrix4x4.html#a37f9e809552b58472f4e20fbeabffdca',1,'Eule::Matrix4x4::operator==()'],['../classEule_1_1Quaternion.html#a516d4dcc7c6f13d8846070b72f588210',1,'Eule::Quaternion::operator==()'],['../classEule_1_1Vector2.html#a3f73897ee668229ea1513f1e2482b296',1,'Eule::Vector2::operator==()'],['../classEule_1_1Vector3.html#a8619be9756e498c50158c5dac275262e',1,'Eule::Vector3::operator==()'],['../classEule_1_1Vector4.html#ae2af40b477e41f8a42db7f80a832a1e7',1,'Eule::Vector4::operator==()']]], - ['operator_5b_5d_224',['operator[]',['../classEule_1_1Matrix4x4.html#a17702fbf3399b86eb883486208895272',1,'Eule::Matrix4x4::operator[](std::size_t y)'],['../classEule_1_1Matrix4x4.html#a1fc5eb915560132c9d908a9c9eacc510',1,'Eule::Matrix4x4::operator[](std::size_t y) const'],['../classEule_1_1Vector2.html#acbfb002c7f506358e1c9648ad0a79734',1,'Eule::Vector2::operator[](std::size_t idx)'],['../classEule_1_1Vector2.html#ac5e06e8ff35709b2a0dda3d932f0d025',1,'Eule::Vector2::operator[](std::size_t idx) const'],['../classEule_1_1Vector3.html#a71f307ae6427a4d6df51647c9d76504b',1,'Eule::Vector3::operator[](std::size_t idx)'],['../classEule_1_1Vector3.html#a4c028a7bab65693aff5d1a7c992326dc',1,'Eule::Vector3::operator[](std::size_t idx) const'],['../classEule_1_1Vector4.html#ae64012cf90d0ad436066232a741b27d5',1,'Eule::Vector4::operator[](std::size_t idx)'],['../classEule_1_1Vector4.html#a603808150eb90008831ba3050bb38a37',1,'Eule::Vector4::operator[](std::size_t idx) const']]], - ['oscillate_225',['Oscillate',['../classEule_1_1Math.html#a1b0fb72c51751470f7f819b20a5b3b3f',1,'Eule::Math']]] -]; diff --git a/Doxygen/build/search/functions_9.html b/Doxygen/build/search/functions_9.html deleted file mode 100644 index befd4fa..0000000 --- a/Doxygen/build/search/functions_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_9.js b/Doxygen/build/search/functions_9.js deleted file mode 100644 index e0e9718..0000000 --- a/Doxygen/build/search/functions_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['quaternion_226',['Quaternion',['../classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d',1,'Eule::Quaternion::Quaternion()'],['../classEule_1_1Quaternion.html#a2dc0ed0c7773600cf443151573287e4a',1,'Eule::Quaternion::Quaternion(const Vector4d values)'],['../classEule_1_1Quaternion.html#ab3b8862f9fd86c7ebb426b4940d08b39',1,'Eule::Quaternion::Quaternion(const Quaternion &q)'],['../classEule_1_1Quaternion.html#a1e4c6f8984bb7a9ae1ffed45adffe02f',1,'Eule::Quaternion::Quaternion(const Vector3d eulerAngles)']]] -]; diff --git a/Doxygen/build/search/functions_a.html b/Doxygen/build/search/functions_a.html deleted file mode 100644 index a81e963..0000000 --- a/Doxygen/build/search/functions_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_a.js b/Doxygen/build/search/functions_a.js deleted file mode 100644 index 70c1e85..0000000 --- a/Doxygen/build/search/functions_a.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['random_227',['Random',['../classEule_1_1Math.html#a6aa6d6c804f995a089779219e5136e4f',1,'Eule::Math']]], - ['randomchance_228',['RandomChance',['../classEule_1_1Math.html#a60bffec38a861b7701fc90bd6f1a11d6',1,'Eule::Math']]], - ['randomint_229',['RandomInt',['../classEule_1_1Math.html#ab8d66e39e794d89594c50690ccc92c60',1,'Eule::Math']]], - ['randomintrange_230',['RandomIntRange',['../classEule_1_1Math.html#adfc55be8cb68aba351374f045f29a2ad',1,'Eule::Math']]], - ['randomrange_231',['RandomRange',['../classEule_1_1Math.html#a48ca8451f9803ce35d2a35cfb83d8ae9',1,'Eule::Math']]], - ['randomuint_232',['RandomUint',['../classEule_1_1Math.html#ad38d9a50e08cd02bb35161cc3bd77b26',1,'Eule::Math']]], - ['rotatevector_233',['RotateVector',['../classEule_1_1Quaternion.html#aaeb89218e886e605c6e2a87c9cb773a4',1,'Eule::Quaternion']]] -]; diff --git a/Doxygen/build/search/functions_b.html b/Doxygen/build/search/functions_b.html deleted file mode 100644 index 345265d..0000000 --- a/Doxygen/build/search/functions_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_b.js b/Doxygen/build/search/functions_b.js deleted file mode 100644 index a20e2d4..0000000 --- a/Doxygen/build/search/functions_b.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['setrawvalues_234',['SetRawValues',['../classEule_1_1Quaternion.html#a7046064a89615e16760f17f41b60a31d',1,'Eule::Quaternion']]], - ['settranslationcomponent_235',['SetTranslationComponent',['../classEule_1_1Matrix4x4.html#a6e4fd75a1f47f42f922ef4355d448411',1,'Eule::Matrix4x4']]], - ['setvertex_236',['SetVertex',['../classEule_1_1TrapazoidalPrismCollider.html#a5acc127ec848dceead5ad017f36696aa',1,'Eule::TrapazoidalPrismCollider']]], - ['similar_237',['Similar',['../classEule_1_1Math.html#a4c9a4bc679357551b4a6315497f80f6f',1,'Eule::Math::Similar()'],['../classEule_1_1Matrix4x4.html#ab8340e0e909a6cbb1a32439f2ca2c092',1,'Eule::Matrix4x4::Similar()'],['../classEule_1_1Vector2.html#a69fc37a6e885b64426d5846be33c7366',1,'Eule::Vector2::Similar()'],['../classEule_1_1Vector3.html#a9613bb7d4981c921b8310d5eedf59b07',1,'Eule::Vector3::Similar()'],['../classEule_1_1Vector4.html#af49ea98d369420a07158d705eab60479',1,'Eule::Vector4::Similar()']]], - ['sqrmagnitude_238',['SqrMagnitude',['../classEule_1_1Vector2.html#ad8c2b3e86fc91a641a0817047a63170f',1,'Eule::Vector2::SqrMagnitude()'],['../classEule_1_1Vector3.html#ad2f078dd733634a321157d23979a4162',1,'Eule::Vector3::SqrMagnitude()'],['../classEule_1_1Vector4.html#a2cd0433c99303b8934993b2fd2aa1c6e',1,'Eule::Vector4::SqrMagnitude()']]] -]; diff --git a/Doxygen/build/search/functions_c.html b/Doxygen/build/search/functions_c.html deleted file mode 100644 index 858bfd6..0000000 --- a/Doxygen/build/search/functions_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_c.js b/Doxygen/build/search/functions_c.js deleted file mode 100644 index aa4b298..0000000 --- a/Doxygen/build/search/functions_c.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['todouble_239',['ToDouble',['../classEule_1_1Vector2.html#a2f7e2f5eb22ab04166cbaa0aca6dfb20',1,'Eule::Vector2::ToDouble()'],['../classEule_1_1Vector3.html#a04560b5fa992b7fa455fc4d406928df8',1,'Eule::Vector3::ToDouble()'],['../classEule_1_1Vector4.html#a267ad7bfad5ea8f6f8c001cee817c54e',1,'Eule::Vector4::ToDouble()']]], - ['toeulerangles_240',['ToEulerAngles',['../classEule_1_1Quaternion.html#a5a6349cb3e0a0c73df527e9ba907b0da',1,'Eule::Quaternion']]], - ['toint_241',['ToInt',['../classEule_1_1Vector2.html#a078a567a49b6d02fb8dce79885b4c2e9',1,'Eule::Vector2::ToInt()'],['../classEule_1_1Vector3.html#a0510707e23eb81c4a799dffc7b0ce127',1,'Eule::Vector3::ToInt()'],['../classEule_1_1Vector4.html#a53244995fd4f19de4e740b47aec029a3',1,'Eule::Vector4::ToInt()']]], - ['torotationmatrix_242',['ToRotationMatrix',['../classEule_1_1Quaternion.html#aedb36036ee6a39fb97c5d2ba12b5d986',1,'Eule::Quaternion']]], - ['transpose3x3_243',['Transpose3x3',['../classEule_1_1Matrix4x4.html#a410b88abff7991d9faa3f818efd6807d',1,'Eule::Matrix4x4']]], - ['transpose4x4_244',['Transpose4x4',['../classEule_1_1Matrix4x4.html#af454812ef8205562e14ee094ce7172b1',1,'Eule::Matrix4x4']]], - ['trapazoidalprismcollider_245',['TrapazoidalPrismCollider',['../classEule_1_1TrapazoidalPrismCollider.html#a787c22d1c84b74dd078a2d3d6d76ee34',1,'Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider()'],['../classEule_1_1TrapazoidalPrismCollider.html#acc761aadc1b6421db75eea36d5d722d1',1,'Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider(const TrapazoidalPrismCollider &other)=default'],['../classEule_1_1TrapazoidalPrismCollider.html#aad0faabb1b27478320da6d2fa44f034b',1,'Eule::TrapazoidalPrismCollider::TrapazoidalPrismCollider(TrapazoidalPrismCollider &&other) noexcept=default']]] -]; diff --git a/Doxygen/build/search/functions_d.html b/Doxygen/build/search/functions_d.html deleted file mode 100644 index 2f09f51..0000000 --- a/Doxygen/build/search/functions_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_d.js b/Doxygen/build/search/functions_d.js deleted file mode 100644 index a993048..0000000 --- a/Doxygen/build/search/functions_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['unitquaternion_246',['UnitQuaternion',['../classEule_1_1Quaternion.html#affb1a8ac42e356ee5efb304ca8df38ca',1,'Eule::Quaternion']]] -]; diff --git a/Doxygen/build/search/functions_e.html b/Doxygen/build/search/functions_e.html deleted file mode 100644 index ee5afa6..0000000 --- a/Doxygen/build/search/functions_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_e.js b/Doxygen/build/search/functions_e.js deleted file mode 100644 index 799c564..0000000 --- a/Doxygen/build/search/functions_e.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['vector2_247',['Vector2',['../classEule_1_1Vector2.html#a99b4d19728ca8577413ccba9cecc5948',1,'Eule::Vector2::Vector2()'],['../classEule_1_1Vector2.html#ad106a7fa36501663af6959f17b317c9f',1,'Eule::Vector2::Vector2(T _x, T _y)'],['../classEule_1_1Vector2.html#af5b98f03dae0721f155eee4ef2babc8d',1,'Eule::Vector2::Vector2(const Vector2< T > &other)=default'],['../classEule_1_1Vector2.html#a3a37db279577d277c890abe282951cb4',1,'Eule::Vector2::Vector2(Vector2< T > &&other) noexcept=default']]], - ['vector3_248',['Vector3',['../classEule_1_1Vector3.html#abba435897a7050d8c111d703c5bb3eb8',1,'Eule::Vector3::Vector3()'],['../classEule_1_1Vector3.html#ab43c649b5f80f80660ce83a28697f1e9',1,'Eule::Vector3::Vector3(T _x, T _y, T _z)'],['../classEule_1_1Vector3.html#ac485bad4d2a077e0ab2a2bc68e223740',1,'Eule::Vector3::Vector3(const Vector3< T > &other)=default'],['../classEule_1_1Vector3.html#a9c6dc41aad5e44f30baad3c3864148b8',1,'Eule::Vector3::Vector3(Vector3< T > &&other) noexcept=default']]], - ['vector4_249',['Vector4',['../classEule_1_1Vector4.html#ad49c5d39b5478aefea2acfe65bd59393',1,'Eule::Vector4::Vector4()'],['../classEule_1_1Vector4.html#aaa8aa9abea8ad8dde3aaa2de27ac2391',1,'Eule::Vector4::Vector4(T _x, T _y, T _z, T _w)'],['../classEule_1_1Vector4.html#aa47cf18eb55ec51c7dd0a95794d7230d',1,'Eule::Vector4::Vector4(const Vector4< T > &other)=default'],['../classEule_1_1Vector4.html#a9c9e20e38663621063f2437965fac438',1,'Eule::Vector4::Vector4(Vector4< T > &&other) noexcept=default']]], - ['vectorscale_250',['VectorScale',['../classEule_1_1Vector2.html#a5c7eb6afd348c8409f856d398593713e',1,'Eule::Vector2::VectorScale()'],['../classEule_1_1Vector3.html#afbfdd011a51ae697bdf0d297f2f6aa95',1,'Eule::Vector3::VectorScale()'],['../classEule_1_1Vector4.html#ae24537cb41abb4365a22fe3b07869b85',1,'Eule::Vector4::VectorScale()']]] -]; diff --git a/Doxygen/build/search/functions_f.html b/Doxygen/build/search/functions_f.html deleted file mode 100644 index f17c412..0000000 --- a/Doxygen/build/search/functions_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/functions_f.js b/Doxygen/build/search/functions_f.js deleted file mode 100644 index 878c21e..0000000 --- a/Doxygen/build/search/functions_f.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['_7equaternion_251',['~Quaternion',['../classEule_1_1Quaternion.html#a5f834c2ca469cd71edc8a23fdc3f56e8',1,'Eule::Quaternion']]] -]; diff --git a/Doxygen/build/search/mag_sel.png b/Doxygen/build/search/mag_sel.png deleted file mode 100644 index 39c0ed5..0000000 Binary files a/Doxygen/build/search/mag_sel.png and /dev/null differ diff --git a/Doxygen/build/search/namespaces_0.html b/Doxygen/build/search/namespaces_0.html deleted file mode 100644 index 76996d1..0000000 --- a/Doxygen/build/search/namespaces_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/namespaces_0.js b/Doxygen/build/search/namespaces_0.js deleted file mode 100644 index f4abf6f..0000000 --- a/Doxygen/build/search/namespaces_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['eule_159',['Eule',['../namespaceEule.html',1,'']]] -]; diff --git a/Doxygen/build/search/nomatches.html b/Doxygen/build/search/nomatches.html deleted file mode 100644 index 4377320..0000000 --- a/Doxygen/build/search/nomatches.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - -
    -
    No Matches
    -
    - - diff --git a/Doxygen/build/search/related_0.html b/Doxygen/build/search/related_0.html deleted file mode 100644 index bbe15fa..0000000 --- a/Doxygen/build/search/related_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/related_0.js b/Doxygen/build/search/related_0.js deleted file mode 100644 index 2f93a78..0000000 --- a/Doxygen/build/search/related_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['operator_3c_3c_299',['operator<<',['../classEule_1_1Matrix4x4.html#ab4da4b366d5d0a7bbe890aff1f2445df',1,'Eule::Matrix4x4::operator<<()'],['../classEule_1_1Matrix4x4.html#a4edddbe2b7f5913d67bb90a4d28f44e3',1,'Eule::Matrix4x4::operator<<()'],['../classEule_1_1Quaternion.html#a9dc71eaedf4486dc005fa9a67c6da866',1,'Eule::Quaternion::operator<<()'],['../classEule_1_1Quaternion.html#a7cf5f94ea6e861b3c01f674d7ef987c7',1,'Eule::Quaternion::operator<<()'],['../classEule_1_1Vector2.html#aa89ba3c2ae7a53a25530d3eef6a3c4e3',1,'Eule::Vector2::operator<<()'],['../classEule_1_1Vector2.html#a7ae9f5fa7ea5f9e9ae4ba0dca0a8494b',1,'Eule::Vector2::operator<<()'],['../classEule_1_1Vector3.html#a5705993a4489fc62d73b85f3654261cf',1,'Eule::Vector3::operator<<()'],['../classEule_1_1Vector3.html#a062adbc281326979ec3f5f71052d0deb',1,'Eule::Vector3::operator<<()'],['../classEule_1_1Vector4.html#a67f776474e56594e4973be32df68602a',1,'Eule::Vector4::operator<<()'],['../classEule_1_1Vector4.html#a111187ac1ffc14d4aa33d85a14645870',1,'Eule::Vector4::operator<<()']]] -]; diff --git a/Doxygen/build/search/search.css b/Doxygen/build/search/search.css deleted file mode 100644 index 3cf9df9..0000000 --- a/Doxygen/build/search/search.css +++ /dev/null @@ -1,271 +0,0 @@ -/*---------------- Search Box */ - -#FSearchBox { - float: left; -} - -#MSearchBox { - white-space : nowrap; - float: none; - margin-top: 8px; - right: 0px; - width: 170px; - height: 24px; - z-index: 102; -} - -#MSearchBox .left -{ - display:block; - position:absolute; - left:10px; - width:20px; - height:19px; - background:url('search_l.png') no-repeat; - background-position:right; -} - -#MSearchSelect { - display:block; - position:absolute; - width:20px; - height:19px; -} - -.left #MSearchSelect { - left:4px; -} - -.right #MSearchSelect { - right:5px; -} - -#MSearchField { - display:block; - position:absolute; - height:19px; - background:url('search_m.png') repeat-x; - border:none; - width:115px; - margin-left:20px; - padding-left:4px; - color: #909090; - outline: none; - font: 9pt Arial, Verdana, sans-serif; - -webkit-border-radius: 0px; -} - -#FSearchBox #MSearchField { - margin-left:15px; -} - -#MSearchBox .right { - display:block; - position:absolute; - right:10px; - top:8px; - width:20px; - height:19px; - background:url('search_r.png') no-repeat; - background-position:left; -} - -#MSearchClose { - display: none; - position: absolute; - top: 4px; - background : none; - border: none; - margin: 0px 4px 0px 0px; - padding: 0px 0px; - outline: none; -} - -.left #MSearchClose { - left: 6px; -} - -.right #MSearchClose { - right: 2px; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; - z-index:10000; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; -} - -.SRResult { - display: none; -} - -DIV.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/Doxygen/build/search/search.js b/Doxygen/build/search/search.js deleted file mode 100644 index a554ab9..0000000 --- a/Doxygen/build/search/search.js +++ /dev/null @@ -1,814 +0,0 @@ -/* - @licstart The following is the entire license notice for the - JavaScript code in this file. - - Copyright (C) 1997-2017 by Dimitri van Heesch - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - @licend The above is the entire license notice - for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches.html'; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName == 'DIV' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName == 'DIV' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; e - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/typedefs_0.js b/Doxygen/build/search/typedefs_0.js deleted file mode 100644 index c71a595..0000000 --- a/Doxygen/build/search/typedefs_0.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['vector2d_293',['Vector2d',['../namespaceEule.html#ad2b14d99a3b97a954d09be46e86fa554',1,'Eule']]], - ['vector2i_294',['Vector2i',['../namespaceEule.html#a4b8529f841686a41ce0423f3610f0779',1,'Eule']]], - ['vector3d_295',['Vector3d',['../namespaceEule.html#afc45246550a85134cf500caa2b81061a',1,'Eule']]], - ['vector3i_296',['Vector3i',['../namespaceEule.html#a2ee0ef456d32068e4f9b8355ca47acd7',1,'Eule']]], - ['vector4d_297',['Vector4d',['../namespaceEule.html#ab1f7f26891b56b960ca6cca5cc1cc44e',1,'Eule']]], - ['vector4i_298',['Vector4i',['../namespaceEule.html#aea48fbceb33833fc808355c9eec721bb',1,'Eule']]] -]; diff --git a/Doxygen/build/search/variables_0.html b/Doxygen/build/search/variables_0.html deleted file mode 100644 index bf3eba5..0000000 --- a/Doxygen/build/search/variables_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_0.js b/Doxygen/build/search/variables_0.js deleted file mode 100644 index 48072d3..0000000 --- a/Doxygen/build/search/variables_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['a_252',['a',['../classEule_1_1Matrix4x4.html#ab3ff5bc09a2598faa76188d0cc31addb',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_1.html b/Doxygen/build/search/variables_1.html deleted file mode 100644 index 49fe59a..0000000 --- a/Doxygen/build/search/variables_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_1.js b/Doxygen/build/search/variables_1.js deleted file mode 100644 index 3cad474..0000000 --- a/Doxygen/build/search/variables_1.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['b_253',['b',['../classEule_1_1Matrix4x4.html#a2258f9cce9558711c59ffcf140a39756',1,'Eule::Matrix4x4']]], - ['back_254',['BACK',['../classEule_1_1TrapazoidalPrismCollider.html#a756f4bcb931dd6381901362e51410da9',1,'Eule::TrapazoidalPrismCollider']]], - ['backward_255',['backward',['../classEule_1_1Vector3.html#a34083239eb29eaf4614d09d4d7014b06',1,'Eule::Vector3::backward()'],['../classEule_1_1Vector4.html#a59d02244dbcd06b9d3f09da75128242e',1,'Eule::Vector4::backward()']]], - ['bottom_256',['BOTTOM',['../classEule_1_1TrapazoidalPrismCollider.html#a7f7594171358bbc10680e2dc42f1b53d',1,'Eule::TrapazoidalPrismCollider']]] -]; diff --git a/Doxygen/build/search/variables_10.html b/Doxygen/build/search/variables_10.html deleted file mode 100644 index 92982ac..0000000 --- a/Doxygen/build/search/variables_10.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_10.js b/Doxygen/build/search/variables_10.js deleted file mode 100644 index ff30ac6..0000000 --- a/Doxygen/build/search/variables_10.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['rad2deg_282',['Rad2Deg',['../Constants_8h.html#afa51234d581318384aacb84a195c3a2b',1,'Constants.h']]], - ['right_283',['right',['../classEule_1_1Vector2.html#a594b062e78cb2e92dbb533a435258f49',1,'Eule::Vector2::right()'],['../classEule_1_1Vector3.html#a1febd6152b8964147229242630b8c8f0',1,'Eule::Vector3::right()'],['../classEule_1_1Vector4.html#a4701bae8f20522fe93575e8909478f36',1,'Eule::Vector4::right()'],['../classEule_1_1TrapazoidalPrismCollider.html#a67a468becb53ca0d50e8da3daab98b85',1,'Eule::TrapazoidalPrismCollider::RIGHT()']]] -]; diff --git a/Doxygen/build/search/variables_11.html b/Doxygen/build/search/variables_11.html deleted file mode 100644 index 94f1a8c..0000000 --- a/Doxygen/build/search/variables_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_11.js b/Doxygen/build/search/variables_11.js deleted file mode 100644 index 21d2852..0000000 --- a/Doxygen/build/search/variables_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['size_284',['size',['../structEule_1_1Rect.html#a330821ad2e2fbffe4575783619923f8d',1,'Eule::Rect']]] -]; diff --git a/Doxygen/build/search/variables_12.html b/Doxygen/build/search/variables_12.html deleted file mode 100644 index 61c013a..0000000 --- a/Doxygen/build/search/variables_12.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_12.js b/Doxygen/build/search/variables_12.js deleted file mode 100644 index f642bb8..0000000 --- a/Doxygen/build/search/variables_12.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['top_285',['TOP',['../classEule_1_1TrapazoidalPrismCollider.html#a09b3433cb41848fd166fc9c7614aff7e',1,'Eule::TrapazoidalPrismCollider']]] -]; diff --git a/Doxygen/build/search/variables_13.html b/Doxygen/build/search/variables_13.html deleted file mode 100644 index 87b7ca6..0000000 --- a/Doxygen/build/search/variables_13.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_13.js b/Doxygen/build/search/variables_13.js deleted file mode 100644 index 538bf84..0000000 --- a/Doxygen/build/search/variables_13.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['up_286',['up',['../classEule_1_1Vector2.html#a010bbbc9de53adcc00ffe1565c3a8208',1,'Eule::Vector2::up()'],['../classEule_1_1Vector3.html#a7508f8b060773b00cd40df94d628d7b6',1,'Eule::Vector3::up()'],['../classEule_1_1Vector4.html#a9a8c5882154587b3e34ae308466f98a5',1,'Eule::Vector4::up()']]] -]; diff --git a/Doxygen/build/search/variables_14.html b/Doxygen/build/search/variables_14.html deleted file mode 100644 index 874fe59..0000000 --- a/Doxygen/build/search/variables_14.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_14.js b/Doxygen/build/search/variables_14.js deleted file mode 100644 index 818d246..0000000 --- a/Doxygen/build/search/variables_14.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['v_287',['v',['../classEule_1_1Matrix4x4.html#a6cf89fe3ccd64d362a1d4c6ea77ff660',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_15.html b/Doxygen/build/search/variables_15.html deleted file mode 100644 index 3ca8799..0000000 --- a/Doxygen/build/search/variables_15.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_15.js b/Doxygen/build/search/variables_15.js deleted file mode 100644 index c6a6a00..0000000 --- a/Doxygen/build/search/variables_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['w_288',['w',['../classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e',1,'Eule::Vector4']]] -]; diff --git a/Doxygen/build/search/variables_16.html b/Doxygen/build/search/variables_16.html deleted file mode 100644 index 2b5a433..0000000 --- a/Doxygen/build/search/variables_16.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_16.js b/Doxygen/build/search/variables_16.js deleted file mode 100644 index 3136ef1..0000000 --- a/Doxygen/build/search/variables_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['x_289',['x',['../classEule_1_1Vector2.html#acca020e7957a9b7b2682f2df496bcdb7',1,'Eule::Vector2::x()'],['../classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b',1,'Eule::Vector3::x()'],['../classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf',1,'Eule::Vector4::x()']]] -]; diff --git a/Doxygen/build/search/variables_17.html b/Doxygen/build/search/variables_17.html deleted file mode 100644 index 16914b7..0000000 --- a/Doxygen/build/search/variables_17.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_17.js b/Doxygen/build/search/variables_17.js deleted file mode 100644 index 97b24b7..0000000 --- a/Doxygen/build/search/variables_17.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['y_290',['y',['../classEule_1_1Vector2.html#a077434c60e04b051347a43ce26fbdbc9',1,'Eule::Vector2::y()'],['../classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146',1,'Eule::Vector3::y()'],['../classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9',1,'Eule::Vector4::y()']]] -]; diff --git a/Doxygen/build/search/variables_18.html b/Doxygen/build/search/variables_18.html deleted file mode 100644 index 782b3bf..0000000 --- a/Doxygen/build/search/variables_18.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_18.js b/Doxygen/build/search/variables_18.js deleted file mode 100644 index bf252d8..0000000 --- a/Doxygen/build/search/variables_18.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['z_291',['z',['../classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674',1,'Eule::Vector3::z()'],['../classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0',1,'Eule::Vector4::z()']]], - ['zero_292',['zero',['../classEule_1_1Vector2.html#a44cd63661b38477ebd67c9eb20369e7c',1,'Eule::Vector2::zero()'],['../classEule_1_1Vector3.html#a1f0b4bb9f5533e3a134310d702bbfb33',1,'Eule::Vector3::zero()'],['../classEule_1_1Vector4.html#adf801d37181ff33a920f31536337ca07',1,'Eule::Vector4::zero()']]] -]; diff --git a/Doxygen/build/search/variables_2.html b/Doxygen/build/search/variables_2.html deleted file mode 100644 index 0c8a18c..0000000 --- a/Doxygen/build/search/variables_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_2.js b/Doxygen/build/search/variables_2.js deleted file mode 100644 index eefa6a0..0000000 --- a/Doxygen/build/search/variables_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['c_257',['c',['../classEule_1_1Matrix4x4.html#a68920de2728741859aa7cb3d245aa2c3',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_3.html b/Doxygen/build/search/variables_3.html deleted file mode 100644 index 19a31fc..0000000 --- a/Doxygen/build/search/variables_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_3.js b/Doxygen/build/search/variables_3.js deleted file mode 100644 index f52ff39..0000000 --- a/Doxygen/build/search/variables_3.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['d_258',['d',['../classEule_1_1Matrix4x4.html#a7f21115e0597a25fbdb4d9784de0c988',1,'Eule::Matrix4x4']]], - ['deg2rad_259',['Deg2Rad',['../Constants_8h.html#a0688d82670a3ba9d40853859003c64df',1,'Constants.h']]], - ['down_260',['down',['../classEule_1_1Vector2.html#a7e60489f914c01c98839333dd41d8a49',1,'Eule::Vector2::down()'],['../classEule_1_1Vector3.html#ac44e82051be457c78f6428859482f848',1,'Eule::Vector3::down()'],['../classEule_1_1Vector4.html#a0f00c430129cb8edfb9c96693c39ab73',1,'Eule::Vector4::down()']]] -]; diff --git a/Doxygen/build/search/variables_4.html b/Doxygen/build/search/variables_4.html deleted file mode 100644 index bdc37be..0000000 --- a/Doxygen/build/search/variables_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_4.js b/Doxygen/build/search/variables_4.js deleted file mode 100644 index f11470b..0000000 --- a/Doxygen/build/search/variables_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['e_261',['e',['../classEule_1_1Matrix4x4.html#a19fb1d47aea5672da2fe1fc20500615a',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_5.html b/Doxygen/build/search/variables_5.html deleted file mode 100644 index 6aa2249..0000000 --- a/Doxygen/build/search/variables_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_5.js b/Doxygen/build/search/variables_5.js deleted file mode 100644 index 684dd04..0000000 --- a/Doxygen/build/search/variables_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['f_262',['f',['../classEule_1_1Matrix4x4.html#a47b0d5273289c602f1ab4d3b963fe267',1,'Eule::Matrix4x4']]], - ['forward_263',['forward',['../classEule_1_1Vector3.html#a791d893f68f2aee85287ab3ab7612ff0',1,'Eule::Vector3::forward()'],['../classEule_1_1Vector4.html#a9ec10cf10c0edb934169211ad7fef821',1,'Eule::Vector4::forward()']]], - ['front_264',['FRONT',['../classEule_1_1TrapazoidalPrismCollider.html#ad8648ff086e60e5cae763c14b72cd8fd',1,'Eule::TrapazoidalPrismCollider']]], - ['future_265',['future',['../classEule_1_1Vector4.html#afefa0db0ba202f63e338506fd21a61e9',1,'Eule::Vector4']]] -]; diff --git a/Doxygen/build/search/variables_6.html b/Doxygen/build/search/variables_6.html deleted file mode 100644 index ce4a906..0000000 --- a/Doxygen/build/search/variables_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_6.js b/Doxygen/build/search/variables_6.js deleted file mode 100644 index b06a20e..0000000 --- a/Doxygen/build/search/variables_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['g_266',['g',['../classEule_1_1Matrix4x4.html#a1519f79fbfd4f33a0718ffc030fb6706',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_7.html b/Doxygen/build/search/variables_7.html deleted file mode 100644 index 39ffd47..0000000 --- a/Doxygen/build/search/variables_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_7.js b/Doxygen/build/search/variables_7.js deleted file mode 100644 index b68c935..0000000 --- a/Doxygen/build/search/variables_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['h_267',['h',['../classEule_1_1Matrix4x4.html#ac48433ef3faa767919938e56803bfc41',1,'Eule::Matrix4x4']]], - ['half_5fpi_268',['HALF_PI',['../Constants_8h.html#ad0661cafa18be7ccadefb27b6b809264',1,'Constants.h']]] -]; diff --git a/Doxygen/build/search/variables_8.html b/Doxygen/build/search/variables_8.html deleted file mode 100644 index 37a2edd..0000000 --- a/Doxygen/build/search/variables_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_8.js b/Doxygen/build/search/variables_8.js deleted file mode 100644 index 76fa13c..0000000 --- a/Doxygen/build/search/variables_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['i_269',['i',['../classEule_1_1Matrix4x4.html#afb1b52d2d395e1d4a099556fac3918dc',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_9.html b/Doxygen/build/search/variables_9.html deleted file mode 100644 index 21e5a4f..0000000 --- a/Doxygen/build/search/variables_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_9.js b/Doxygen/build/search/variables_9.js deleted file mode 100644 index 40318bc..0000000 --- a/Doxygen/build/search/variables_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['j_270',['j',['../classEule_1_1Matrix4x4.html#a6ad97bdfe3f070fd4d1d0ebc2ee1309a',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_a.html b/Doxygen/build/search/variables_a.html deleted file mode 100644 index 1f65055..0000000 --- a/Doxygen/build/search/variables_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_a.js b/Doxygen/build/search/variables_a.js deleted file mode 100644 index 01b0687..0000000 --- a/Doxygen/build/search/variables_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['k_271',['k',['../classEule_1_1Matrix4x4.html#af93a84acffc7d5282653b7b591633874',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_b.html b/Doxygen/build/search/variables_b.html deleted file mode 100644 index c02d066..0000000 --- a/Doxygen/build/search/variables_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_b.js b/Doxygen/build/search/variables_b.js deleted file mode 100644 index bac0f68..0000000 --- a/Doxygen/build/search/variables_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['l_272',['l',['../classEule_1_1Matrix4x4.html#a9a18b42500a1f9c551c7f27039cb6a67',1,'Eule::Matrix4x4']]], - ['left_273',['left',['../classEule_1_1Vector2.html#a4ad2191854a9fdbc8dae0967b3a48be5',1,'Eule::Vector2::left()'],['../classEule_1_1Vector3.html#a37949a2f74ceb05ea1797be34c42989a',1,'Eule::Vector3::left()'],['../classEule_1_1Vector4.html#a354e05fd3b3a38b530258b3247c544d1',1,'Eule::Vector4::left()'],['../classEule_1_1TrapazoidalPrismCollider.html#a2d1fb0b58a8562c1869a8dbef330c22b',1,'Eule::TrapazoidalPrismCollider::LEFT()']]] -]; diff --git a/Doxygen/build/search/variables_c.html b/Doxygen/build/search/variables_c.html deleted file mode 100644 index 4b866c6..0000000 --- a/Doxygen/build/search/variables_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_c.js b/Doxygen/build/search/variables_c.js deleted file mode 100644 index 0c73cd5..0000000 --- a/Doxygen/build/search/variables_c.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['m_274',['m',['../classEule_1_1Matrix4x4.html#a337d6bb2a36f36cd4620cdd35555893d',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_d.html b/Doxygen/build/search/variables_d.html deleted file mode 100644 index 84d878b..0000000 --- a/Doxygen/build/search/variables_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_d.js b/Doxygen/build/search/variables_d.js deleted file mode 100644 index 5a64e0a..0000000 --- a/Doxygen/build/search/variables_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['n_275',['n',['../classEule_1_1Matrix4x4.html#a4d6df21744055ee87479591b619af33d',1,'Eule::Matrix4x4']]] -]; diff --git a/Doxygen/build/search/variables_e.html b/Doxygen/build/search/variables_e.html deleted file mode 100644 index b0d9b7b..0000000 --- a/Doxygen/build/search/variables_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_e.js b/Doxygen/build/search/variables_e.js deleted file mode 100644 index c61865f..0000000 --- a/Doxygen/build/search/variables_e.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['o_276',['o',['../classEule_1_1Matrix4x4.html#a9e813c2000f912ba2b16ea19d387565b',1,'Eule::Matrix4x4']]], - ['one_277',['one',['../classEule_1_1Vector2.html#a2651455a1339e1d61151538f986aa19b',1,'Eule::Vector2::one()'],['../classEule_1_1Vector3.html#a46a389aa258dc615650ffd7e98e3e482',1,'Eule::Vector3::one()'],['../classEule_1_1Vector4.html#a41087d79654271a580c8e5705825b2ed',1,'Eule::Vector4::one()']]] -]; diff --git a/Doxygen/build/search/variables_f.html b/Doxygen/build/search/variables_f.html deleted file mode 100644 index a708dbf..0000000 --- a/Doxygen/build/search/variables_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/Doxygen/build/search/variables_f.js b/Doxygen/build/search/variables_f.js deleted file mode 100644 index 785ded9..0000000 --- a/Doxygen/build/search/variables_f.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['p_278',['p',['../classEule_1_1Matrix4x4.html#a3fdccd317c5ea363b91f6d8096b28bd7',1,'Eule::Matrix4x4']]], - ['past_279',['past',['../classEule_1_1Vector4.html#a5533bb69dbc4714fd53aaf1e0db9bf99',1,'Eule::Vector4']]], - ['pi_280',['PI',['../Constants_8h.html#a299aabc5fc8285cbf99025330a3d0d0d',1,'Constants.h']]], - ['pos_281',['pos',['../structEule_1_1Rect.html#a8013088ed66af106df10acd7ded49bc7',1,'Eule::Rect']]] -]; diff --git a/Doxygen/build/splitbar.png b/Doxygen/build/splitbar.png deleted file mode 100644 index fe895f2..0000000 Binary files a/Doxygen/build/splitbar.png and /dev/null differ diff --git a/Doxygen/build/structEule_1_1Rect-members.html b/Doxygen/build/structEule_1_1Rect-members.html deleted file mode 100644 index fee6b52..0000000 --- a/Doxygen/build/structEule_1_1Rect-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -Leonetienne/Eule: Member List - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    Eule::Rect Member List
    -
    -
    - -

    This is the complete list of members for Eule::Rect, including all inherited members.

    - - - -
    posEule::Rect
    sizeEule::Rect
    - - - - diff --git a/Doxygen/build/structEule_1_1Rect.html b/Doxygen/build/structEule_1_1Rect.html deleted file mode 100644 index c39ac54..0000000 --- a/Doxygen/build/structEule_1_1Rect.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule::Rect Struct Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    Eule::Rect Struct Reference
    -
    -
    - -

    Trivial data structure representing a rectangle. - More...

    - -

    #include <Rect.h>

    -
    -Collaboration diagram for Eule::Rect:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - - - -

    -Public Attributes

    Vector2d pos
     
    Vector2d size
     
    -

    Detailed Description

    -

    Trivial data structure representing a rectangle.

    - -

    Definition at line 8 of file Rect.h.

    -

    Member Data Documentation

    - -

    ◆ pos

    - -
    -
    - - - - -
    Vector2d Eule::Rect::pos
    -
    - -

    Definition at line 10 of file Rect.h.

    - -
    -
    - -

    ◆ size

    - -
    -
    - - - - -
    Vector2d Eule::Rect::size
    -
    - -

    Definition at line 11 of file Rect.h.

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/Doxygen/build/structEule_1_1Rect__coll__graph.map b/Doxygen/build/structEule_1_1Rect__coll__graph.map deleted file mode 100644 index 3926881..0000000 --- a/Doxygen/build/structEule_1_1Rect__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Doxygen/build/structEule_1_1Rect__coll__graph.md5 b/Doxygen/build/structEule_1_1Rect__coll__graph.md5 deleted file mode 100644 index 885022f..0000000 --- a/Doxygen/build/structEule_1_1Rect__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -58b51022f8ff2d02cc635fbfc909c27e \ No newline at end of file diff --git a/Doxygen/build/structEule_1_1Rect__coll__graph.png b/Doxygen/build/structEule_1_1Rect__coll__graph.png deleted file mode 100644 index 4131c5b..0000000 Binary files a/Doxygen/build/structEule_1_1Rect__coll__graph.png and /dev/null differ diff --git a/Doxygen/build/sync_off.png b/Doxygen/build/sync_off.png deleted file mode 100644 index 3b443fc..0000000 Binary files a/Doxygen/build/sync_off.png and /dev/null differ diff --git a/Doxygen/build/sync_on.png b/Doxygen/build/sync_on.png deleted file mode 100644 index e08320f..0000000 Binary files a/Doxygen/build/sync_on.png and /dev/null differ diff --git a/Doxygen/build/tab_a.png b/Doxygen/build/tab_a.png deleted file mode 100644 index 3b725c4..0000000 Binary files a/Doxygen/build/tab_a.png and /dev/null differ diff --git a/Doxygen/build/tab_b.png b/Doxygen/build/tab_b.png deleted file mode 100644 index e2b4a86..0000000 Binary files a/Doxygen/build/tab_b.png and /dev/null differ diff --git a/Doxygen/build/tab_h.png b/Doxygen/build/tab_h.png deleted file mode 100644 index fd5cb70..0000000 Binary files a/Doxygen/build/tab_h.png and /dev/null differ diff --git a/Doxygen/build/tab_s.png b/Doxygen/build/tab_s.png deleted file mode 100644 index ab478c9..0000000 Binary files a/Doxygen/build/tab_s.png and /dev/null differ diff --git a/Doxygen/build/tabs.css b/Doxygen/build/tabs.css deleted file mode 100644 index 7d45d36..0000000 --- a/Doxygen/build/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/Doxygen/build/version_8h.html b/Doxygen/build/version_8h.html deleted file mode 100644 index a948933..0000000 --- a/Doxygen/build/version_8h.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/version.h File Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    version.h File Reference
    -
    - - - - - diff --git a/Doxygen/build/version_8h_source.html b/Doxygen/build/version_8h_source.html deleted file mode 100644 index 15a4602..0000000 --- a/Doxygen/build/version_8h_source.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/version.h Source File - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    version.h
    -
    -
    -Go to the documentation of this file.
    1 #pragma once
    -
    2 #define EULE_VERSION (0.1)
    -
    - - - - diff --git a/Doxygen/build/x64_2Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html b/Doxygen/build/x64_2Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html deleted file mode 100644 index 9886e6e..0000000 --- a/Doxygen/build/x64_2Debug_2Eule_8vcxproj_8FileListAbsolute_8txt.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/x64/Debug/Eule.vcxproj.FileListAbsolute.txt File Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    Eule/x64/Debug/Eule.vcxproj.FileListAbsolute.txt File Reference
    -
    -
    -
    - - - - diff --git a/Doxygen/build/x64_2Release_2Eule_8vcxproj_8FileListAbsolute_8txt.html b/Doxygen/build/x64_2Release_2Eule_8vcxproj_8FileListAbsolute_8txt.html deleted file mode 100644 index 75a8c88..0000000 --- a/Doxygen/build/x64_2Release_2Eule_8vcxproj_8FileListAbsolute_8txt.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -Leonetienne/Eule: Eule/x64/Release/Eule.vcxproj.FileListAbsolute.txt File Reference - - - - - - - - - - - -
    -
    - - - - - - -
    -
    Leonetienne/Eule -
    -
    Homemade math library, mainly targetted towards computer graphics
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    Eule/x64/Release/Eule.vcxproj.FileListAbsolute.txt File Reference
    -
    -
    -
    - - - -