Added world rotation and started filling mc map

This commit is contained in:
Warwick 2022-08-22 16:38:48 +01:00
parent d328edd169
commit 90897a5698
4 changed files with 330 additions and 133 deletions

View file

@ -3,131 +3,309 @@
#include "MarchingCubeChunkRenderer.h" #include "MarchingCubeChunkRenderer.h"
const std::map<int, CubeData> MarchingCubeChunkRenderer::RenderMap = { const std::map<int, CubeData> MarchingCubeChunkRenderer::RenderMap = {
{0, {glm::mat4(0.0f), 0}}, {1, {glm::mat4(0.0f), 0}}, {0, {glm::mat4(0.0f), 0}},
{2, {glm::mat4(0.0f), 0}}, {3, {glm::mat4(0.0f), 0}}, {1,
{4, {glm::mat4(0.0f), 0}}, {5, {glm::mat4(0.0f), 0}}, {glm::mat4({-1.000000, -0.000000, -0.000000, 0.000000},
{6, {glm::mat4(0.0f), 0}}, {7, {glm::mat4(0.0f), 0}}, {0.000000, -1.000000, 0.000000, 0.000000},
{8, {glm::mat4(0.0f), 0}}, {9, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 1.000000, 0.000000},
{10, {glm::mat4(0.0f), 0}}, {11, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{12, {glm::mat4(0.0f), 0}}, {13, {glm::mat4(0.0f), 0}}, 1}},
{14, {glm::mat4(0.0f), 0}}, {15, {glm::mat4(0.0f), 0}}, {2,
{16, {glm::mat4(0.0f), 0}}, {17, {glm::mat4(0.0f), 0}}, {glm::mat4({-1.000000, -0.000000, 1.000000, 0.000000},
{18, {glm::mat4(0.0f), 0}}, {19, {glm::mat4(0.0f), 0}}, {0.000000, -1.000000, -0.000000, 0.000000},
{20, {glm::mat4(0.0f), 0}}, {21, {glm::mat4(0.0f), 0}}, {1.000000, 0.000000, -0.000000, 0.000000},
{22, {glm::mat4(0.0f), 0}}, {23, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{24, {glm::mat4(0.0f), 0}}, {25, {glm::mat4(0.0f), 0}}, 1}},
{26, {glm::mat4(0.0f), 0}}, {27, {glm::mat4(0.0f), 0}}, {3,
{28, {glm::mat4(0.0f), 0}}, {29, {glm::mat4(0.0f), 0}}, {glm::mat4({-0.000000, -0.000000, 1.000000, 0.000000},
{30, {glm::mat4(0.0f), 0}}, {31, {glm::mat4(0.0f), 0}}, {0.000000, -1.000000, -0.000000, 0.000000},
{32, {glm::mat4(0.0f), 0}}, {33, {glm::mat4(0.0f), 0}}, {1.000000, 0.000000, -0.000000, 0.000000},
{34, {glm::mat4(0.0f), 0}}, {35, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{36, {glm::mat4(0.0f), 0}}, {37, {glm::mat4(0.0f), 0}}, 2}},
{38, {glm::mat4(0.0f), 0}}, {39, {glm::mat4(0.0f), 0}}, {4,
{40, {glm::mat4(0.0f), 0}}, {41, {glm::mat4(0.0f), 0}}, {glm::mat4({1.000000, 0.000000, 0.000000, 0.000000},
{42, {glm::mat4(0.0f), 0}}, {43, {glm::mat4(0.0f), 0}}, {0.000000, 1.000000, 0.000000, 0.000000},
{44, {glm::mat4(0.0f), 0}}, {45, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 1.000000, 0.000000},
{46, {glm::mat4(0.0f), 0}}, {47, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{48, {glm::mat4(0.0f), 0}}, {49, {glm::mat4(0.0f), 0}}, 1}},
{50, {glm::mat4(0.0f), 0}}, {51, {glm::mat4(0.0f), 0}}, {5,
{52, {glm::mat4(0.0f), 0}}, {53, {glm::mat4(0.0f), 0}}, {glm::mat4({0.000000, -0.000000, 1.000000, 0.000000},
{54, {glm::mat4(0.0f), 0}}, {55, {glm::mat4(0.0f), 0}}, {-1.000000, -0.000000, 0.000000, 0.000000},
{56, {glm::mat4(0.0f), 0}}, {57, {glm::mat4(0.0f), 0}}, {0.000000, -1.000000, -0.000000, 0.000000},
{58, {glm::mat4(0.0f), 0}}, {59, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{60, {glm::mat4(0.0f), 0}}, {61, {glm::mat4(0.0f), 0}}, 3}},
{62, {glm::mat4(0.0f), 0}}, {63, {glm::mat4(0.0f), 0}}, {6,
{64, {glm::mat4(0.0f), 0}}, {65, {glm::mat4(0.0f), 0}}, {glm::mat4({-0.000000, 0.000000, 1.000000, 0.000000},
{66, {glm::mat4(0.0f), 0}}, {67, {glm::mat4(0.0f), 0}}, {-1.000000, -0.000000, -0.000000, 0.000000},
{68, {glm::mat4(0.0f), 0}}, {69, {glm::mat4(0.0f), 0}}, {0.000000, -1.000000, 0.000000, 0.000000},
{70, {glm::mat4(0.0f), 0}}, {71, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{72, {glm::mat4(0.0f), 0}}, {73, {glm::mat4(0.0f), 0}}, 2}},
{74, {glm::mat4(0.0f), 0}}, {75, {glm::mat4(0.0f), 0}}, {7,
{76, {glm::mat4(0.0f), 0}}, {77, {glm::mat4(0.0f), 0}}, {glm::mat4({-1.000000, 0.000000, 0.000000, 0.000000},
{78, {glm::mat4(0.0f), 0}}, {79, {glm::mat4(0.0f), 0}}, {-0.000000, -0.000000, -1.000000, 0.000000},
{80, {glm::mat4(0.0f), 0}}, {81, {glm::mat4(0.0f), 0}}, {0.000000, -1.000000, 0.000000, 0.000000},
{82, {glm::mat4(0.0f), 0}}, {83, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{84, {glm::mat4(0.0f), 0}}, {85, {glm::mat4(0.0f), 0}}, 5}},
{86, {glm::mat4(0.0f), 0}}, {87, {glm::mat4(0.0f), 0}}, {8,
{88, {glm::mat4(0.0f), 0}}, {89, {glm::mat4(0.0f), 0}}, {glm::mat4({-0.000000, 0.000000, 1.000000, 0.000000},
{90, {glm::mat4(0.0f), 0}}, {91, {glm::mat4(0.0f), 0}}, {0.000000, 1.000000, 0.000000, 0.000000},
{92, {glm::mat4(0.0f), 0}}, {93, {glm::mat4(0.0f), 0}}, {-1.000000, 0.000000, -0.000000, 0.000000},
{94, {glm::mat4(0.0f), 0}}, {95, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{96, {glm::mat4(0.0f), 0}}, {97, {glm::mat4(0.0f), 0}}, 1}},
{98, {glm::mat4(0.0f), 0}}, {99, {glm::mat4(0.0f), 0}}, {9,
{100, {glm::mat4(0.0f), 0}}, {101, {glm::mat4(0.0f), 0}}, {glm::mat4({-1.000000, 0.000000, 0.000000, 0.000000},
{102, {glm::mat4(0.0f), 0}}, {103, {glm::mat4(0.0f), 0}}, {-0.000000, -0.000000, -1.000000, 0.000000},
{104, {glm::mat4(0.0f), 0}}, {105, {glm::mat4(0.0f), 0}}, {0.000000, -1.000000, 0.000000, 0.000000},
{106, {glm::mat4(0.0f), 0}}, {107, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{108, {glm::mat4(0.0f), 0}}, {109, {glm::mat4(0.0f), 0}}, 2}},
{110, {glm::mat4(0.0f), 0}}, {111, {glm::mat4(0.0f), 0}}, {10,
{112, {glm::mat4(0.0f), 0}}, {113, {glm::mat4(0.0f), 0}}, {glm::mat4({-0.000000, 0.000000, 1.000000, 0.000000},
{114, {glm::mat4(0.0f), 0}}, {115, {glm::mat4(0.0f), 0}}, {0.000000, 1.000000, 0.000000, 0.000000},
{116, {glm::mat4(0.0f), 0}}, {117, {glm::mat4(0.0f), 0}}, {-1.000000, 0.000000, -0.000000, 0.000000},
{118, {glm::mat4(0.0f), 0}}, {119, {glm::mat4(0.0f), 0}}, {0.000000, 0.000000, 0.000000, 1.000000}),
{120, {glm::mat4(0.0f), 0}}, {121, {glm::mat4(0.0f), 0}}, 3}},
{122, {glm::mat4(0.0f), 0}}, {123, {glm::mat4(0.0f), 0}}, {11, {glm::mat4(0.0f), 0}},
{124, {glm::mat4(0.0f), 0}}, {125, {glm::mat4(0.0f), 0}}, {12, {glm::mat4(0.0f), 0}},
{126, {glm::mat4(0.0f), 0}}, {127, {glm::mat4(0.0f), 0}}, {13, {glm::mat4(0.0f), 0}},
{128, {glm::mat4(0.0f), 0}}, {129, {glm::mat4(0.0f), 0}}, {14, {glm::mat4(0.0f), 0}},
{130, {glm::mat4(0.0f), 0}}, {131, {glm::mat4(0.0f), 0}}, {15, {glm::mat4(0.0f), 0}},
{132, {glm::mat4(0.0f), 0}}, {133, {glm::mat4(0.0f), 0}}, {16, {glm::mat4(0.0f), 0}},
{134, {glm::mat4(0.0f), 0}}, {135, {glm::mat4(0.0f), 0}}, {17, {glm::mat4(0.0f), 0}},
{136, {glm::mat4(0.0f), 0}}, {137, {glm::mat4(0.0f), 0}}, {18, {glm::mat4(0.0f), 0}},
{138, {glm::mat4(0.0f), 0}}, {139, {glm::mat4(0.0f), 0}}, {19, {glm::mat4(0.0f), 0}},
{140, {glm::mat4(0.0f), 0}}, {141, {glm::mat4(0.0f), 0}}, {20, {glm::mat4(0.0f), 0}},
{142, {glm::mat4(0.0f), 0}}, {143, {glm::mat4(0.0f), 0}}, {21, {glm::mat4(0.0f), 0}},
{144, {glm::mat4(0.0f), 0}}, {145, {glm::mat4(0.0f), 0}}, {22, {glm::mat4(0.0f), 0}},
{146, {glm::mat4(0.0f), 0}}, {147, {glm::mat4(0.0f), 0}}, {23, {glm::mat4(0.0f), 0}},
{148, {glm::mat4(0.0f), 0}}, {149, {glm::mat4(0.0f), 0}}, {24, {glm::mat4(0.0f), 0}},
{150, {glm::mat4(0.0f), 0}}, {151, {glm::mat4(0.0f), 0}}, {25, {glm::mat4(0.0f), 0}},
{152, {glm::mat4(0.0f), 0}}, {153, {glm::mat4(0.0f), 0}}, {26, {glm::mat4(0.0f), 0}},
{154, {glm::mat4(0.0f), 0}}, {155, {glm::mat4(0.0f), 0}}, {27, {glm::mat4(0.0f), 0}},
{156, {glm::mat4(0.0f), 0}}, {157, {glm::mat4(0.0f), 0}}, {28, {glm::mat4(0.0f), 0}},
{158, {glm::mat4(0.0f), 0}}, {159, {glm::mat4(0.0f), 0}}, {29, {glm::mat4(0.0f), 0}},
{160, {glm::mat4(0.0f), 0}}, {161, {glm::mat4(0.0f), 0}}, {30, {glm::mat4(0.0f), 0}},
{162, {glm::mat4(0.0f), 0}}, {163, {glm::mat4(0.0f), 0}}, {31, {glm::mat4(0.0f), 0}},
{164, {glm::mat4(0.0f), 0}}, {165, {glm::mat4(0.0f), 0}}, {32, {glm::mat4(0.0f), 0}},
{166, {glm::mat4(0.0f), 0}}, {167, {glm::mat4(0.0f), 0}}, {33, {glm::mat4(0.0f), 0}},
{168, {glm::mat4(0.0f), 0}}, {169, {glm::mat4(0.0f), 0}}, {34, {glm::mat4(0.0f), 0}},
{170, {glm::mat4(0.0f), 0}}, {171, {glm::mat4(0.0f), 0}}, {35, {glm::mat4(0.0f), 0}},
{172, {glm::mat4(0.0f), 0}}, {173, {glm::mat4(0.0f), 0}}, {36, {glm::mat4(0.0f), 0}},
{174, {glm::mat4(0.0f), 0}}, {175, {glm::mat4(0.0f), 0}}, {37, {glm::mat4(0.0f), 0}},
{176, {glm::mat4(0.0f), 0}}, {177, {glm::mat4(0.0f), 0}}, {38, {glm::mat4(0.0f), 0}},
{178, {glm::mat4(0.0f), 0}}, {179, {glm::mat4(0.0f), 0}}, {39, {glm::mat4(0.0f), 0}},
{180, {glm::mat4(0.0f), 0}}, {181, {glm::mat4(0.0f), 0}}, {40, {glm::mat4(0.0f), 0}},
{182, {glm::mat4(0.0f), 0}}, {183, {glm::mat4(0.0f), 0}}, {41, {glm::mat4(0.0f), 0}},
{184, {glm::mat4(0.0f), 0}}, {185, {glm::mat4(0.0f), 0}}, {42, {glm::mat4(0.0f), 0}},
{186, {glm::mat4(0.0f), 0}}, {187, {glm::mat4(0.0f), 0}}, {43, {glm::mat4(0.0f), 0}},
{188, {glm::mat4(0.0f), 0}}, {189, {glm::mat4(0.0f), 0}}, {44, {glm::mat4(0.0f), 0}},
{190, {glm::mat4(0.0f), 0}}, {191, {glm::mat4(0.0f), 0}}, {45, {glm::mat4(0.0f), 0}},
{192, {glm::mat4(0.0f), 0}}, {193, {glm::mat4(0.0f), 0}}, {46, {glm::mat4(0.0f), 0}},
{194, {glm::mat4(0.0f), 0}}, {195, {glm::mat4(0.0f), 0}}, {47, {glm::mat4(0.0f), 0}},
{196, {glm::mat4(0.0f), 0}}, {197, {glm::mat4(0.0f), 0}}, {48, {glm::mat4(0.0f), 0}},
{198, {glm::mat4(0.0f), 0}}, {199, {glm::mat4(0.0f), 0}}, {49, {glm::mat4(0.0f), 0}},
{200, {glm::mat4(0.0f), 0}}, {201, {glm::mat4(0.0f), 0}}, {50, {glm::mat4(0.0f), 0}},
{202, {glm::mat4(0.0f), 0}}, {203, {glm::mat4(0.0f), 0}}, {51, {glm::mat4(0.0f), 0}},
{204, {glm::mat4(0.0f), 0}}, {205, {glm::mat4(0.0f), 0}}, {52, {glm::mat4(0.0f), 0}},
{206, {glm::mat4(0.0f), 0}}, {207, {glm::mat4(0.0f), 0}}, {53, {glm::mat4(0.0f), 0}},
{208, {glm::mat4(0.0f), 0}}, {209, {glm::mat4(0.0f), 0}}, {54, {glm::mat4(0.0f), 0}},
{210, {glm::mat4(0.0f), 0}}, {211, {glm::mat4(0.0f), 0}}, {55, {glm::mat4(0.0f), 0}},
{212, {glm::mat4(0.0f), 0}}, {213, {glm::mat4(0.0f), 0}}, {56, {glm::mat4(0.0f), 0}},
{214, {glm::mat4(0.0f), 0}}, {215, {glm::mat4(0.0f), 0}}, {57, {glm::mat4(0.0f), 0}},
{216, {glm::mat4(0.0f), 0}}, {217, {glm::mat4(0.0f), 0}}, {58, {glm::mat4(0.0f), 0}},
{218, {glm::mat4(0.0f), 0}}, {219, {glm::mat4(0.0f), 0}}, {59, {glm::mat4(0.0f), 0}},
{220, {glm::mat4(0.0f), 0}}, {221, {glm::mat4(0.0f), 0}}, {60, {glm::mat4(0.0f), 0}},
{222, {glm::mat4(0.0f), 0}}, {223, {glm::mat4(0.0f), 0}}, {61, {glm::mat4(0.0f), 0}},
{224, {glm::mat4(0.0f), 0}}, {225, {glm::mat4(0.0f), 0}}, {62, {glm::mat4(0.0f), 0}},
{226, {glm::mat4(0.0f), 0}}, {227, {glm::mat4(0.0f), 0}}, {63, {glm::mat4(0.0f), 0}},
{228, {glm::mat4(0.0f), 0}}, {229, {glm::mat4(0.0f), 0}}, {64, {glm::mat4(0.0f), 0}},
{230, {glm::mat4(0.0f), 0}}, {231, {glm::mat4(0.0f), 0}}, {65, {glm::mat4(0.0f), 0}},
{232, {glm::mat4(0.0f), 0}}, {233, {glm::mat4(0.0f), 0}}, {66, {glm::mat4(0.0f), 0}},
{234, {glm::mat4(0.0f), 0}}, {235, {glm::mat4(0.0f), 0}}, {67, {glm::mat4(0.0f), 0}},
{236, {glm::mat4(0.0f), 0}}, {237, {glm::mat4(0.0f), 0}}, {68, {glm::mat4(0.0f), 0}},
{238, {glm::mat4(0.0f), 0}}, {239, {glm::mat4(0.0f), 0}}, {69, {glm::mat4(0.0f), 0}},
{240, {glm::mat4(0.0f), 0}}, {241, {glm::mat4(0.0f), 0}}, {70, {glm::mat4(0.0f), 0}},
{242, {glm::mat4(0.0f), 0}}, {243, {glm::mat4(0.0f), 0}}, {71, {glm::mat4(0.0f), 0}},
{244, {glm::mat4(0.0f), 0}}, {245, {glm::mat4(0.0f), 0}}, {72, {glm::mat4(0.0f), 0}},
{246, {glm::mat4(0.0f), 0}}, {247, {glm::mat4(0.0f), 0}}, {73, {glm::mat4(0.0f), 0}},
{248, {glm::mat4(0.0f), 0}}, {249, {glm::mat4(0.0f), 0}}, {74, {glm::mat4(0.0f), 0}},
{250, {glm::mat4(0.0f), 0}}, {251, {glm::mat4(0.0f), 0}}, {75, {glm::mat4(0.0f), 0}},
{252, {glm::mat4(0.0f), 0}}, {253, {glm::mat4(0.0f), 0}}, {76, {glm::mat4(0.0f), 0}},
{254, {glm::mat4(0.0f), 0}}, {255, {glm::mat4(0.0f), 0}}}; {77, {glm::mat4(0.0f), 0}},
{78, {glm::mat4(0.0f), 0}},
{79, {glm::mat4(0.0f), 0}},
{80, {glm::mat4(0.0f), 0}},
{81, {glm::mat4(0.0f), 0}},
{82, {glm::mat4(0.0f), 0}},
{83, {glm::mat4(0.0f), 0}},
{84, {glm::mat4(0.0f), 0}},
{85, {glm::mat4(0.0f), 0}},
{86, {glm::mat4(0.0f), 0}},
{87, {glm::mat4(0.0f), 0}},
{88, {glm::mat4(0.0f), 0}},
{89, {glm::mat4(0.0f), 0}},
{90, {glm::mat4(0.0f), 0}},
{91, {glm::mat4(0.0f), 0}},
{92, {glm::mat4(0.0f), 0}},
{93, {glm::mat4(0.0f), 0}},
{94, {glm::mat4(0.0f), 0}},
{95, {glm::mat4(0.0f), 0}},
{96, {glm::mat4(0.0f), 0}},
{97, {glm::mat4(0.0f), 0}},
{98, {glm::mat4(0.0f), 0}},
{99, {glm::mat4(0.0f), 0}},
{100, {glm::mat4(0.0f), 0}},
{101, {glm::mat4(0.0f), 0}},
{102, {glm::mat4(0.0f), 0}},
{103, {glm::mat4(0.0f), 0}},
{104, {glm::mat4(0.0f), 0}},
{105, {glm::mat4(0.0f), 0}},
{106, {glm::mat4(0.0f), 0}},
{107, {glm::mat4(0.0f), 0}},
{108, {glm::mat4(0.0f), 0}},
{109, {glm::mat4(0.0f), 0}},
{110, {glm::mat4(0.0f), 0}},
{111, {glm::mat4(0.0f), 0}},
{112, {glm::mat4(0.0f), 0}},
{113, {glm::mat4(0.0f), 0}},
{114, {glm::mat4(0.0f), 0}},
{115, {glm::mat4(0.0f), 0}},
{116, {glm::mat4(0.0f), 0}},
{117, {glm::mat4(0.0f), 0}},
{118, {glm::mat4(0.0f), 0}},
{119, {glm::mat4(0.0f), 0}},
{120, {glm::mat4(0.0f), 0}},
{121, {glm::mat4(0.0f), 0}},
{122, {glm::mat4(0.0f), 0}},
{123, {glm::mat4(0.0f), 0}},
{124, {glm::mat4(0.0f), 0}},
{125, {glm::mat4(0.0f), 0}},
{126, {glm::mat4(0.0f), 0}},
{127, {glm::mat4(0.0f), 0}},
{128, {glm::mat4(0.0f), 0}},
{129, {glm::mat4(0.0f), 0}},
{130, {glm::mat4(0.0f), 0}},
{131, {glm::mat4(0.0f), 0}},
{132, {glm::mat4(0.0f), 0}},
{133, {glm::mat4(0.0f), 0}},
{134, {glm::mat4(0.0f), 0}},
{135, {glm::mat4(0.0f), 0}},
{136, {glm::mat4(0.0f), 0}},
{137, {glm::mat4(0.0f), 0}},
{138, {glm::mat4(0.0f), 0}},
{139, {glm::mat4(0.0f), 0}},
{140, {glm::mat4(0.0f), 0}},
{141, {glm::mat4(0.0f), 0}},
{142, {glm::mat4(0.0f), 0}},
{143, {glm::mat4(0.0f), 0}},
{144, {glm::mat4(0.0f), 0}},
{145, {glm::mat4(0.0f), 0}},
{146, {glm::mat4(0.0f), 0}},
{147, {glm::mat4(0.0f), 0}},
{148, {glm::mat4(0.0f), 0}},
{149, {glm::mat4(0.0f), 0}},
{150, {glm::mat4(0.0f), 0}},
{151, {glm::mat4(0.0f), 0}},
{152, {glm::mat4(0.0f), 0}},
{153, {glm::mat4(0.0f), 0}},
{154, {glm::mat4(0.0f), 0}},
{155, {glm::mat4(0.0f), 0}},
{156, {glm::mat4(0.0f), 0}},
{157, {glm::mat4(0.0f), 0}},
{158, {glm::mat4(0.0f), 0}},
{159, {glm::mat4(0.0f), 0}},
{160, {glm::mat4(0.0f), 0}},
{161, {glm::mat4(0.0f), 0}},
{162, {glm::mat4(0.0f), 0}},
{163, {glm::mat4(0.0f), 0}},
{164, {glm::mat4(0.0f), 0}},
{165, {glm::mat4(0.0f), 0}},
{166, {glm::mat4(0.0f), 0}},
{167, {glm::mat4(0.0f), 0}},
{168, {glm::mat4(0.0f), 0}},
{169, {glm::mat4(0.0f), 0}},
{170, {glm::mat4(0.0f), 0}},
{171, {glm::mat4(0.0f), 0}},
{172, {glm::mat4(0.0f), 0}},
{173, {glm::mat4(0.0f), 0}},
{174, {glm::mat4(0.0f), 0}},
{175, {glm::mat4(0.0f), 0}},
{176, {glm::mat4(0.0f), 0}},
{177, {glm::mat4(0.0f), 0}},
{178, {glm::mat4(0.0f), 0}},
{179, {glm::mat4(0.0f), 0}},
{180, {glm::mat4(0.0f), 0}},
{181, {glm::mat4(0.0f), 0}},
{182, {glm::mat4(0.0f), 0}},
{183, {glm::mat4(0.0f), 0}},
{184, {glm::mat4(0.0f), 0}},
{185, {glm::mat4(0.0f), 0}},
{186, {glm::mat4(0.0f), 0}},
{187, {glm::mat4(0.0f), 0}},
{188, {glm::mat4(0.0f), 0}},
{189, {glm::mat4(0.0f), 0}},
{190, {glm::mat4(0.0f), 0}},
{191, {glm::mat4(0.0f), 0}},
{192, {glm::mat4(0.0f), 0}},
{193, {glm::mat4(0.0f), 0}},
{194, {glm::mat4(0.0f), 0}},
{195, {glm::mat4(0.0f), 0}},
{196, {glm::mat4(0.0f), 0}},
{197, {glm::mat4(0.0f), 0}},
{198, {glm::mat4(0.0f), 0}},
{199, {glm::mat4(0.0f), 0}},
{200, {glm::mat4(0.0f), 0}},
{201, {glm::mat4(0.0f), 0}},
{202, {glm::mat4(0.0f), 0}},
{203, {glm::mat4(0.0f), 0}},
{204, {glm::mat4(0.0f), 0}},
{205, {glm::mat4(0.0f), 0}},
{206, {glm::mat4(0.0f), 0}},
{207, {glm::mat4(0.0f), 0}},
{208, {glm::mat4(0.0f), 0}},
{209, {glm::mat4(0.0f), 0}},
{210, {glm::mat4(0.0f), 0}},
{211, {glm::mat4(0.0f), 0}},
{212, {glm::mat4(0.0f), 0}},
{213, {glm::mat4(0.0f), 0}},
{214, {glm::mat4(0.0f), 0}},
{215, {glm::mat4(0.0f), 0}},
{216, {glm::mat4(0.0f), 0}},
{217, {glm::mat4(0.0f), 0}},
{218, {glm::mat4(0.0f), 0}},
{219, {glm::mat4(0.0f), 0}},
{220, {glm::mat4(0.0f), 0}},
{221, {glm::mat4(0.0f), 0}},
{222, {glm::mat4(0.0f), 0}},
{223, {glm::mat4(0.0f), 0}},
{224, {glm::mat4(0.0f), 0}},
{225, {glm::mat4(0.0f), 0}},
{226, {glm::mat4(0.0f), 0}},
{227, {glm::mat4(0.0f), 0}},
{228, {glm::mat4(0.0f), 0}},
{229, {glm::mat4(0.0f), 0}},
{230, {glm::mat4(0.0f), 0}},
{231, {glm::mat4(0.0f), 0}},
{232, {glm::mat4(0.0f), 0}},
{233, {glm::mat4(0.0f), 0}},
{234, {glm::mat4(0.0f), 0}},
{235, {glm::mat4(0.0f), 0}},
{236, {glm::mat4(0.0f), 0}},
{237, {glm::mat4(0.0f), 0}},
{238, {glm::mat4(0.0f), 0}},
{239, {glm::mat4(0.0f), 0}},
{240, {glm::mat4(0.0f), 0}},
{241, {glm::mat4(0.0f), 0}},
{242, {glm::mat4(0.0f), 0}},
{243, {glm::mat4(0.0f), 0}},
{244, {glm::mat4(0.0f), 0}},
{245, {glm::mat4(0.0f), 0}},
{246, {glm::mat4(0.0f), 0}},
{247, {glm::mat4(0.0f), 0}},
{248, {glm::mat4(0.0f), 0}},
{249, {glm::mat4(0.0f), 0}},
{250, {glm::mat4(0.0f), 0}},
{251, {glm::mat4(0.0f), 0}},
{252, {glm::mat4(0.0f), 0}},
{253, {glm::mat4(0.0f), 0}},
{254, {glm::mat4(0.0f), 0}},
{255, {glm::mat4(0.0f), 0}}};

View file

@ -36,7 +36,14 @@ void Model::resize(glm::vec3 scale) {
this->scale = this->scale * scale; this->scale = this->scale * scale;
} }
void Model::rotate(float angle, glm::vec3 axis) { void Model::rotate(float angle, glm::vec3 axis) {
this->model = glm::rotate(this->model, angle, axis); this->model = glm::rotate(this->model, glm::radians(angle), axis);
}
void Model::worldRotate(float angle, glm::vec3 axis) {
// create world space rotation matrix
glm::mat4 rotate = glm::mat4(1.0f);
rotate = glm::rotate(rotate, glm::radians(angle), axis);
// Swapping the multiplication would apply this to model space also
this->model = rotate * this->model;
} }
void Model::loadModel(std::string path) { void Model::loadModel(std::string path) {

View file

@ -8,6 +8,8 @@
#include <assimp/scene.h> #include <assimp/scene.h>
#include <glm/glm.hpp> #include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/euler_angles.hpp>
#include <glm/gtx/string_cast.hpp>
#include <string> #include <string>
#include <vector> #include <vector>
@ -63,8 +65,11 @@ public:
void resize(glm::vec3 scale); void resize(glm::vec3 scale);
// Scale the model // Scale the model
void rotate(float angle, glm::vec3 axis); void rotate(float angle, glm::vec3 axis);
void worldRotate(float angle, glm::vec3 axis);
// Set the postion of the model to a set of coordinates // Set the postion of the model to a set of coordinates
void setPosition(glm::vec3 position); void setPosition(glm::vec3 position);
void printModel() { error.log(glm::to_string(model)); }
~Model(); ~Model();
}; };

View file

@ -84,15 +84,22 @@ int main(int argc, char **argv) {
glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
// Initialise terrain. // Initialise terrain.
Terrain terrain = Terrain(); // Terrain terrain = Terrain();
// Debug MC table // Debug MC table
Model debugSphere = Model debugSphere =
Model(ROOT_DIR "data/game-models/DebugSphere/DebugSphere.obj"); Model(ROOT_DIR "data/game-models/DebugSphere/DebugSphere.obj");
debugSphere.resize(glm::vec3(0.1f)); debugSphere.resize(glm::vec3(0.1f));
bool index[8] = {true, true, true, true, true, true, true, true}; bool index[8] = {false, false, false, false, true, false, true, false};
Model debugMCsegment = Model(ROOT_DIR "data/game-models/1/MetalFloor.obj"); // bool index[8] = {true, true, true, true, true, true, true, true};
Model debugMCsegment = Model(ROOT_DIR "data/game-models/3/MetalFloor.obj");
// debugMCsegment.worldRotate(180.0f, glm::vec3(1, 0, 1));
// debugMCsegment.worldRotate(-90.0f, glm::vec3(0, 1, 0));
// debugMCsegment.worldRotate(90.0f, glm::vec3(1, 0, 0));
debugMCsegment.worldRotate(-90.0f, glm::vec3(0, 1, 0));
debugMCsegment.printModel();
// Game loop // Game loop
bool running = true; bool running = true;
while (running) { while (running) {
@ -123,7 +130,7 @@ int main(int argc, char **argv) {
shader.setVec3("CameraPos", camera.getCameraPosition()); shader.setVec3("CameraPos", camera.getCameraPosition());
terrain.draw(shader); // terrain.draw(shader);
// draw debug sphere at correct config // draw debug sphere at correct config
debugMCsegment.draw(shader); debugMCsegment.draw(shader);