Merge pull request #2 from Caenneth/animation

Animation + chalkboard fix
This commit is contained in:
Caenneth 2024-06-24 15:14:49 +02:00 committed by GitHub
commit 223bdf5f9d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 68 additions and 43 deletions

View File

@ -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

View File

@ -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 #

View File

@ -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;
}