Giter Club home page Giter Club logo

extended-c-module's People

Contributors

albusoft avatar

Stargazers

 avatar

extended-c-module's Issues

WMS anonyme Funktionen und Variablen implementieren

Description

Die anonymen Funktionen als Inline-Funktionen implementieren.

Details

Projekt: "ecm.window.dll"
Datei: "window.h"
Namespace: "ecm"

Tasks

  • Funktion void SetFullscreen
  • Funktion bool IsFullscreen
  • Funktion bool IsFocused
  • Funktion void SetCaption
  • Funktion const char* Caption
  • Funktion void SetPosition
  • Funktion int32 PositionX
  • Funktion int32 PositionY
  • Funktion void Resize
  • Funktion uint32 Width
  • Funktion uint32 Height

Vector3 float32 operators

Description

The basic float32 operators for the Vector3 struct.

Details

Projekt: "ecm.dll"
Datei: "vector3.hpp" "vector3.inl"
Namespace: "ecm"

Tasks

  • Vector3 +(Vector3, float32)
  • Vector3 -(Vector3, float32)
  • Vector3 *(Vector3, float32)
  • Vector3 /(Vector3, float32)
  • Vector3 +=(Vector3, float32)
  • Vector3 -=(Vector3, float32)
  • Vector3 *=(Vector3, float32)
  • Vector3 /=(Vector3, float32)

Math: functions for absolute

Description

Eine Funktion zur Absolut-Umwandlung.

int64 Abs(int64 x) {
	return x < 0 ? -x : x;
}
long double Abs(long double x) {
	return x < 0.0 ? -x : x;
}

Details

Projekt: "ecm.math.dll"
Datei: "functions.hpp" "functions.inl"
Namespace: "ecm::math"

Tasks

  • Funktion definieren
  • Funktione implementieren

DefaultGraphicsSystem implementieren

Description

DefaultGraphicsSystem (DGS) soll die grundlegende Verwaltung von GraphicAPIs bereitstellen.

Details

Projekt: "ecm.graphics.dll"
Datei: -
Namespace: -

Tasks

Basic Vector3 struct

Description

Das Struct Vector3 implementieren, mit 3 float32 für die x, y und z Koordinaten.
Enumeration für die Axis ist noch sinnvoll.

Details

Projekt: "ecm.dll"
Datei: "vector3.h" "vector3.cpp"
Namespace: "ecm"

Tasks

  • Struct Vector3 implementieren
  • Variables in a union: 3 float32, float32[3]
  • Default-Constructor
  • Constructor with 3 float32
  • Constructor with float32 Pointer

Math: function for fmod

Description

Eine Funktion zur Floating-Modulo-Berechnung.

// Funktion zur Berechnung von x^n
double Fmod(double x, double y) {
  if (y == 0.0) {
    return QuietNaN<_Ty>();
  }
  return x - Trunc(x / y) * y;
}

Details

Projekt: "ecm.math.dll"
Datei: "functions.hpp" "functions.inl"
Namespace: "ecm::math"

Tasks

  • Funktion definieren
  • Funktion implementieren

Math: function for factorial

Description

Eine Funktion zur Berechnung der Fakultät.

// Funktion zur Berechnung der Fakultät
long double fact(int n) {
	long double result = 1;
	for (int i = 1; i <= n; ++i) {
		result *= i;
	}
	return result;
}

Details

Projekt: "ecm.math.dll"
Datei: "functions.hpp" "functions.inl"
Namespace: "ecm::math"

Tasks

  • Funktion definieren
  • Funktione implementieren

ColorF-Struct Operatoren

Description

Für das Struct ColorF einige wichtige Operatoren implementieren.

Details

Projekt: "ecm.dll"
Datei: "color.h"
Namespace: "ecm"

Tasks

  • ColorF ==(ColorF, ColorF)
  • ColorF !=(ColorF, ColorF)
  • ColorF +(ColorF, ColorF)
  • ColorF -(ColorF, ColorF)
  • ColorF *(ColorF, ColorF)
  • ColorF +=(ColorF, ColorF)
  • ColorF -=(ColorF, ColorF)
  • ColorF *=(ColorF, ColorF)

Vector4 float32 operators

Description

The basic float32 operators for the Vector4 struct.

Details

