diff --git a/src/MarchingCubeShapeMap.cpp b/src/MarchingCubeShapeMap.cpp index 26b9f7b..447d92f 100644 --- a/src/MarchingCubeShapeMap.cpp +++ b/src/MarchingCubeShapeMap.cpp @@ -3,131 +3,309 @@ #include "MarchingCubeChunkRenderer.h" const std::map MarchingCubeChunkRenderer::RenderMap = { - {0, {glm::mat4(0.0f), 0}}, {1, {glm::mat4(0.0f), 0}}, - {2, {glm::mat4(0.0f), 0}}, {3, {glm::mat4(0.0f), 0}}, - {4, {glm::mat4(0.0f), 0}}, {5, {glm::mat4(0.0f), 0}}, - {6, {glm::mat4(0.0f), 0}}, {7, {glm::mat4(0.0f), 0}}, - {8, {glm::mat4(0.0f), 0}}, {9, {glm::mat4(0.0f), 0}}, - {10, {glm::mat4(0.0f), 0}}, {11, {glm::mat4(0.0f), 0}}, - {12, {glm::mat4(0.0f), 0}}, {13, {glm::mat4(0.0f), 0}}, - {14, {glm::mat4(0.0f), 0}}, {15, {glm::mat4(0.0f), 0}}, - {16, {glm::mat4(0.0f), 0}}, {17, {glm::mat4(0.0f), 0}}, - {18, {glm::mat4(0.0f), 0}}, {19, {glm::mat4(0.0f), 0}}, - {20, {glm::mat4(0.0f), 0}}, {21, {glm::mat4(0.0f), 0}}, - {22, {glm::mat4(0.0f), 0}}, {23, {glm::mat4(0.0f), 0}}, - {24, {glm::mat4(0.0f), 0}}, {25, {glm::mat4(0.0f), 0}}, - {26, {glm::mat4(0.0f), 0}}, {27, {glm::mat4(0.0f), 0}}, - {28, {glm::mat4(0.0f), 0}}, {29, {glm::mat4(0.0f), 0}}, - {30, {glm::mat4(0.0f), 0}}, {31, {glm::mat4(0.0f), 0}}, - {32, {glm::mat4(0.0f), 0}}, {33, {glm::mat4(0.0f), 0}}, - {34, {glm::mat4(0.0f), 0}}, {35, {glm::mat4(0.0f), 0}}, - {36, {glm::mat4(0.0f), 0}}, {37, {glm::mat4(0.0f), 0}}, - {38, {glm::mat4(0.0f), 0}}, {39, {glm::mat4(0.0f), 0}}, - {40, {glm::mat4(0.0f), 0}}, {41, {glm::mat4(0.0f), 0}}, - {42, {glm::mat4(0.0f), 0}}, {43, {glm::mat4(0.0f), 0}}, - {44, {glm::mat4(0.0f), 0}}, {45, {glm::mat4(0.0f), 0}}, - {46, {glm::mat4(0.0f), 0}}, {47, {glm::mat4(0.0f), 0}}, - {48, {glm::mat4(0.0f), 0}}, {49, {glm::mat4(0.0f), 0}}, - {50, {glm::mat4(0.0f), 0}}, {51, {glm::mat4(0.0f), 0}}, - {52, {glm::mat4(0.0f), 0}}, {53, {glm::mat4(0.0f), 0}}, - {54, {glm::mat4(0.0f), 0}}, {55, {glm::mat4(0.0f), 0}}, - {56, {glm::mat4(0.0f), 0}}, {57, {glm::mat4(0.0f), 0}}, - {58, {glm::mat4(0.0f), 0}}, {59, {glm::mat4(0.0f), 0}}, - {60, {glm::mat4(0.0f), 0}}, {61, {glm::mat4(0.0f), 0}}, - {62, {glm::mat4(0.0f), 0}}, {63, {glm::mat4(0.0f), 0}}, - {64, {glm::mat4(0.0f), 0}}, {65, {glm::mat4(0.0f), 0}}, - {66, {glm::mat4(0.0f), 0}}, {67, {glm::mat4(0.0f), 0}}, - {68, {glm::mat4(0.0f), 0}}, {69, {glm::mat4(0.0f), 0}}, - {70, {glm::mat4(0.0f), 0}}, {71, {glm::mat4(0.0f), 0}}, - {72, {glm::mat4(0.0f), 0}}, {73, {glm::mat4(0.0f), 0}}, - {74, {glm::mat4(0.0f), 0}}, {75, {glm::mat4(0.0f), 0}}, - {76, {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}}}; + {0, {glm::mat4(0.0f), 0}}, + {1, + {glm::mat4({-1.000000, -0.000000, -0.000000, 0.000000}, + {0.000000, -1.000000, 0.000000, 0.000000}, + {0.000000, 0.000000, 1.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 1}}, + {2, + {glm::mat4({-1.000000, -0.000000, 1.000000, 0.000000}, + {0.000000, -1.000000, -0.000000, 0.000000}, + {1.000000, 0.000000, -0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 1}}, + {3, + {glm::mat4({-0.000000, -0.000000, 1.000000, 0.000000}, + {0.000000, -1.000000, -0.000000, 0.000000}, + {1.000000, 0.000000, -0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 2}}, + {4, + {glm::mat4({1.000000, 0.000000, 0.000000, 0.000000}, + {0.000000, 1.000000, 0.000000, 0.000000}, + {0.000000, 0.000000, 1.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 1}}, + {5, + {glm::mat4({0.000000, -0.000000, 1.000000, 0.000000}, + {-1.000000, -0.000000, 0.000000, 0.000000}, + {0.000000, -1.000000, -0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 3}}, + {6, + {glm::mat4({-0.000000, 0.000000, 1.000000, 0.000000}, + {-1.000000, -0.000000, -0.000000, 0.000000}, + {0.000000, -1.000000, 0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 2}}, + {7, + {glm::mat4({-1.000000, 0.000000, 0.000000, 0.000000}, + {-0.000000, -0.000000, -1.000000, 0.000000}, + {0.000000, -1.000000, 0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 5}}, + {8, + {glm::mat4({-0.000000, 0.000000, 1.000000, 0.000000}, + {0.000000, 1.000000, 0.000000, 0.000000}, + {-1.000000, 0.000000, -0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 1}}, + {9, + {glm::mat4({-1.000000, 0.000000, 0.000000, 0.000000}, + {-0.000000, -0.000000, -1.000000, 0.000000}, + {0.000000, -1.000000, 0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 2}}, + {10, + {glm::mat4({-0.000000, 0.000000, 1.000000, 0.000000}, + {0.000000, 1.000000, 0.000000, 0.000000}, + {-1.000000, 0.000000, -0.000000, 0.000000}, + {0.000000, 0.000000, 0.000000, 1.000000}), + 3}}, + {11, {glm::mat4(0.0f), 0}}, + {12, {glm::mat4(0.0f), 0}}, + {13, {glm::mat4(0.0f), 0}}, + {14, {glm::mat4(0.0f), 0}}, + {15, {glm::mat4(0.0f), 0}}, + {16, {glm::mat4(0.0f), 0}}, + {17, {glm::mat4(0.0f), 0}}, + {18, {glm::mat4(0.0f), 0}}, + {19, {glm::mat4(0.0f), 0}}, + {20, {glm::mat4(0.0f), 0}}, + {21, {glm::mat4(0.0f), 0}}, + {22, {glm::mat4(0.0f), 0}}, + {23, {glm::mat4(0.0f), 0}}, + {24, {glm::mat4(0.0f), 0}}, + {25, {glm::mat4(0.0f), 0}}, + {26, {glm::mat4(0.0f), 0}}, + {27, {glm::mat4(0.0f), 0}}, + {28, {glm::mat4(0.0f), 0}}, + {29, {glm::mat4(0.0f), 0}}, + {30, {glm::mat4(0.0f), 0}}, + {31, {glm::mat4(0.0f), 0}}, + {32, {glm::mat4(0.0f), 0}}, + {33, {glm::mat4(0.0f), 0}}, + {34, {glm::mat4(0.0f), 0}}, + {35, {glm::mat4(0.0f), 0}}, + {36, {glm::mat4(0.0f), 0}}, + {37, {glm::mat4(0.0f), 0}}, + {38, {glm::mat4(0.0f), 0}}, + {39, {glm::mat4(0.0f), 0}}, + {40, {glm::mat4(0.0f), 0}}, + {41, {glm::mat4(0.0f), 0}}, + {42, {glm::mat4(0.0f), 0}}, + {43, {glm::mat4(0.0f), 0}}, + {44, {glm::mat4(0.0f), 0}}, + {45, {glm::mat4(0.0f), 0}}, + {46, {glm::mat4(0.0f), 0}}, + {47, {glm::mat4(0.0f), 0}}, + {48, {glm::mat4(0.0f), 0}}, + {49, {glm::mat4(0.0f), 0}}, + {50, {glm::mat4(0.0f), 0}}, + {51, {glm::mat4(0.0f), 0}}, + {52, {glm::mat4(0.0f), 0}}, + {53, {glm::mat4(0.0f), 0}}, + {54, {glm::mat4(0.0f), 0}}, + {55, {glm::mat4(0.0f), 0}}, + {56, {glm::mat4(0.0f), 0}}, + {57, {glm::mat4(0.0f), 0}}, + {58, {glm::mat4(0.0f), 0}}, + {59, {glm::mat4(0.0f), 0}}, + {60, {glm::mat4(0.0f), 0}}, + {61, {glm::mat4(0.0f), 0}}, + {62, {glm::mat4(0.0f), 0}}, + {63, {glm::mat4(0.0f), 0}}, + {64, {glm::mat4(0.0f), 0}}, + {65, {glm::mat4(0.0f), 0}}, + {66, {glm::mat4(0.0f), 0}}, + {67, {glm::mat4(0.0f), 0}}, + {68, {glm::mat4(0.0f), 0}}, + {69, {glm::mat4(0.0f), 0}}, + {70, {glm::mat4(0.0f), 0}}, + {71, {glm::mat4(0.0f), 0}}, + {72, {glm::mat4(0.0f), 0}}, + {73, {glm::mat4(0.0f), 0}}, + {74, {glm::mat4(0.0f), 0}}, + {75, {glm::mat4(0.0f), 0}}, + {76, {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}}}; diff --git a/src/Model.cpp b/src/Model.cpp index 353cbf2..c73bfee 100644 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -36,7 +36,14 @@ void Model::resize(glm::vec3 scale) { this->scale = this->scale * scale; } 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) { diff --git a/src/Model.h b/src/Model.h index 65d846f..cc02044 100644 --- a/src/Model.h +++ b/src/Model.h @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include #include @@ -63,8 +65,11 @@ public: void resize(glm::vec3 scale); // Scale the model 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 void setPosition(glm::vec3 position); + void printModel() { error.log(glm::to_string(model)); } + ~Model(); }; diff --git a/src/main.cpp b/src/main.cpp index d2a87d4..d83dbc6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,15 +84,22 @@ int main(int argc, char **argv) { glClearColor(0.2f, 0.3f, 0.3f, 1.0f); // Initialise terrain. - Terrain terrain = Terrain(); + // Terrain terrain = Terrain(); // Debug MC table Model debugSphere = Model(ROOT_DIR "data/game-models/DebugSphere/DebugSphere.obj"); debugSphere.resize(glm::vec3(0.1f)); - bool index[8] = {true, true, true, true, true, true, true, true}; - Model debugMCsegment = Model(ROOT_DIR "data/game-models/1/MetalFloor.obj"); + bool index[8] = {false, false, false, false, true, false, true, false}; + // 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 bool running = true; while (running) { @@ -123,7 +130,7 @@ int main(int argc, char **argv) { shader.setVec3("CameraPos", camera.getCameraPosition()); - terrain.draw(shader); + // terrain.draw(shader); // draw debug sphere at correct config debugMCsegment.draw(shader);