Files
j3ml/main.cpp
josh 2bd27c5f3e
All checks were successful
Run ReCI Build Test / Explore-Gitea-Actions (push) Successful in 2m18s
Build Docs With Doxygen / Explore-Gitea-Actions (push) Successful in 33s
Testing RoundTrip for new rotation type conversions
2025-03-02 05:22:13 -05:00

72 lines
1.8 KiB
C++

/// Josh's 3D Math Library
/// A C++20 Library for 3D Math, Computer Graphics, and Scientific Computing.
/// Developed and Maintained by Josh O'Leary @ Redacted Software.
/// Special Thanks to William Tomasine II and Maxine Hayes.
/// (c) 2024 Redacted Software
/// This work is dedicated to the public domain.
/// @file main.cpp
/// @desc Demonstrates J3ML features.
/// @edit 2024-07-06
#include <iostream>
#include <J3ML/LinearAlgebra.hpp>
#include <J3ML/Geometry.hpp>
#include <J3ML/J3ML.hpp>
#include <jlog/Logger.hpp>
int main(int argc, char** argv)
{
Matrix3x3 matrix_rep = {
0.9902160, 0.0000000, 0.1395431,
0.1273699, 0.4084874, -0.9038334,
-0.0570016, 0.9127640, 0.4044908};
Quaternion quat_rep = {0.5425029, 0.0586955, 0.0380374, 0.8371371};
AxisAngle aa_rep = { {0.9917912, 0.1073057, 0.069539}, 1.1575362};
EulerAngleXYZ euler_rep = {1.15, 0.14,0};
Quaternion q_from_matrix = Quaternion(matrix_rep);
assert(quat_rep.Equals(q_from_matrix));
using namespace J3ML::Math;
// Test quadrant
for (float r = 0; r < TwoPi; r+=0.25f)
{
Quadrant q = QuadrantOf(r);
if (q == Quadrant::I)
std::cout << "I" << std::endl;
if (q == Quadrant::II)
std::cout << "II" << std::endl;
if (q == Quadrant::III)
std::cout << "III" << std::endl;
if (q == Quadrant::IV)
std::cout << "IV" << std::endl;
}
for (int i = 10; i < 9999999; i*=1.5f) {
std::cout << J3ML::Math::Functions::Truncate(i) << std::endl;
}
Ray a({420, 0, 0}, {1, 0, 0});
std::cout << a << std::endl;
std::cout << "j3ml demo coming soon" << std::endl;
return 0;
}
#ifdef __WIN32
extern "C" {
int wmain(int argc, wchar_t* argv[])
{
return main(argc, reinterpret_cast<char **>(argv));
}
};
#endif