Projekt: "ecm.dll"
Datei: "vector4.hpp" "vector4.inl"
Namespace: "ecm"

Tasks

  • Vector4 +(Vector4, float32)
  • Vector4 -(Vector4, float32)
  • Vector4 *(Vector4, float32)
  • Vector4 /(Vector4, float32)
  • Vector4 +=(Vector4, float32)
  • Vector4 -=(Vector4, float32)
  • Vector4 *=(Vector4, float32)
  • Vector4 /=(Vector4, float32)

Projekt für Window API anlegen

Description

Projekt für die Window API anlegen.

Details

Projekt: "ecm.window.dll"
Datei: "dllmain.cpp"
Namespace: "ecm::window"

Tasks

  • Projekt anlegen
  • Pfade einrichten
  • API einrichten

Basic Vector4 operators

Description

Für das basis Struct Vector4 einige wichtige Operatoren implementieren.

Details

Projekt: "ecm.dll"
Datei: "vector4.h" "vector4.cpp"
Namespace: "ecm"

Tasks

  • Vector4 ==(Vector4, Vector4)
  • Vector4 !=(Vector4, Vector4)
  • Vector4 +(Vector4, Vector4)
  • Vector4 -(Vector4, Vector4)
  • Vector4 *(Vector4, Vector4)
  • Vector4 /(Vector4, Vector4)
  • Vector4 +=(Vector4, Vector4)
  • Vector4 -=(Vector4, Vector4)
  • Vector4 *=(Vector4, Vector4)
  • Vector4 /=(Vector4, Vector4)

Struct Color implementieren

Description

Das Struct Color implementieren, einmal mit uint8 und einmal mit float32.
Für beide structe jeweils eine Methode um zu anderen zu konvertieren.
color = (r << 24) | (g << 16) | (b << 8) | a;
r = (color >> 24) & 0xFF;

Details

Projekt: "ecm.dll"
Datei: "color.h"
Namespace: "ecm"

Tasks

  • Struct Color
  • Variables in a union: 4 uint8, uint8[4]
  • Default-Constructor
  • Constructor with 4 uint8
  • Constructor with uint32
  • Methode ToRGBA32()
  • Methode ToRGBA32F()
  • Struct ColorF
  • Variables in a union: 4 float32, float32[4]
  • Default-Constructor
  • Constructor with 4 float32
  • Constructor with uint32
  • Methode ToRGBA32()
  • Methode ToRGBA8888()

Console namespace

Description

Ein Namespace der für Ein-/Ausgaben in der Konsole zuständig ist und auch gewisse Konfigurationen wie Farben in der Konsole verbessert anbietet.

Details

Projekt: "ecm.dll"
Datei: "ecm_console.h"
Namespace: "ecm::console"

Tasks

  • Enumeration ConsoleColor
  • Funktion SetBackground()
  • Funktion SetForeground()
  • Funktion GetBackground()
  • Funktion GetForeground()
  • Funktion Write()
  • Funktion WriteLine()
  • Funktion ReadKey()
  • Funktion ReadLine()

WMS Struct Window

Description

Ein Struct das zur Kontrolle und für Funktionalitäten von Fenstern ist.

Details

Projekt: "ecm.window.dll"
Datei: "window.h" "window.cpp"
Namespace: "ecm"

Tasks

  • struct Window
  • Variable id_type _id
  • Methode bool IsValid
  • Methode id_type GetID
  • Methode void* Handle
  • Methode void SetFullscreen
  • Methode bool IsFullscreen
  • Methode bool IsFocused
  • Methode void SetCaption
  • Methode const char* Caption
  • Methode void SetPosition
  • Methode int32 PositionX
  • Methode int32 PositionY
  • Methode void Resize
  • Methode uint32 Width
  • Methode uint32 Height

Projekt für OpenGL API anlegen

Description

Projekt für die eigene OpenGL API-Verwaltung anlegen.

Details

Projekt: "ecm.gl.dll"
Datei: "dllmain_ecm.gl.cpp" "ecm_gl_api.h"
Namespace: "ecm::gl"

Tasks

  • Projekt anlegen
  • Pfade einrichten
  • API einrichten

Ersten Random Algorithmus

Description

Einen ersten Zufallsgeneratoralgorithmus implementieren.

Details

