diff options
author | Emre Ucan <eucan@de.adit-jv.com> | 2016-04-18 13:36:08 +0200 |
---|---|---|
committer | Eugen Friedrich <efriedrich@de.adit-jv.com> | 2016-04-19 16:10:07 +0200 |
commit | d2530eacfed54cec24cbf790458536c675c99058 (patch) | |
tree | a531504cc1086ff03317b61322af595587d1b8a1 | |
parent | 46590fd88f1e419622b88ddf6a1f5bde80841f75 (diff) | |
download | wayland-ivi-extension-d2530eacfed54cec24cbf790458536c675c99058.tar.gz |
EGLWLMockNavigation: remove IlmMatrix source code
IlmMatrix source code is removed, because it has a different
license than the license of wayland-ivi-extension (i.e Apache 2.0).
Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
-rw-r--r-- | ivi-layermanagement-examples/EGLWLMockNavigation/include/IlmMatrix.h | 107 | ||||
-rw-r--r-- | ivi-layermanagement-examples/EGLWLMockNavigation/src/IlmMatrix.cpp | 257 |
2 files changed, 0 insertions, 364 deletions
diff --git a/ivi-layermanagement-examples/EGLWLMockNavigation/include/IlmMatrix.h b/ivi-layermanagement-examples/EGLWLMockNavigation/include/IlmMatrix.h deleted file mode 100644 index e0c606f..0000000 --- a/ivi-layermanagement-examples/EGLWLMockNavigation/include/IlmMatrix.h +++ /dev/null @@ -1,107 +0,0 @@ -/*************************************************************************** -* -* Copyright 2010,2011 BMW Car IT GmbH -* -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -* This file incorporates work covered by the following copyright and -* permission notice: -* -* Oolong Engine for the iPhone / iPod touch -* Copyright (c) 2007-2008 Wolfgang Engel http://code.google.com/p/oolongengine/ -* -* This software is provided 'as-is', without any express or implied warranty. -* In no event will the authors be held liable for any damages arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it freely, -* subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that -* you wrote the original software. If you use this software in a product, an -* acknowledgment in the product documentation would be appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -****************************************************************************/ - -#ifndef _ILMMATRIX_H_ -#define _ILMMATRIX_H_ - -#define MAT00 0 -#define MAT01 1 -#define MAT02 2 -#define MAT03 3 -#define MAT10 4 -#define MAT11 5 -#define MAT12 6 -#define MAT13 7 -#define MAT20 8 -#define MAT21 9 -#define MAT22 10 -#define MAT23 11 -#define MAT30 12 -#define MAT31 13 -#define MAT32 14 -#define MAT33 15 - -typedef struct -{ - float x; - float y; -} IlmVector2f; - -typedef struct -{ - float x; - float y; - float z; -} IlmVector3f; - -typedef struct -{ - float x; - float y; - float z; - float w; -} IlmVector4f; - -class IlmMatrix -{ -public: - float* operator [] (const int row) - { - return &f[row<<2]; - } - - float f[16]; -}; - -void IlmMatrixIdentity(IlmMatrix &mOut); - -void IlmMatrixMultiply(IlmMatrix &mOut, const IlmMatrix &mA, const IlmMatrix &mB); - -void IlmMatrixTranslation(IlmMatrix &mOut, const float X, const float Y, const float Z); - -void IlmMatrixScaling(IlmMatrix &mOut, const float X, const float Y, const float Z); - -void IlmMatrixRotateX(IlmMatrix &mOut, const float angle); - -void IlmMatrixRotateY(IlmMatrix &mOut, const float angle); - -void IlmMatrixRotateZ(IlmMatrix &mOut, const float angle); - -void IlmMatrixProjection(IlmMatrix &mOut, const float fov, const float near, const float far, const float aspectRatio); - - -#endif /* _ILMMATRIX_H_*/ diff --git a/ivi-layermanagement-examples/EGLWLMockNavigation/src/IlmMatrix.cpp b/ivi-layermanagement-examples/EGLWLMockNavigation/src/IlmMatrix.cpp deleted file mode 100644 index 5e50b6c..0000000 --- a/ivi-layermanagement-examples/EGLWLMockNavigation/src/IlmMatrix.cpp +++ /dev/null @@ -1,257 +0,0 @@ -/*************************************************************************** -* -* Copyright 2010,2011 BMW Car IT GmbH -* -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -* This file incorporates work covered by the following copyright and -* permission notice: -* -* Oolong Engine for the iPhone / iPod touch -* Copyright (c) 2007-2008 Wolfgang Engel http://code.google.com/p/oolongengine/ -* -* This software is provided 'as-is', without any express or implied warranty. -* In no event will the authors be held liable for any damages arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it freely, -* subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that -* you wrote the original software. If you use this software in a product, an -* acknowledgment in the product documentation would be appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -****************************************************************************/ -#include "IlmMatrix.h" -#include <math.h> - -#define ILM_PI 3.14159265 - -#define degToRad(deg) ((deg) * ILM_PI / 180.0f) -#define radToDeg(rad) ((rad) * 180.0f / ILM_PI) - -void IlmMatrixIdentity(IlmMatrix &mOut) -{ - mOut.f[0] = 1.0f; - mOut.f[1] = 0.0f; - mOut.f[2] = 0.0f; - mOut.f[3] = 0.0f; - - mOut.f[4] = 0.0f; - mOut.f[5] = 1.0f; - mOut.f[6] = 0.0f; - mOut.f[7] = 0.0f; - - mOut.f[8] = 0.0f; - mOut.f[9] = 0.0f; - mOut.f[10] = 1.0f; - mOut.f[11] = 0.0f; - - mOut.f[12] = 0.0f; - mOut.f[13] = 0.0f; - mOut.f[14] = 0.0f; - mOut.f[15] = 1.0f; -} - -void IlmMatrixMultiply(IlmMatrix &mOut, const IlmMatrix &mA, const IlmMatrix &mB) -{ - IlmMatrix mRet; - - mRet.f[0] = mA.f[0] * mB.f[0] + mA.f[1] * mB.f[4] + mA.f[2] * mB.f[8] + mA.f[3] * mB.f[12]; - mRet.f[1] = mA.f[0] * mB.f[1] + mA.f[1] * mB.f[5] + mA.f[2] * mB.f[9] + mA.f[3] * mB.f[13]; - mRet.f[2] = mA.f[0] * mB.f[2] + mA.f[1] * mB.f[6] + mA.f[2] * mB.f[10] + mA.f[3] * mB.f[14]; - mRet.f[3] = mA.f[0] * mB.f[3] + mA.f[1] * mB.f[7] + mA.f[2] * mB.f[11] + mA.f[3] * mB.f[15]; - - mRet.f[4] = mA.f[4] * mB.f[0] + mA.f[5] * mB.f[4] + mA.f[6] * mB.f[8] + mA.f[7] * mB.f[12]; - mRet.f[5] = mA.f[4] * mB.f[1] + mA.f[5] * mB.f[5] + mA.f[6] * mB.f[9] + mA.f[7] * mB.f[13]; - mRet.f[6] = mA.f[4] * mB.f[2] + mA.f[5] * mB.f[6] + mA.f[6] * mB.f[10] + mA.f[7] * mB.f[14]; - mRet.f[7] = mA.f[4] * mB.f[3] + mA.f[5] * mB.f[7] + mA.f[6] * mB.f[11] + mA.f[7] * mB.f[15]; - - mRet.f[8] = mA.f[8] * mB.f[0] + mA.f[9] * mB.f[4] + mA.f[10] * mB.f[8] + mA.f[11] * mB.f[12]; - mRet.f[9] = mA.f[8] * mB.f[1] + mA.f[9] * mB.f[5] + mA.f[10] * mB.f[9] + mA.f[11] * mB.f[13]; - mRet.f[10] = mA.f[8] * mB.f[2] + mA.f[9] * mB.f[6] + mA.f[10] * mB.f[10] + mA.f[11] * mB.f[14]; - mRet.f[11] = mA.f[8] * mB.f[3] + mA.f[9] * mB.f[7] + mA.f[10] * mB.f[11] + mA.f[11] * mB.f[15]; - - mRet.f[12] = mA.f[12] * mB.f[0] + mA.f[13] * mB.f[4] + mA.f[14] * mB.f[8] + mA.f[15] * mB.f[12]; - mRet.f[13] = mA.f[12] * mB.f[1] + mA.f[13] * mB.f[5] + mA.f[14] * mB.f[9] + mA.f[15] * mB.f[13]; - mRet.f[14] = mA.f[12] * mB.f[2] + mA.f[13] * mB.f[6] + mA.f[14] * mB.f[10] + mA.f[15] * mB.f[14]; - mRet.f[15] = mA.f[12] * mB.f[3] + mA.f[13] * mB.f[7] + mA.f[14] * mB.f[11] + mA.f[15] * mB.f[15]; - - mOut = mRet; -} - -void IlmMatrixTranslation(IlmMatrix &mOut, const float X, const float Y, const float Z) -{ - mOut.f[0] = 1.0f; - mOut.f[1] = 0.0f; - mOut.f[2] = 0.0f; - mOut.f[3] = 0.0f; - - mOut.f[4] = 0.0f; - mOut.f[5] = 1.0f; - mOut.f[6] = 0.0f; - mOut.f[7] = 0.0f; - - mOut.f[8] = 0.0f; - mOut.f[9] = 0.0f; - mOut.f[10] = 1.0f; - mOut.f[11] = 0.0f; - - mOut.f[12] = X; - mOut.f[13] = Y; - mOut.f[14] = Z; - mOut.f[15] = 1.0f; -} - -void IlmMatrixScaling(IlmMatrix &mOut, const float X, const float Y, const float Z) -{ - mOut.f[0] = X; - mOut.f[1] = 0.0f; - mOut.f[2] = 0.0f; - mOut.f[3] = 0.0f; - - mOut.f[4] = 0.0f; - mOut.f[5] = Y; - mOut.f[6] = 0.0f; - mOut.f[7] = 0.0f; - - mOut.f[8] = 0.0f; - mOut.f[9] = 0.0f; - mOut.f[10] = Z; - mOut.f[11] = 0.0f; - - mOut.f[12] = 0.0f; - mOut.f[13] = 0.0f; - mOut.f[14] = 0.0f; - mOut.f[15] = 1.0f; -} - -void IlmMatrixRotateX(IlmMatrix &mOut, const float angle) -{ - // Precompute cos and sin - float fCosine = (float)cos(degToRad(angle)); - float fSine = (float)sin(degToRad(angle)); - - // Create the trigonometric matrix corresponding to X Rotation - mOut.f[0] = 1.0f; - mOut.f[1] = 0.0f; - mOut.f[2] = 0.0f; - mOut.f[3] = 0.0f; - - mOut.f[4] = 0.0f; - mOut.f[5] = fCosine; - mOut.f[6] = -fSine; - mOut.f[7] = 0.0f; - - mOut.f[8] = 0.0f; - mOut.f[9] = fSine; - mOut.f[10] = fCosine; - mOut.f[11] = 0.0f; - - mOut.f[12] = 0.0f; - mOut.f[13] = 0.0f; - mOut.f[14] = 0.0f; - mOut.f[15] = 1.0f; -} - -void IlmMatrixRotateY(IlmMatrix &mOut, const float angle) -{ - // Precompute cos and sin - float fCosine = (float)cos(degToRad(angle)); - float fSine = (float)sin(degToRad(angle)); - - // Create the trigonometric matrix corresponding to Y Rotation - mOut.f[0] = fCosine; - mOut.f[1] = 0.0f; - mOut.f[2] = fSine; - mOut.f[3] = 0.0f; - - mOut.f[4] = 0.0f; - mOut.f[5] = 1.0f; - mOut.f[6] = 0.0f; - mOut.f[7] = 0.0f; - - mOut.f[8] = -fSine; - mOut.f[9] = 0.0f; - mOut.f[10] = fCosine; - mOut.f[11] = 0.0f; - - mOut.f[12] = 0.0f; - mOut.f[13] = 0.0f; - mOut.f[14] = 0.0f; - mOut.f[15] = 1.0f; -} - -void IlmMatrixRotateZ(IlmMatrix &mOut, const float angle) -{ - // Precompute cos and sin - float fCosine = (float)cos(degToRad(angle)); - float fSine = (float)sin(degToRad(angle)); - - // Create the trigonometric matrix corresponding to Z Rotation - mOut.f[0] = fCosine; - mOut.f[1] = -fSine; - mOut.f[2] = 0.0f; - mOut.f[3] = 0.0f; - - mOut.f[4] = fSine; - mOut.f[5] = fCosine; - mOut.f[6] = 0.0f; - mOut.f[7] = 0.0f; - - mOut.f[8] = 0.0f; - mOut.f[9] = 0.0f; - mOut.f[10] = 1.0f; - mOut.f[11] = 0.0f; - - mOut.f[12] = 0.0f; - mOut.f[13] = 0.0f; - mOut.f[14] = 0.0f; - mOut.f[15] = 1.0f; -} - -void IlmMatrixProjection(IlmMatrix &mOut, const float fov, const float near, const float far, const float aspect) -{ - // Precompute borders for projection - float range = near * tan(degToRad(fov) / 2.0); - float left = -range * aspect; - float right = range * aspect; - float bottom = -range; - float top = range; - - // Column 1 - mOut.f[0] = 2 * near / (right - left); - mOut.f[1] = 0.0; - mOut.f[2] = 0.0; - mOut.f[3] = 0.0; - - // Column 2 - mOut.f[4] = 0.0; - mOut.f[5] = 2 * near / (top - bottom); - mOut.f[6] = 0.0; - mOut.f[7] = 0.0; - - // Column 3 - mOut.f[8] = 0.0; - mOut.f[9] = 0.0; - mOut.f[10] = -(far + near) / (far - near); - mOut.f[11] = -1; - - // Column 4 - mOut.f[12] = 0.0; - mOut.f[13] = 0.0; - mOut.f[14] = -(2 * far * near) / (far - near); - mOut.f[15] = 0.0; -} |