diff --git a/include/doorkeeper/implem/vector.hpp b/include/doorkeeper/implem/vector.hpp
deleted file mode 100644
index 6f1d42f..0000000
--- a/include/doorkeeper/implem/vector.hpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- Copyright 2014 Michele "King_DuckZ" Santullo
-
- This file is part of CloonelJump.
-
- CloonelJump 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 3 of the License, or
- (at your option) any later version.
-
- CloonelJump 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 CloonelJump. If not, see .
-*/
-
-#ifndef idid0528646832E04CF08E9785B66CFE0BD1
-#define idid0528646832E04CF08E9785B66CFE0BD1
-
-#include "compatibility.h"
-#include
-#include
-#include
-#include
-#include
-
-#if defined(WITH_VECTOR_IOSTREAM)
-#include
-#endif
-
-#if defined(__INTEL_COMPILER)
-# define DONT_GUESS_NOEXCEPT
-#endif
-
-namespace cloonel {
- template
- class Vector {
- template friend class Vector;
- public:
- typedef T value_type;
-
-#if defined(DONT_GUESS_NOEXCEPT)
- Vector ( void ) = default;
- explicit Vector ( T parValue );
- template explicit Vector ( const Vector& parOther );
-#else
- Vector ( void ) noexcept(noexcept(T())) = default;
- explicit Vector ( T parValue ) noexcept(noexcept(T()) && noexcept(parValue=parValue));
- template explicit Vector ( const Vector& parOther ) noexcept(noexcept(T()) && noexcept(const_cast(parOther.m_mem[0])=T()));
-#endif
- template > Vector ( T parX, T parY ) noexcept : m_mem {parX, parY} {}
- template > Vector ( T parX, T parY, T parZ ) noexcept : m_mem {parX, parY, parZ} {}
- template > Vector ( T parX, T parY, T parZ, T parW ) noexcept : m_mem {parX, parY, parZ, parW} {}
-
- ~Vector ( void ) noexcept = default;
-
- enum {
- Dimension = S
- };
-
- template = S> > T& x ( void ) { return m_mem[0]; }
- template = S> > const T& x ( void ) const { return m_mem[0]; }
- template = 2 and 4 >= S> > T& y ( void ) { return m_mem[1]; }
- template = 2 and 4 >= S> > const T& y ( void ) const { return m_mem[1]; }
- template = 3 and 4 >= S> > T& z ( void ) { return m_mem[2]; }
- template = 3 and 4 >= S> > const T& z ( void ) const { return m_mem[2]; }
- template = 4 and 4 >= S> > T& w ( void ) { return m_mem[3]; }
- template = 4 and 4 >= S> > const T& w ( void ) const { return m_mem[3]; }
-
- template const Vector& operator+= ( const Vector& parOther );
- template const Vector& operator-= ( const Vector& parOther );
- template const Vector& operator*= ( const Vector& parOther );
- template const Vector& operator/= ( const Vector& parOther );
- template const Vector& operator+= ( U parOther );
- template const Vector& operator-= ( U parOther );
- template const Vector& operator*= ( U parOther );
- template const Vector& operator/= ( U parOther );
-
- T& operator[] ( uint32_t parIndex ) { assert(parIndex < S); return m_mem[parIndex]; }
- const T& operator[] ( uint32_t parIndex ) const { assert(parIndex < S); return m_mem[parIndex]; }
-
- private:
- T m_mem[S];
- };
-
- template
- Vector::type, S> operator+ ( const Vector& parA, const Vector& parB ) a_pure;
- template
- Vector::type, S> operator- ( const Vector& parA, const Vector& parB ) a_pure;
- template
- Vector::type, S> operator* ( const Vector& parA, const Vector& parB ) a_pure;
- template
- Vector::type, S> operator/ ( const Vector& parA, const Vector& parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator+ ( U parA, const Vector& parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator- ( U parA, const Vector& parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator* ( U parA, const Vector& parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator/ ( U parA, const Vector& parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator+ ( const Vector& parA, U parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator- ( const Vector& parA, U parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator* ( const Vector& parA, U parB ) a_pure;
- template ::value>::type>
- Vector::type, S> operator/ ( const Vector& parA, U parB ) a_pure;
-
- template
- bool operator< ( const Vector& parA, const Vector& parB ) a_pure;
- template
- bool operator> ( const Vector& parA, const Vector& parB ) a_pure;
- template
- bool operator<= ( const Vector& parA, const Vector& parB ) a_pure;
- template
- bool operator>= ( const Vector& parA, const Vector& parB ) a_pure;
- template
- bool operator== ( const Vector& parA, const Vector& parB ) a_pure;
- template
- bool operator!= ( const Vector& parA, const Vector& parB ) a_pure;
-
- template
- Vector operator- ( Vector parOperand ) a_pure;
-
- typedef Vector float2;
- typedef Vector ushort2;
-#if !defined(NDEBUG)
- typedef Vector short2;
-#endif
- typedef Vector int2;
-
-#if defined(WITH_VECTOR_IOSTREAM)
- template
- std::ostream& operator<< ( std::ostream& parStream, const Vector& parVector ) {
- parStream << "<";
- for (uint32_t z = 0; z < S - 1; ++z) {
- parStream << parVector[z] << ",";
- }
- parStream << parVector[S - 1] << ">";
- return parStream;
- }
-#endif
-
- namespace implem {
- template
- struct CategorizeTypes {
- typedef typename std::common_type::type CommonType;
- typedef typename std::conditional::value, U, T>::type OtherType;
- };
- template ::value>
- struct DoOperation {
- static Vector do_mul ( Vector parLho, const Vector& parRho ) {
- parLho *= parRho;
- return parLho;
- }
- static Vector do_div ( Vector parLho, const Vector& parRho ) {
- parLho /= parRho;
- return parLho;
- }
- static Vector do_sum ( Vector parLho, const Vector& parRho ) {
- parLho += parRho;
- return parLho;
- }
- static Vector do_sub ( Vector parLho, const Vector& parRho ) {
- parLho -= parRho;
- return parLho;
- }
- };
- template
- struct DoOperation {
- static Vector do_mul ( Vector parLho, const Vector& parRho ) {
- parLho *= parRho;
- return parLho;
- }
- static Vector do_mul ( const Vector& parLho, const Vector& parRho ) {
- Vector ret(parLho);
- ret *= parRho;
- return ret;
- }
- static Vector do_div ( Vector parLho, const Vector& parRho ) {
- parLho /= parRho;
- return parLho;
- }
- static Vector do_div ( const Vector& parLho, const Vector& parRho ) {
- Vector ret(parLho);
- ret /= parRho;
- return ret;
- }
- static Vector do_sum ( Vector parLho, const Vector& parRho ) {
- parLho += parRho;
- return parLho;
- }
- static Vector do_sum ( const Vector& parLho, const Vector& parRho ) {
- Vector ret(parLho);
- ret += parRho;
- return ret;
- }
- static Vector do_sub ( Vector parLho, const Vector& parRho ) {
- parLho -= parRho;
- return parLho;
- }
- static Vector do_sub ( const Vector& parLho, const Vector& parRho ) {
- Vector ret(parLho);
- ret -= parRho;
- return ret;
- }
- };
- } //namespace implem
-} //namespace cloonel
-#include "vector.inl"
-
-#if defined(DONT_GUESS_NOEXCEPT)
-#undef DONT_GUESS_NOEXCEPT
-#endif
-
-#endif
diff --git a/include/doorkeeper/implem/vector.inl b/include/doorkeeper/implem/vector.inl
deleted file mode 100644
index 7660411..0000000
--- a/include/doorkeeper/implem/vector.inl
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- Copyright 2014 Michele "King_DuckZ" Santullo
-
- This file is part of CloonelJump.
-
- CloonelJump 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 3 of the License, or
- (at your option) any later version.
-
- CloonelJump 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 CloonelJump. If not, see .
-*/
-
-namespace cloonel {
- ///-------------------------------------------------------------------------
- ///-------------------------------------------------------------------------
- template
-#if defined(DONT_GUESS_NOEXCEPT)
- Vector::Vector (T parValue) {
-#else
- Vector::Vector (T parValue) noexcept(noexcept(T()) && noexcept(parValue=parValue)) {
-#endif
- std::fill(m_mem, m_mem + S, parValue);
- }
-
- ///-------------------------------------------------------------------------
- ///-------------------------------------------------------------------------
- template
- template
-#if defined(DONT_GUESS_NOEXCEPT)
- Vector::Vector (const Vector& parOther) {
-#else
- Vector::Vector (const Vector& parOther) noexcept(noexcept(T()) && noexcept(const_cast(parOther.m_mem[0])=T())) {
-#endif
- std::copy(parOther.m_mem, parOther.m_mem + S, m_mem);
- }
-
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
- ///-------------------------------------------------------------------------
- ///-------------------------------------------------------------------------
- template
- template
- const Vector& Vector::operator+= (const Vector& parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] += parOther.m_mem[z];
- }
- return *this;
- }
- template
- template
- const Vector& Vector::operator-= (const Vector& parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] -= parOther.m_mem[z];
- }
- return *this;
- }
- template
- template
- const Vector& Vector::operator*= (const Vector& parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] *= parOther.m_mem[z];
- }
- return *this;
- }
- template
- template
- const Vector& Vector::operator/= (const Vector& parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] /= parOther.m_mem[z];
- }
- return *this;
- }
-#pragma GCC diagnostic pop
-
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
- ///-------------------------------------------------------------------------
- ///-------------------------------------------------------------------------
- template
- template
- const Vector& Vector::operator+= (U parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] += parOther;
- }
- return *this;
- }
- template
- template
- const Vector& Vector::operator-= (U parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] -= parOther;
- }
- return *this;
- }
- template
- template
- const Vector& Vector::operator*= (U parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] *= parOther;
- }
- return *this;
- }
- template
- template
- const Vector& Vector::operator/= (U parOther) {
- for (uint32_t z = 0; z < S; ++z) {
- m_mem[z] /= parOther;
- }
- return *this;
- }
-#pragma GCC diagnostic pop
-
- ///-------------------------------------------------------------------------
- ///-------------------------------------------------------------------------
- template
- inline
- Vector::type, S> operator+ (const Vector& parA, const Vector& parB) {
- return implem::DoOperation, S>::do_sum(parA, parB);
- }
- template
- inline
- Vector::type, S> operator- (const Vector& parA, const Vector& parB) {
- return implem::DoOperation, S>::do_sub(parA, parB);
- }
- template
- inline
- Vector::type, S> operator* (const Vector& parA, const Vector& parB) {
- return implem::DoOperation, S>::do_mul(parA, parB);
- }
- template
- inline
- Vector::type, S> operator/ (const Vector& parA, const Vector& parB) {
- return implem::DoOperation, S>::do_div(parA, parB);
- }
-
- ///-------------------------------------------------------------------------
- ///-------------------------------------------------------------------------
- template
- Vector::type, S> operator+ (U parA, const Vector& parB) {
- return parB + parA;
- }
- template
- Vector::type, S> operator- (U parA, const Vector& parB) {
- return Vector(parA) - parB;
- }
- template
- Vector::type, S> operator* (U parA, const Vector& parB) {
- return parB * parA;
- }
- template
- Vector::type, S> operator/ (U parA, const Vector& parB) {
- return Vector(parA) / parB;
- }
- template
- Vector::type, S> operator+ (const Vector& parA, U parB) {
- typedef typename std::common_type::type RetType;
- Vector retVal;
- for (uint32_t z = 0; z < S; ++z) {
- retVal[z] = parA[z] + parB;
- }
- return retVal;
- }
- template
- Vector::type, S> operator- (const Vector& parA, U parB) {
- typedef typename std::common_type::type RetType;
- Vector retVal;
- for (uint32_t z = 0; z < S; ++z) {
- retVal[z] = parA[z] - parB;
- }
- return retVal;
- }
- template
- Vector::type, S> operator* (const Vector& parA, U parB) {
- typedef typename std::common_type::type RetType;
- Vector retVal;
- for (uint32_t z = 0; z < S; ++z) {
- retVal[z] = parA[z] * parB;
- }
- return retVal;
- }
- template
- Vector::type, S> operator/ (const Vector& parA, U parB) {
- typedef typename std::common_type::type RetType;
- Vector retVal;
- for (uint32_t z = 0; z < S; ++z) {
- retVal[z] = parA[z] / parB;
- }
- return retVal;
- }
-
- ///--------------------------------------------------------------------------
- ///--------------------------------------------------------------------------
- template
- inline bool operator< (const Vector& parA, const Vector& parB) {
- bool retVal = true;
- for (uint32_t z = 0; z < S; ++z) {
- retVal &= static_cast(parA[z] < parB[z]);
- }
- return retVal;
- }
- template
- inline bool operator> (const Vector