Projekt: "ecm.algorithm.dll"
Datei: "random.h"
Namespace: "ecm::algorithm"

Tasks

  • Klasse random
  • Konstruktoren

Vector4 cpp inhalt in inl verschieben und alles inline setzen

Description

Für eine, in Zukunft leistungsfähige Bibliothek, sollten die mathematischen Funktionen, vor allem die welche oft verwendet werden, als inline constexpr gekennzeichnet werden und in die .hpp und .inl definitiert und implementiert werden. Die .cpp sollte dann entfernt und die .h zu einer .hpp umbenannt werden.

Details

Projekt: "ecm.dll"
Datei: "vector4.hpp" "vector4.inl"
Namespace: "ecm::math"

Tasks

  • vector4.h zu vector4.hpp umbenennen
  • In der math.hpp die neuen .hpp Dateinamen eintragen
  • vector4.hpp Funktionsdefinitionen extern und export entfernen und zu inline constexpr modifizieren
  • vector4.inl erstellen und Funktionsimplementierungen übertragen

Basic Vector2 struct

Description

Das Struct Vector2 implementieren, mit 2 float32 für die x und y Koordinate.
Enumeration für die Axis ist noch sinnvoll.

Details

Projekt: "ecm.dll"
Datei: "vector2.h" "vector2.cpp"
Namespace: "ecm::math"

Tasks

  • Struct Vector2 implementieren
  • Variables in a union: 2 float32, float32[2]
  • Default-Constructor
  • Constructor with 2 float32
  • Constructor with float32 Pointer

Bug: Console not thread-safe

Description

The console functions are not thread-safe, they can crash.
Use some locks to lock the write-stream for the functions.

Details

Projekt: "ecm.dll"
Datei: "console.h" "console.cpp"
Namespace: "ecm::console"

Tasks

  • Use std::mutex variable
  • Lock mutex in all the functions

Math: Change Vector2 to templated Vector2

Description

Restructure the Vector2 struct to a Vector2_Base template struct, with same variables, 2 _Ty for x and y axis.
Hold the enumeration for the axis.
At end, add a struct Vector2 and a struct Vector2i with using Vector2_Base with the types float32 and int32.

Details

Projekt: "ecm.math.dll"
Datei: "vector2.hpp" "vector2.inl"
Namespace: "ecm::math"

Tasks

  • Restructure struct Vector2 to Vector2_Base
    • Remove all inline, only constexpr functions/methods
    • Add the template
    • Change variables type from float32 to _Ty
    • Add a index operator with uint8 to the struct for the axis
    • Add Vector2, Vector2A, Vector2i and Vector2iA definitions
  • Edit the default operators
    • Vector2_Base: Vector2_Base == Vector2_Base
    • Vector2_Base: Vector2_Base != Vector2_Base
    • Vector2_Base: Vector2_Base + Vector2_Base
    • Vector2_Base: Vector2_Base - Vector2_Base
    • Vector2_Base: Vector2_Base * Vector2_Base
    • Vector2_Base: Vector2_Base / Vector2_Base
    • Vector2_Base: Vector2_Base += Vector2_Base
    • Vector2_Base: Vector2_Base -= Vector2_Base
    • Vector2_Base: Vector2_Base *= Vector2_Base
    • Vector2_Base: Vector2_Base /= Vector2_Base
  • Edit the vector/float operators
    • Vector2_Base: Vector2_Base + float32
    • Vector2_Base: Vector2_Base - float32
    • Vector2_Base: Vector2_Base * float32
    • Vector2_Base: Vector2_Base / float32
    • Vector2_Base: Vector2_Base += float32
    • Vector2_Base: Vector2_Base -= float32
    • Vector2_Base: Vector2_Base *= float32
    • Vector2_Base: Vector2_Base /= float32

DGS Struct GraphicsSurface

Description

Ein Struct welches die Grundlegenden Funktionen von Graphikfeatures bereitstellt, sodass nur mit diesem Struct jede beliebige GraphicsAPI verwendet und ohne große Umimplementierungen gewechselt werden kann.

Details

Projekt: "ecm.graphics.dll"
Datei: "graphics.h"
Namespace: "ecm::graphics"

Tasks

  • ...

Basic Vector2i struct

Description

