Missing files
This commit is contained in:
parent
e8e009e42d
commit
fb3b7a898c
6 changed files with 112 additions and 0 deletions
20
app/fpointers.cpp
Normal file
20
app/fpointers.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#include "../src/platform/base.hpp"
|
||||||
|
|
||||||
|
int sum(int a, int b) { return a + b; }
|
||||||
|
|
||||||
|
int sub(int a, int b) { return a - b; }
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
std::cout << "Hello Pointers" << std::endl;
|
||||||
|
f_pointer(op, int, int, int);
|
||||||
|
|
||||||
|
op = sum;
|
||||||
|
int a = 22;
|
||||||
|
int b = 11;
|
||||||
|
|
||||||
|
std::cout << "Sum: " << op(a, b) << std::endl;
|
||||||
|
|
||||||
|
op = sub;
|
||||||
|
|
||||||
|
std::cout << "Sub: " << op(a, b) << std::endl;
|
||||||
|
}
|
20
premake/fpointers.lua
Normal file
20
premake/fpointers.lua
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
project "fpointers"
|
||||||
|
kind "ConsoleApp"
|
||||||
|
language "c++"
|
||||||
|
targetdir "../bin/%{cfg.buildcfg}"
|
||||||
|
objdir "../obj"
|
||||||
|
|
||||||
|
--files {"**.hpp","**.cpp"}
|
||||||
|
files {
|
||||||
|
"../app/fpointers.cpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
filter "configurations:Debug"
|
||||||
|
defines { "DEBUG" }
|
||||||
|
symbols "On"
|
||||||
|
|
||||||
|
filter "configurations:Release"
|
||||||
|
defines { "NDEBUG" }
|
||||||
|
optimize "On"
|
||||||
|
|
||||||
|
filter { "system:linux" }
|
27
src/engine/math/quaternion.cpp
Normal file
27
src/engine/math/quaternion.cpp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#include "quaternion.hpp"
|
||||||
|
|
||||||
|
using namespace engine::math;
|
||||||
|
|
||||||
|
quaternion::quaternion(float32 _x, float32 _y, float32 _z, float32 _w) {
|
||||||
|
x = _x;
|
||||||
|
y = _y;
|
||||||
|
z = _z;
|
||||||
|
w = _w;
|
||||||
|
};
|
||||||
|
|
||||||
|
quaternion::quaternion(const vector3d &v, float32 scalar) {
|
||||||
|
quaternion(v.x, v.y, v.z, scalar);
|
||||||
|
};
|
||||||
|
|
||||||
|
const vector3d &quaternion::GetVector() const {
|
||||||
|
return reinterpret_cast<const vector3d &>(x);
|
||||||
|
};
|
||||||
|
|
||||||
|
inline quaternion operator*(const quaternion &q1, const quaternion &q2) {
|
||||||
|
float32 x = q1.x * q2.w + q1.y * q2.z - q1.z * q2.y + q1.w * q2.x;
|
||||||
|
float32 y = q1.y * q2.w + q1.z * q2.x + q1.w * q2.y - q1.x * q2.z;
|
||||||
|
float32 z = q1.z * q2.w + q1.w * q2.z + q1.x * q2.y - q1.y * q2.x;
|
||||||
|
float32 w = q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z;
|
||||||
|
|
||||||
|
return quaternion(x, y, z, w);
|
||||||
|
};
|
18
src/engine/math/quaternion.hpp
Normal file
18
src/engine/math/quaternion.hpp
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../../platform/base.hpp"
|
||||||
|
#include "vector3d.hpp"
|
||||||
|
|
||||||
|
namespace engine::math {
|
||||||
|
struct quaternion {
|
||||||
|
float32 x, y, z, w;
|
||||||
|
quaternion() = default;
|
||||||
|
~quaternion() = default;
|
||||||
|
quaternion(float32 _x, float32 _y, float32 _z, float32 _w);
|
||||||
|
quaternion(const vector3d &v, float32 s);
|
||||||
|
const vector3d &GetVector(void) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline quaternion operator*(const quaternion &q1, const quaternion &q2);
|
||||||
|
|
||||||
|
}; // namespace engine::math
|
9
src/engine/math/utils.hpp
Normal file
9
src/engine/math/utils.hpp
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Defines a matrix in termos of float32
|
||||||
|
#define MATRIX(n, d) float32 n[d][d]
|
||||||
|
|
||||||
|
// Computes determinant sub block
|
||||||
|
#define DET(a, b, c, d) (a * d - b * c)
|
||||||
|
|
||||||
|
#define INVDET(row, idet) row[0] * idet, row[1] * idet, row[2] * idet
|
18
src/platform/dsl/pt.h
Normal file
18
src/platform/dsl/pt.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/**
|
||||||
|
* Defines a set of macros to enable us to progam as if C was created by
|
||||||
|
* portuguese programmers
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define se if
|
||||||
|
#define senao else
|
||||||
|
#define enquanto while
|
||||||
|
#define para for
|
||||||
|
#define privado private
|
||||||
|
#define publico public
|
||||||
|
#define protegido protected
|
||||||
|
#define estatico static
|
||||||
|
#define constante const
|
||||||
|
#define classe class
|
||||||
|
#define estrutura struct
|
||||||
|
#define deftipo typedef
|
||||||
|
#define vazio void
|
Loading…
Reference in a new issue