zeus/test/main.cpp

80 lines
2.9 KiB
C++
Raw Normal View History

2015-08-31 21:27:09 +00:00
#include <iostream>
2015-10-12 00:33:42 +00:00
#include <iomanip>
2016-03-04 23:03:26 +00:00
#include <zeus/zeus.hpp>
2015-08-31 21:27:09 +00:00
// This is only for testing, do NOT do this normally
2016-03-04 23:03:26 +00:00
using namespace zeus;
2016-07-08 18:42:42 +00:00
union Color {
struct
{
zeus::Comp8 r, g, b, a;
};
2016-03-04 23:03:26 +00:00
zeus::Comp32 rgba;
};
2015-08-31 21:27:09 +00:00
int main()
{
2016-03-04 23:03:26 +00:00
zeus::detectCPU();
2015-08-31 21:27:09 +00:00
assert(!CAABox({100, 100, 100}, {100, 100, 100}).invalid());
assert(CAABox().invalid());
2016-04-26 10:36:44 +00:00
CVector3f vec{320.f, 1.f, 0.66568f};
2015-08-31 21:27:09 +00:00
assert(vec.canBeNormalized());
assert(!vec.isZero());
assert(CVector3f().isZero());
assert(!vec.normalized().canBeNormalized());
float blarg = 5.f;
CVector3f t{100, 100, 200};
2016-03-04 23:03:26 +00:00
blarg = clamp(0.f, blarg, 1.f);
2015-08-31 21:27:09 +00:00
CAABox test{{-100, -100, -100}, {100, 100, 100}};
CAABox test2{{-100, -100, -100}, {100, 100, 100}};
2016-07-08 18:42:42 +00:00
CAABox test3{{-50, -50, -50}, {50, 50, 50}};
2015-08-31 21:27:09 +00:00
CAABox test4{{-50, -50, -105}, {50, 50, 105}};
CVector3f point(-90, 67, -105);
CVector3f closestPoint = test.closestPointAlongVector(point);
2015-10-12 00:33:42 +00:00
CVector3d doubleVec(100, -100, -200);
2017-01-21 05:57:34 +00:00
zeus::CAABox aabb1{208.9f, -83.9f, 17.7f, 211.9f, -80.9f, 25.7f};
zeus::CVector3f center1 = aabb1.center();
zeus::CVector3f extents1 = aabb1.extents() * 2.f;
2017-01-21 06:20:34 +00:00
zeus::CAABox aabb2{211.8f, -81.4f, 22.3f, 212.8f, -80.4f, 25.0f};
2017-01-21 05:57:34 +00:00
zeus::CVector3f center2 = aabb2.center();
zeus::CVector3f extents2 = aabb2.extents() * 2.f;
zeus::CAABox diffAABB = aabb1.booleanIntersection(aabb2);
zeus::CVector3f centerDiff = aabb2.center();
zeus::CVector3f extentsDiff = aabb2.extents() * 2.f;
2015-08-31 21:27:09 +00:00
assert(t.isEqu(t));
assert(test.inside(test));
assert(test2.inside(test));
assert(test3.inside(test));
assert(!test4.inside(test));
2017-12-18 03:09:07 +00:00
CAABox aabb(-1.f, 1.f);
CSphere s1(zeus::CVector3f(0.f), 1);
CSphere s2(zeus::CVector3f(1.f, 0.f, 0.f), 1);
CSphere s3(zeus::CVector3f(3.f, 0.f, 0.f), 1);
2015-11-02 18:44:46 +00:00
2016-03-04 23:03:26 +00:00
std::cout << min(1, 3) << std::endl;
std::cout << min(2, 1) << std::endl;
std::cout << max(1, 3) << std::endl;
std::cout << max(2, 1) << std::endl;
2016-07-08 18:42:42 +00:00
std::cout << clamp(-50, 100, 50) << std::endl;
2016-03-04 23:03:26 +00:00
std::cout << clamp(-50, -100, 50) << std::endl;
std::cout << powF(6.66663489, 2) << std::endl;
std::cout << invSqrtF(1) << std::endl;
std::cout << floorPowerOfTwo(256) << std::endl;
2016-07-08 18:42:42 +00:00
std::cout << " Test 1 " << (aabb.intersects(s1) ? "succeeded" : "failed") << std::endl;
std::cout << " Test 2 " << (aabb.intersects(s2) ? "succeeded" : "failed") << std::endl;
std::cout << " Test 3 " << (aabb.intersects(s3) ? "succeeded" : "failed") << std::endl;
2016-04-26 10:36:44 +00:00
CLineSeg line({-89.120926f, 59.328712f, 3.265882f}, {-90.120926f, 59.328712f, 3.265882f});
CColor ctest1;
2016-07-08 18:42:42 +00:00
ctest1.fromHSV(0, 255 / 255.f, .5);
float h, s, v;
ctest1.toHSV(h, s, v);
std::cout << (int)ctest1.r << " " << (int)ctest1.g << " " << (int)ctest1.b << " " << (int)ctest1.a << std::endl;
std::cout << h << " " << s << " " << v << " " << (float)(ctest1.a / 255.f) << std::endl;
2015-08-31 21:27:09 +00:00
return 0;
}