Das Struct Vector2i implementieren, mit 2 float32 für die x und y Koordinate.
Enumeration für die Axis ist noch sinnvoll.

Details

Projekt: "ecm.dll"
Datei: "vector2i.h" "vector2i.cpp"
Namespace: "ecm"

Tasks

  • Struct Vector2i implementieren
  • Variables in a union: 2 float32, float32[2]
  • Default-Constructor
  • Constructor with 2 float32
  • Constructor with float32 Pointer

ID-System implementieren

Description

Ein ID-System welches grundlegende Funktionalitäten zur Erstellung und Validierung von IDs haben soll, aber auch für die Generation einer ID.

Details

Projekt: "ecm.dll"
Datei: "id.h"
Namespace: "ecm::id"

Tasks

  • Funktion IsValid()
  • Funktion Index()
  • Funktion Generation()
  • Funktion NewGeneration()

ColorAttribute für Console

Description

Colorattribute implementieren, sodass man mit Attributen im Text mit vorgegebenen Farbcodes und auch eigenen die Farbe ändern kann.

Quelle

Details

Projekt: "ecm.dll"
Datei: "ecm_console.h"
Namespace: "ecm"

Tasks

  • inline constexpr variablen implement (für die 16 verschiedenen Konsolenfarben)

Container Vector

Description

Eine Klasse für einen Vector-Container.

Details

Projekt: "ecm.dll"
Datei: "ecm_vector.h"
Namespace: "ecm::container"

Tasks

  • Klasse implementieren
  • Konstuktoren
  • Dekonstruktor
  • Operator=()
  • Operator[ ]()
  • push_back()
  • emplace_back()
  • resize()
  • reserve()
  • erase()
  • erase_unordered()
  • clear()
  • swap()
  • data()
  • empty()
  • size()
  • capacity()
  • front()
  • back()
  • begin()
  • end()

Vector2 cpp inhalt in inl verschieben und alles inline setzen

Description

Für eine, in Zukunft leistungsfähige Bibliothek, sollten die mathematischen Funktionen, vor allem die welche oft verwendet werden, als inline constexpr gekennzeichnet werden und in die .hpp und .inl definitiert und implementiert werden. Die .cpp sollte dann entfernt und die .h zu einer .hpp umbenannt werden.

Details

Projekt: "ecm.dll"
Datei: "vector2.hpp" "vector2.inl"
Namespace: "ecm::math"

Tasks

  • vector2.h zu vector2.hpp umbenennen
  • In der math.hpp die neuen .hpp Dateinamen eintragen
  • vector2.hpp Funktionsdefinitionen extern und export entfernen und zu inline constexpr modifizieren
  • vector2.inl erstellen und Funktionsimplementierungen übertragen

Basic Vector2i operators

Description

Für das basis Struct Vector2i einige wichtige Operatoren implementieren.

Details

Projekt: "ecm.dll"
Datei: "vector2i.h" "vector2i.cpp"
Namespace: "ecm"

Tasks

  • Vector2i ==(Vector2i, Vector2i)
  • Vector2i !=(Vector2i, Vector2i)
  • Vector2i +(Vector2i, Vector2i)
  • Vector2i -(Vector2i, Vector2i)
  • Vector2i *(Vector2i, Vector2i)
  • Vector2i /(Vector2i, Vector2i)
  • Vector2i +=(Vector2i, Vector2i)
  • Vector2i -=(Vector2i, Vector2i)
  • Vector2i *=(Vector2i, Vector2i)
  • Vector2i /=(Vector2i, Vector2i)

Basic Matrix4x4 struct

Description

Das Struct Matrix4x4 implementieren, mit einem 1D float32 array mit der Größe 16.

Details

Projekt: "ecm.dll"
Datei: "matrix4x4.h" "matrix4x4.cpp"
Namespace: "ecm::math"

Tasks

  • Struct Matrix4x4 implementieren
  • Variablen/Typen in union: struct mit 16 float32 Werten, float32[4][4], float32[16]
  • Default-Constructor
  • Constructor with float32
  • Constructor with float32[16]
  • Constructor with float32[4][4]
  • Constructor with all 16 floats
  • Define Matrix4x4A with align of 16 bytes

Project restructure

Description

The solution should be restructured.
New project for math library that will be a static library for inline functions and methods.
One directory for the ecm link and source files and all project files for visual studio should be placed in the root directory named libs.

