Implement J3ML Namespace

This commit is contained in:
2024-02-02 13:53:23 -05:00
parent d37b685df9
commit 9a5f12e505
45 changed files with 108 additions and 99 deletions

View File

@@ -3,9 +3,9 @@
#pragma once
namespace Geometry {
using Vector2 = LinearAlgebra::Vector2;
using Vector3 = LinearAlgebra::Vector3;
namespace J3ML::Geometry {
using Vector2 = J3ML::LinearAlgebra::Vector2;
using Vector3 = J3ML::LinearAlgebra::Vector3;
class LineSegment2D
{

View File

@@ -22,7 +22,7 @@
namespace Geometry
namespace J3ML::Geometry
{
using namespace LinearAlgebra;

View File

@@ -2,7 +2,7 @@
#include <J3ML/LinearAlgebra/Vector2.h>
namespace Geometry
namespace J3ML::Geometry
{
using LinearAlgebra::Vector2;
// CaveGame AABB

View File

@@ -3,7 +3,7 @@
#include "LineSegment.h"
#include <J3ML/LinearAlgebra/Vector3.h>
namespace Geometry
namespace J3ML::Geometry
{
using namespace LinearAlgebra;
class Capsule

View File

@@ -6,9 +6,11 @@
#include "Plane.h"
#include <J3ML/LinearAlgebra/CoordinateFrame.h>
namespace Geometry
namespace J3ML::Geometry
{
using J3ML::LinearAlgebra::CoordinateFrame;
enum class FrustumType
{
Invalid,

View File

@@ -2,7 +2,7 @@
#include <J3ML/LinearAlgebra/Vector3.h>
namespace Geometry
namespace J3ML::Geometry
{
using LinearAlgebra::Vector3;
class LineSegment

View File

@@ -5,7 +5,7 @@
#include <J3ML/Geometry/LineSegment.h>
#include <J3ML/Geometry/Polyhedron.h>
namespace Geometry {
namespace J3ML::Geometry {
class OBB
{
public:

View File

@@ -1,13 +1,18 @@
#pragma once
#include <J3ML/LinearAlgebra/Vector3.h>
using namespace LinearAlgebra;
class Plane
namespace J3ML::Geometry
{
public:
Vector3 Position;
Vector3 Normal;
float distance = 0.f;
using J3ML::LinearAlgebra::Vector3;
};
class Plane
{
public:
Vector3 Position;
Vector3 Normal;
float distance = 0.f;
};
}

View File

@@ -1,6 +1,6 @@
#pragma once
namespace Geometry {
namespace J3ML::Geometry {
class Polygon {
};

View File

@@ -1,6 +1,6 @@
#pragma once
namespace Geometry
namespace J3ML::Geometry
{
class Polyhedron {

View File

@@ -5,7 +5,7 @@
#include <J3ML/LinearAlgebra/Vector2.h>
#include "AABB2D.h"
namespace Geometry {
namespace J3ML::Geometry {
using LinearAlgebra::Vector2;

View File

@@ -6,7 +6,7 @@
#include <J3ML/LinearAlgebra/Vector3.h>
namespace Geometry
namespace J3ML::Geometry
{
using LinearAlgebra::Vector3;
class Ray

View File

@@ -2,7 +2,7 @@
#include "J3ML/Geometry.h"
namespace Geometry
namespace J3ML::Geometry
{
class Sphere
{

View File

@@ -1,6 +1,6 @@
#pragma once
namespace Geometry
namespace J3ML::Geometry
{
class Triangle
{

View File

@@ -1,8 +1,10 @@
//
// Created by dawsh on 1/25/24.
//
#pragma once
#ifndef J3ML_TRIANGLE2D_H
#define J3ML_TRIANGLE2D_H
#endif //J3ML_TRIANGLE2D_H
namespace J3ML::Geometry
{
class Shape2D {};
class Triangle2D {
public:
};
}

View File

@@ -1,6 +1,6 @@
#pragma once
namespace Geometry
namespace J3ML::Geometry
{
class TriangleMesh
{

View File

@@ -6,7 +6,7 @@
#include <functional>
namespace Math
namespace J3ML::Math
{
const float Pi = M_PI;
inline float Radians(float degrees) { return degrees * (Pi/180.f); }
@@ -29,7 +29,7 @@ namespace Math
// Dawsh Linear Algebra Library - Everything you need for 3D math
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
class Vector2; // A type representing a position in a 2-dimensional coordinate space.
class Vector3; // A type representing a position in a 3-dimensional coordinate space.
class Vector4; // A type representing a position in a 4-dimensional coordinate space.

View File

@@ -2,7 +2,7 @@
#include <J3ML/LinearAlgebra.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
class Angle2D {
public:
float x;

View File

@@ -3,7 +3,7 @@
#include <J3ML/LinearAlgebra.h>
#include <J3ML/LinearAlgebra/Vector3.h>
namespace LinearAlgebra
namespace J3ML::LinearAlgebra
{
/// Transitional datatype, not useful for internal representation of rotation

View File

@@ -3,7 +3,7 @@
#include <J3ML/LinearAlgebra.h>
#include <J3ML/LinearAlgebra/Vector3.h>
namespace LinearAlgebra
namespace J3ML::LinearAlgebra
{
/// The CFrame is fundamentally 4 vectors (position, forward, right, up vector)
class CoordinateFrame

View File

@@ -2,7 +2,7 @@
#include <J3ML/LinearAlgebra.h>
#include <J3ML/LinearAlgebra/Vector3.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
// Essential Reading:
// http://www.essentialmath.com/GDC2012/GDC2012_JMV_Rotations.pdf

View File

@@ -3,7 +3,7 @@
#include <J3ML/LinearAlgebra.h>
#include <J3ML/LinearAlgebra/Vector2.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
class Matrix2x2 {
public:
enum { Rows = 3 };

View File

@@ -5,7 +5,7 @@
#include <J3ML/LinearAlgebra/Vector3.h>
#include <J3ML/LinearAlgebra/Quaternion.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
/// A 3-by-3 matrix for linear transformations of 3D geometry.
/* This can represent any kind of linear transformations of 3D geometry, which include
* rotation, scale, shear, mirroring, and orthographic projection.

View File

@@ -3,7 +3,7 @@
#include <J3ML/LinearAlgebra.h>
#include <J3ML/LinearAlgebra/Quaternion.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
/// A 4-by-4 matrix for affine transformations and perspective projections of 3D geometry.
/* This matrix can represent the most generic form of transformations for 3D objects,

View File

@@ -6,7 +6,7 @@
#include <J3ML/LinearAlgebra/AxisAngle.h>
#include <J3ML/LinearAlgebra/Matrix3x3.h>
namespace LinearAlgebra
namespace J3ML::LinearAlgebra
{
class Quaternion : public Vector4 {
public:

View File

@@ -3,7 +3,7 @@
#include <J3ML/LinearAlgebra.h>
#include <J3ML/LinearAlgebra/Matrix3x3.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
class Transform2D {
protected:
Matrix3x3 transformation;

View File

@@ -3,7 +3,7 @@
#include <J3ML/LinearAlgebra.h>
#include <cstddef>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
using namespace J3ML;

View File

@@ -6,7 +6,7 @@
#include <J3ML/LinearAlgebra/Angle2D.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
// A 3D (x, y, z) ordered pair.
class Vector3 {

View File

@@ -3,7 +3,7 @@
#include <J3ML/LinearAlgebra.h>
namespace LinearAlgebra {
namespace J3ML::LinearAlgebra {
class Vector4 {
public:
// Default Constructor