mirror of
https://github.com/allemangD/toddcox-visualize.git
synced 2025-11-10 12:02:47 -05:00
add basic 4d rotation matrix utility
This commit is contained in:
@@ -105,3 +105,12 @@ std::vector<glm::vec4> plane_intersections(std::vector<glm::vec4> normals) {
|
|||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
glm::mat4 utilRotate(const int u, const int v, const float theta) {
|
||||||
|
auto res = glm::identity<glm::mat4>();
|
||||||
|
res[u][u] = std::cos(theta);
|
||||||
|
res[u][v] = std::sin(theta);
|
||||||
|
res[v][u] = -std::sin(theta);
|
||||||
|
res[v][v] = std::cos(theta);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
@@ -92,11 +92,14 @@ int main(int argc, char *argv[]) {
|
|||||||
glm::mat4 proj = glm::ortho(-pwidth, pwidth, -pheight, pheight, -100.0f, 100.0f);
|
glm::mat4 proj = glm::ortho(-pwidth, pwidth, -pheight, pheight, -100.0f, 100.0f);
|
||||||
glUniformMatrix4fv(0, 1, false, glm::value_ptr(proj));
|
glUniformMatrix4fv(0, 1, false, glm::value_ptr(proj));
|
||||||
|
|
||||||
auto t = (float) glfwGetTime() / 3;
|
auto t = (float) glfwGetTime() / 5;
|
||||||
auto view = glm::identity<glm::mat4>();
|
auto view = glm::identity<glm::mat4>();
|
||||||
view = glm::rotate(view, t / 1, glm::vec3(0, 1, 0));
|
view *= utilRotate(0, 1, t * 0.7f);
|
||||||
view = glm::rotate(view, t / 3, glm::vec3(0, 0, 1));
|
view *= utilRotate(0, 2, t * 0.8f);
|
||||||
view = glm::rotate(view, t / 4, glm::vec3(1, 0, 0));
|
view *= utilRotate(0, 3, t * 1.0f);
|
||||||
|
view *= utilRotate(1, 2, -t * 1.1f);
|
||||||
|
view *= utilRotate(1, 3, -t * 0.3f);
|
||||||
|
view *= utilRotate(2, 3, -t * 1.2f);
|
||||||
glUniformMatrix4fv(1, 1, false, glm::value_ptr(view));
|
glUniformMatrix4fv(1, 1, false, glm::value_ptr(view));
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user