Details

Projekt: -
Datei: -
Namespace: -

Tasks

  • All include files in one library directory
  • All source files in one library directory
  • All visual studio project files in the root directory
  • Edit the paths in the visual studio project files
  • Change the names for the resource files and place them in a rsc directory

Math: function for power

Description

Eine Funktion zur Potenz-Berechnung.

// Funktion zur Berechnung von x^n
long double pow(long double base, int exponent) {
	double result = 1.0;
	for (int i = 0; i < abs(exponent); ++i) {
		result *= base;
	 }
	if (exponent < 0) {
		return 1.0 / result;
	}
	return result;
}

Details

Projekt: "ecm.math.dll"
Datei: "functions.hpp" "functions.inl"
Namespace: "ecm::math"

Tasks

  • Funktion definieren
  • Funktione implementieren

WMS Methoden von Window mit anonymen Funktionen bestücken

Description

Die anonymen Funktionen in den Methoden des Window-Structes implementieren.

Details

Projekt: "ecm.window.dll"
Datei: "window.h" "window.cpp"
Namespace: "ecm"

Tasks

  • Funktion void SetMode
  • Funktion bool GetMode
  • Funktion bool GetFocused
  • Funktion void SetFocus
  • Funktion void SetCaption
  • Funktion const char* Caption
  • Funktion void SetPosition
  • Funktion Point GetPosition
  • Funktion void Resize
  • Funktion Point GetSize

Math: Change Vector3 to templated Vector3

Description

Restructure the Vector3 struct to a Vector3_Base template struct, with same variables, 3 _Ty for x, y and z axis.
Hold the enumeration for the axis.
At end, add a struct Vector3 and a struct Vector3i with using Vector3_Base with the types float32 and int32.

Details

Projekt: "ecm.math.dll"
Datei: "Vector3.hpp" "Vector3.inl"
Namespace: "ecm::math"

Tasks

  • Restructure struct Vector3 to Vector3_Base
    • Remove all inline, only constexpr functions/methods
    • Add the template
    • Change variables type from float32 to _Ty
    • Add a index operator with uint8 to the struct for the axis
    • Add Vector3, Vector3A, Vector3i and Vector3iA definitions
  • Edit the default operators
    • Vector3_Base: Vector3_Base == Vector3_Base
    • Vector3_Base: Vector3_Base != Vector3_Base
    • Vector3_Base: Vector3_Base + Vector3_Base
    • Vector3_Base: Vector3_Base - Vector3_Base
    • Vector3_Base: Vector3_Base * Vector3_Base
    • Vector3_Base: Vector3_Base / Vector3_Base
    • Vector3_Base: Vector3_Base += Vector3_Base
    • Vector3_Base: Vector3_Base -= Vector3_Base
    • Vector3_Base: Vector3_Base *= Vector3_Base
    • Vector3_Base: Vector3_Base /= Vector3_Base
  • Edit the vector/float operators
    • Vector3_Base: Vector3_Base + float32
    • Vector3_Base: Vector3_Base - float32
    • Vector3_Base: Vector3_Base * float32
    • Vector3_Base: Vector3_Base / float32
    • Vector3_Base: Vector3_Base += float32
    • Vector3_Base: Vector3_Base -= float32
    • Vector3_Base: Vector3_Base *= float32
    • Vector3_Base: Vector3_Base /= float32

Basic Vector2 operators

Description

Für das basis Struct Vector2 einige wichtige Operatoren implementieren.

Details

Projekt: "ecm.dll"
Datei: "vector2.h" "vector2.cpp"
Namespace: "ecm"

Tasks

  • Vector2 ==(Vector2, Vector2)
  • Vector2 !=(Vector2, Vector2)
  • Vector2 +(Vector2, Vector2)
  • Vector2 -(Vector2, Vector2)
  • Vector2 *(Vector2, Vector2)
  • Vector2 /(Vector2, Vector2)
  • Vector2 +=(Vector2, Vector2)
  • Vector2 -=(Vector2, Vector2)
  • Vector2 *=(Vector2, Vector2)
  • Vector2 /=(Vector2, Vector2)

OpenGL Context based on ContextBase

Description

