diff --git a/obj/chalkboard/Chalkboard.obj b/obj/chalkboard/Chalkboard.obj index e712baf..fd9877b 100644 --- a/obj/chalkboard/Chalkboard.obj +++ b/obj/chalkboard/Chalkboard.obj @@ -4,37 +4,31 @@ mtllib Chalkboard.mtl o Board_Left_Cube.007 v -0.010000 0.100000 -0.103724 v -0.010000 1.100000 -0.103724 -v -0.010000 0.100000 -3.103724 -v -0.010000 1.100000 -3.103724 -v 0.010000 0.100000 -0.103724 +v -0.010000 1.100001 -3.103724 +v -0.010000 0.100001 -3.103724 +v 0.010000 1.100001 -3.103724 +v 0.010000 0.100001 -3.103724 v 0.010000 1.100000 -0.103724 -v 0.010000 0.100000 -3.103724 -v 0.010000 1.100000 -3.103724 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vn -1.0000 0.0000 0.0000 +v 0.010000 0.100000 -0.103724 +vt 0.000842 0.005279 +vt 0.000743 0.996240 +vt 0.999129 0.994899 +vt 0.999298 0.001063 +vt 0.999759 0.995048 +vt 0.999840 0.000181 +vt -0.000193 0.996350 +vt 0.000018 0.004470 +vn -1.0000 -0.0000 0.0000 vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 vn 0.0000 1.0000 0.0000 usemtl TestChalk.001 -s off -f 1/1/1 2/2/1 4/3/1 3/4/1 -f 3/4/2 4/3/2 8/5/2 7/6/2 -f 7/6/3 8/5/3 6/7/3 5/8/3 -f 5/8/4 6/7/4 2/9/4 1/10/4 -f 3/11/5 7/6/5 5/8/5 1/12/5 -f 8/5/6 4/13/6 2/14/6 6/7/6 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/4/2 3/3/2 5/5/2 6/6/2 +f 6/6/3 5/5/3 7/7/3 8/8/3 +f 8/8/4 7/7/4 2/2/4 1/1/4 +f 4/4/5 6/6/5 8/8/5 1/1/5 +f 5/5/6 3/3/6 2/2/6 7/7/6 diff --git a/scene-graph.scg b/scene-graph.scg index 9ae36a3..9e5fabe 100644 --- a/scene-graph.scg +++ b/scene-graph.scg @@ -48,7 +48,7 @@ texture ../texture/floor/Carpet.png obj 0 use 1 name myChair1_1 -rotateY -1.5 +rotateY 0.0 scale 1.0 1.0 1.0 # Platz 2 # @@ -1574,27 +1574,36 @@ rotateZ 0.0 translate -12.0 2.66 -4.0 parent 0 -# Chalkboard 1 # -obj 138 -use 2 -name myChalkboard1 +# Chalkboard Parent # +obj 147 +name myChalkboard scale 1.9 1.9 1.9 rotateX 0.0 rotateY 0.0 rotateZ 0.0 -translate 6.5 -0.4 0.3 -parent 0 +translate 6.4 -0.3 0.3 + +# Chalkboard 1 # +obj 138 +use 2 +name myChalkboard1 +scale 1.0 1.0 1.0 +rotateX 0.0 +rotateY 0.0 +rotateZ 0.0 +translate 0.0 0.0 0.0 +parent 147 # Chalkboard 2 # obj 139 use 2 name myChalkboard2 -scale 1.9 1.9 1.9 +scale 1.0 1.0 1.0 rotateX 0.0 rotateY 0.0 rotateZ 0.0 -translate 6.5 -0.4 6.15 -parent 0 +translate 0.0 0.0 3.05 +parent 147 # Chalkboard Pole 1 # obj 140 @@ -1604,8 +1613,8 @@ scale 1.0 1.0 1.0 rotateX 0.0 rotateY 0.0 rotateZ 0.0 -translate 0.0 0.0 3.07 -parent 138 +translate 0.0 0.0 3.05 +parent 147 # Chalkboard Pole 2 # obj 141 @@ -1616,7 +1625,7 @@ rotateX 0.0 rotateY 0.0 rotateZ 0.0 translate 0.0 0.0 0.0 -parent 138 +parent 147 # Table 1 # diff --git a/src/main.c b/src/main.c index 7246cdb..7717596 100644 --- a/src/main.c +++ b/src/main.c @@ -56,6 +56,7 @@ SceneNode* rootNode; /** * Input handler for camera movement. * */ +float chalkboardYPosition = 0.0f; void handleInputs(double deltaTime) { assert(window != NULL); @@ -93,6 +94,27 @@ void handleInputs(double deltaTime) { cameraPosition.y -= deltaTime * 10; } + SceneNode* chalkboard = findNodeByName("myChalkboard1", rootNode); + if (!chalkboard) return; + if (glfwGetKey(window, GLFW_KEY_X) == GLFW_PRESS) { + chalkboardYPosition += deltaTime * 1.0f; + chalkboardYPosition = fminf(chalkboardYPosition, 1.0f); + chalkboard->transformation = (mat4){1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, chalkboardYPosition, 0.0f, 1.0f}; + updateSceneNode(chalkboard, &findNodeByName("myChalkboard", rootNode)->worldTransformation); + } + if (glfwGetKey(window, GLFW_KEY_C) == GLFW_PRESS) { + chalkboardYPosition -= deltaTime * 1.0f; + chalkboardYPosition = fmaxf(chalkboardYPosition, 0.0f); + chalkboard->transformation = (mat4){1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, chalkboardYPosition, 0.0f, 1.0f}; + updateSceneNode(chalkboard, &findNodeByName("myChalkboard", rootNode)->worldTransformation); + } + if (glfwGetKey(window, GLFW_KEY_L) == GLFW_PRESS) { objectPosition.x += deltaTime * 10; }