A OpenGLContext class for initialize gl context and draw to window.
Add the glad library source files.

Details

Projekt: "ecm.opengl.dll"
Datei: "glcontext.h" "glcontext.cpp"
Namespace: "ecm::gl"

Tasks

  • Define class
  • Add GLAD header-/source-files
  • Override Initialize()
  • Override Shutdown()
  • Override ClearBuffers()
  • Override SwapBuffers()
  • Override SetViewport()

SDL2 einbinden und linken

Description

Die neueste Version von SDL2 herunterladen und in das Projekt einbinden.

Details

Projekt: "ecm.window.dll"
Datei: "dllmain.cpp"
Namespace: -

Tasks

  • Neueste Version von SDL2 herunterladen
  • SDL2 Header in /vendor kopieren
  • SDL2 .dll und .lib in die Debug-/Release-Ordner kopieren
  • SDL2.lib in dllmain.cpp linken

Basic Vector3 operators

Description

Für das basis Struct Vector3 einige wichtige Operatoren implementieren.

Details

Projekt: "ecm.dll"
Datei: "vector3.h" "vector3.cpp"
Namespace: "ecm"

Tasks

  • Vector3 ==(Vector3, Vector3)
  • Vector3 !=(Vector3, Vector3)
  • Vector3 +(Vector3, Vector3)
  • Vector3 -(Vector3, Vector3)
  • Vector3 *(Vector3, Vector3)
  • Vector3 /(Vector3, Vector3)
  • Vector3 +=(Vector3, Vector3)
  • Vector3 -=(Vector3, Vector3)
  • Vector3 *=(Vector3, Vector3)
  • Vector3 /=(Vector3, Vector3)

Vector Iterator

Description

Einen Iterator für den Vector-Container implementieren.

Details

Projekt: "ecm.dll"
Datei: "vector.h"
Namespace: "ecm"

Tasks

  • Klasse iterator
  • Konstruktor
  • Operator*()
  • Operator->()
  • Operator++()
  • Operator==()
  • Operator!=()

Matrix4x4 cpp inhalt in inl verschieben und alles inline setzen

Description

Für eine, in zukunft leistungsfähige Bibliothek, sollten die mathematischen Funktionen, vor allem die welche oft verwendet werden, als inline constexpr gekennzeichnet werden und in die .hpp und .inl definitiert und implementiert werden. Die .cpp sollte dann entfernt und die .h zu einer .hpp umbenannt werden.

Details

Projekt: "ecm.dll"
Datei: "matrix4x4.hpp" "matrix4x4.inl"
Namespace: "ecm::math"

Tasks

  • matrix4x4.h zu matrix4x4.hpp umbenennen
  • In der math.hpp die neuen .hpp Dateinamen eintragen
  • matrix4x4.hpp Funktionsdefinitionen extern und export entfernen und zu inline constexpr modifizieren
  • matrix4x4.inl erstellen und Funktionsimplementierungen übertragen

Projekt für Vulkan API anlegen

Description

Projekt für die GraphicsAPI Vulkan anlegen.

Details

Projekt: "ecm.graphics.vulkan.dll"
Datei: "dllmain_ecm.vulkan.cpp" "ecm_vulkan_api.h"
Namespace: "ecm::vulkan"

Tasks

  • Projekt anlegen
  • Pfade einrichten
  • API einrichten

ANSI Konsolen Attribute erweitern

Description

Weitere ANSI Konsolen Attribute hizufügen, wie Bold, Italic und co.

Nachschlag hier

Details

Projekt: "ecm.dll"
Datei: "ecm_console.h"
Namespace: "ecm"

Tasks

  • inline constexpr variablen bold
  • inline constexpr variablen italic
  • inline constexpr variablen Semitransparent
  • inline constexpr variablen underlined
  • inline constexpr variablen slowblink
  • inline constexpr variablen rapidblink
  • inline constexpr variablen swapped
  • inline constexpr variablen invisible

Struct Vector2 Implementieren

Description

Das Struct Vector2 implementieren, mit den ersten notwendigen Methoden und Variablen.
Vairablen als Union mit Array, X/Y und W/H.

Details

Projekt: "ecm.dll"
Datei: "Vector2.h"
Namespace: "ecm::math"

Tasks

  • Struct Vector2
  • Enum für Axis
  • Variables in a union: 2 float32, 2 float32, float32[2]
  • Default-Constructor
  • Constructor with 2 float32
  • Constructor with float32[2]

Basic Vector4 struct

Description

Das Struct Vector4 implementieren, mit 4 float32 für die x, y, z und w Koordinate.
Enumeration für die Axis ist noch sinnvoll.

Details

Projekt: "ecm.dll"
Datei: "vector4.h" "vector4.cpp"
Namespace: "ecm"

Tasks

  • Struct Vector4 implementieren
  • Variables in a union: 4 float32, float32[4]
  • Default-Constructor
  • Constructor with 4 float32
  • Constructor with float32 Pointer

Vector3 cpp inhalt in inl verschieben und alles inline setzen

Description

Für eine, in Zukunft leistungsfähige Bibliothek, sollten die mathematischen Funktionen, vor allem die welche oft verwendet werden, als inline constexpr gekennzeichnet werden und in die .hpp und .inl definitiert und implementiert werden. Die .cpp sollte dann entfernt und die .h zu einer .hpp umbenannt werden.

Details

Projekt: "ecm.dll"
Datei: "vector2.hpp" "vector2.inl"
Namespace: "ecm::math"

Tasks

  • vector3.h zu vector3.hpp umbenennen
  • In der math.hpp die neuen .hpp Dateinamen eintragen
  • vector3.hpp Funktionsdefinitionen extern und export entfernen und zu inline constexpr modifizieren
  • vector3.inl erstellen und Funktionsimplementierungen übertragen

Windowmanagementsystem implementieren

Description

Das WindowManagementSystem (WMS), welches für das Erstellen, Verwalten und Entfernen von Fenster zuständig ist.

Details

Projekt: "ecm.window.dll"
Datei: "window.h" "window.cpp"
Namespace: "ecm"

Tasks

  • Struct WindowInitInfo
  • Function CreateWindow
  • Function DestroyWindow
  • #11
  • #12
  • #13

Vector2 float32 operators

Description

The basic float32 operators for the Vector2 struct.

Details

Projekt: "ecm.dll"
Datei: "vector2.hpp" "vector2.inl"
Namespace: "ecm"

Tasks

  • Vector2 +(Vector2, float32)
  • Vector2 -(Vector2, float32)
  • Vector2 *(Vector2, float32)
  • Vector2 /(Vector2, float32)
  • Vector2 +=(Vector2, float32)
  • Vector2 -=(Vector2, float32)
  • Vector2 *=(Vector2, float32)
  • Vector2 /=(Vector2, float32)

Projekt ecm.alogrithm.dll anlegen

Description

Projekt für algorithmen anlegen.

Details

Projekt: "ecm.algorithm.dll"
Datei: "dllmain.cpp" "ecm_algorithm.h"
Namespace: "ecm::algorithm"

Tasks

  • Projekt anlegen
  • Pfade einrichten
  • API einrichten

Color-Struct Operatoren

Description

Für das Struct Color einige wichtige Operatoren implementieren.

Details

Projekt: "ecm.dll"
Datei: "color.h"
Namespace: "ecm"

Tasks

  • Color ==(Color, Color)
  • Color !=(Color, Color)
  • Color +(Color, Color)
  • Color -(Color, Color)
  • Color *(Color, Color)
  • Color +=(Color, Color)
  • Color -=(Color, Color)
  • Color *=(Color, Color)

Basic Matrix4x4 operators

Description

Für das basis Struct Matrix4x4 einige grundlegende Operatoren implementieren.

Details

Projekt: "ecm.dll"
Datei: "matrix4x4.h" "matrix4x4.cpp"
Namespace: "ecm::math"

Tasks

  • Matrix4x4 ==(Matrix4x4, Matrix4x4)
  • Matrix4x4 !=(Matrix4x4, Matrix4x4)
  • Matrix4x4 +(Matrix4x4, Matrix4x4)
  • Matrix4x4 -(Matrix4x4, Matrix4x4)
  • Matrix4x4 *(Matrix4x4, Matrix4x4)
  • Matrix4x4 +=(Matrix4x4, Matrix4x4)
  • Matrix4x4 -=(Matrix4x4, Matrix4x4)
  • Matrix4x4 *=(Matrix4x4, Matrix4x4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.