From 2f0f5070510f1ccecb175284cdae8c7cfaa80479 Mon Sep 17 00:00:00 2001 From: maelstrom Date: Sat, 30 Aug 2025 02:14:16 +0200 Subject: [PATCH] feat(physics): nicer cylinder mesh --- core/src/rendering/defaultmeshes.cpp | 383 ++++++++++++++++++++++++++- core/src/rendering/defaultmeshes.h | 1 + core/src/rendering/renderer.cpp | 5 +- 3 files changed, 385 insertions(+), 4 deletions(-) diff --git a/core/src/rendering/defaultmeshes.cpp b/core/src/rendering/defaultmeshes.cpp index e21ac68..3f5ac56 100644 --- a/core/src/rendering/defaultmeshes.cpp +++ b/core/src/rendering/defaultmeshes.cpp @@ -2968,7 +2968,7 @@ static float OUTLINE_VERTICES[] = { }; -static float CYLINDER_VERTICES[] = { +static float CYLINDER_CHEAP_VERTICES[] = { // positions // normals // texture coords 0.0, -0.5, 0.5, 0.2588, -0.9659, -0.0, 1.0, 0.5, @@ -3106,11 +3106,391 @@ static float CYLINDER_VERTICES[] = { }; + +static float CYLINDER_VERTICES[] = { + // positions // normals // texture coords + + 0.5, 0.0, -0.5, -0.0, -0.0, -1.0, 1.0, 0.5, + 0.5, 0.09754499999999999, -0.4903925, -0.0, 0.1951, -0.9808, 0.96875, 0.5, + -0.5, 0.0, -0.5, -0.0, -0.0, -1.0, 1.0, 1.0, + 0.5, 0.09754499999999999, -0.4903925, -0.0, 0.1951, -0.9808, 0.96875, 0.5, + 0.5, 0.1913415, -0.46194, -0.0, 0.3827, -0.9239, 0.9375, 0.5, + -0.5, 0.09754499999999999, -0.4903925, -0.0, 0.1951, -0.9808, 0.96875, 1.0, + 0.5, 0.1913415, -0.46194, -0.0, 0.3827, -0.9239, 0.9375, 0.5, + 0.5, 0.277785, -0.41573499999999997, -0.0, 0.5556, -0.8315, 0.90625, 0.5, + -0.5, 0.1913415, -0.46194, -0.0, 0.3827, -0.9239, 0.9375, 1.0, + 0.5, 0.277785, -0.41573499999999997, -0.0, 0.5556, -0.8315, 0.90625, 0.5, + 0.5, 0.3535535, -0.3535535000000001, -0.0, 0.7071, -0.7071, 0.875, 0.5, + -0.5, 0.277785, -0.41573499999999997, -0.0, 0.5556, -0.8315, 0.90625, 1.0, + 0.5, 0.3535535, -0.3535535000000001, -0.0, 0.7071, -0.7071, 0.875, 0.5, + 0.5, 0.415735, -0.27778499999999995, -0.0, 0.8315, -0.5556, 0.84375, 0.5, + -0.5, 0.3535535, -0.3535535000000001, -0.0, 0.7071, -0.7071, 0.875, 1.0, + 0.5, 0.415735, -0.27778499999999995, -0.0, 0.8315, -0.5556, 0.84375, 0.5, + 0.5, 0.46194, -0.19134150000000005, -0.0, 0.9239, -0.3827, 0.8125, 0.5, + -0.5, 0.415735, -0.27778499999999995, -0.0, 0.8315, -0.5556, 0.84375, 1.0, + 0.5, 0.46194, -0.19134150000000005, -0.0, 0.9239, -0.3827, 0.8125, 0.5, + 0.5, 0.4903925, -0.09754499999999999, -0.0, 0.9808, -0.1951, 0.78125, 0.5, + -0.5, 0.4619395, -0.19134150000000005, -0.0, 0.9239, -0.3827, 0.8125, 1.0, + 0.5, 0.4903925, -0.09754499999999999, -0.0, 0.9808, -0.1951, 0.78125, 0.5, + 0.5, 0.5, 0.0, -0.0, 1.0, -0.0, 0.75, 0.5, + -0.5, 0.4903925, -0.09754499999999999, -0.0, 0.9808, -0.1951, 0.78125, 1.0, + 0.5, 0.5, 0.0, -0.0, 1.0, -0.0, 0.75, 0.5, + 0.5, 0.4903925, 0.09754499999999999, -0.0, 0.9808, 0.1951, 0.71875, 0.5, + -0.5, 0.5, 0.0, -0.0, 1.0, -0.0, 0.75, 1.0, + 0.5, 0.4903925, 0.09754499999999999, -0.0, 0.9808, 0.1951, 0.71875, 0.5, + 0.5, 0.46194, 0.1913415, -0.0, 0.9239, 0.3827, 0.6875, 0.5, + -0.5, 0.4903925, 0.09754499999999999, -0.0, 0.9808, 0.1951, 0.71875, 1.0, + 0.5, 0.46194, 0.1913415, -0.0, 0.9239, 0.3827, 0.6875, 0.5, + 0.5, 0.415735, 0.277785, -0.0, 0.8315, 0.5556, 0.65625, 0.5, + -0.5, 0.4619395, 0.1913415, -0.0, 0.9239, 0.3827, 0.6875, 1.0, + 0.5, 0.415735, 0.277785, -0.0, 0.8315, 0.5556, 0.65625, 0.5, + 0.5, 0.3535535, 0.3535535, -0.0, 0.7071, 0.7071, 0.625, 0.5, + -0.5, 0.415735, 0.277785, -0.0, 0.8315, 0.5556, 0.65625, 1.0, + 0.5, 0.3535535, 0.3535535, -0.0, 0.7071, 0.7071, 0.625, 0.5, + 0.5, 0.277785, 0.415735, -0.0, 0.5556, 0.8315, 0.59375, 0.5, + -0.5, 0.3535535, 0.3535535, -0.0, 0.7071, 0.7071, 0.625, 1.0, + 0.5, 0.277785, 0.415735, -0.0, 0.5556, 0.8315, 0.59375, 0.5, + 0.5, 0.1913415, 0.46194, -0.0, 0.3827, 0.9239, 0.5625, 0.5, + -0.5, 0.277785, 0.415735, -0.0, 0.5556, 0.8315, 0.59375, 1.0, + 0.5, 0.1913415, 0.46194, -0.0, 0.3827, 0.9239, 0.5625, 0.5, + 0.5, 0.09754499999999999, 0.4903925, -0.0, 0.1951, 0.9808, 0.53125, 0.5, + -0.5, 0.1913415, 0.46194, -0.0, 0.3827, 0.9239, 0.5625, 1.0, + 0.5, 0.09754499999999999, 0.4903925, -0.0, 0.1951, 0.9808, 0.53125, 0.5, + 0.5, 0.0, 0.5, -0.0, -0.0, 1.0, 0.5, 0.5, + -0.5, 0.09754499999999999, 0.4903925, -0.0, 0.1951, 0.9808, 0.53125, 1.0, + 0.5, 0.0, 0.5, -0.0, -0.0, 1.0, 0.5, 0.5, + 0.5, -0.09754499999999999, 0.4903925, -0.0, -0.1951, 0.9808, 0.46875, 0.5, + -0.5, 0.0, 0.5, -0.0, -0.0, 1.0, 0.5, 1.0, + 0.5, -0.09754499999999999, 0.4903925, -0.0, -0.1951, 0.9808, 0.46875, 0.5, + 0.5, -0.19134150000000005, 0.46194, -0.0, -0.3827, 0.9239, 0.4375, 0.5, + -0.5, -0.09754499999999999, 0.4903925, -0.0, -0.1951, 0.9808, 0.46875, 1.0, + 0.5, -0.19134150000000005, 0.46194, -0.0, -0.3827, 0.9239, 0.4375, 0.5, + 0.5, -0.27778499999999995, 0.415735, -0.0, -0.5556, 0.8315, 0.40625, 0.5, + -0.5, -0.19134150000000005, 0.46194, -0.0, -0.3827, 0.9239, 0.4375, 1.0, + 0.5, -0.27778499999999995, 0.415735, -0.0, -0.5556, 0.8315, 0.40625, 0.5, + 0.5, -0.3535535000000001, 0.3535535, -0.0, -0.7071, 0.7071, 0.375, 0.5, + -0.5, -0.27778499999999995, 0.415735, -0.0, -0.5556, 0.8315, 0.40625, 1.0, + 0.5, -0.3535535000000001, 0.3535535, -0.0, -0.7071, 0.7071, 0.375, 0.5, + 0.5, -0.41573499999999997, 0.277785, -0.0, -0.8315, 0.5556, 0.34375, 0.5, + -0.5, -0.3535535000000001, 0.3535535, -0.0, -0.7071, 0.7071, 0.375, 1.0, + 0.5, -0.41573499999999997, 0.277785, -0.0, -0.8315, 0.5556, 0.34375, 0.5, + 0.5, -0.46193949999999995, 0.1913415, -0.0, -0.9239, 0.3827, 0.3125, 0.5, + -0.5, -0.41573499999999997, 0.277785, -0.0, -0.8315, 0.5556, 0.34375, 1.0, + 0.5, -0.46193949999999995, 0.1913415, -0.0, -0.9239, 0.3827, 0.3125, 0.5, + 0.5, -0.4903925, 0.09754499999999999, -0.0, -0.9808, 0.1951, 0.28125, 0.5, + -0.5, -0.46194, 0.1913415, -0.0, -0.9239, 0.3827, 0.3125, 1.0, + 0.5, -0.4903925, 0.09754499999999999, -0.0, -0.9808, 0.1951, 0.28125, 0.5, + 0.5, -0.5, 0.0, -0.0, -1.0, -0.0, 0.25, 0.5, + -0.5, -0.4903925, 0.09754499999999999, -0.0, -0.9808, 0.1951, 0.28125, 1.0, + 0.5, -0.5, 0.0, -0.0, -1.0, -0.0, 0.25, 0.5, + 0.5, -0.4903925, -0.09754499999999999, -0.0, -0.9808, -0.1951, 0.21875, 0.5, + -0.5, -0.5, 0.0, -0.0, -1.0, -0.0, 0.25, 1.0, + 0.5, -0.4903925, -0.09754499999999999, -0.0, -0.9808, -0.1951, 0.21875, 0.5, + 0.5, -0.46193949999999995, -0.19134150000000005, -0.0, -0.9239, -0.3827, 0.1875, 0.5, + -0.5, -0.4903925, -0.09754499999999999, -0.0, -0.9808, -0.1951, 0.21875, 1.0, + 0.5, -0.46193949999999995, -0.19134150000000005, -0.0, -0.9239, -0.3827, 0.1875, 0.5, + 0.5, -0.41573499999999997, -0.27778499999999995, -0.0, -0.8315, -0.5556, 0.15625, 0.5, + -0.5, -0.46194, -0.19134150000000005, -0.0, -0.9239, -0.3827, 0.1875, 1.0, + 0.5, -0.41573499999999997, -0.27778499999999995, -0.0, -0.8315, -0.5556, 0.15625, 0.5, + 0.5, -0.3535535000000001, -0.3535535000000001, -0.0, -0.7071, -0.7071, 0.125, 0.5, + -0.5, -0.41573499999999997, -0.27778499999999995, -0.0, -0.8315, -0.5556, 0.15625, 1.0, + 0.5, -0.3535535000000001, -0.3535535000000001, -0.0, -0.7071, -0.7071, 0.125, 0.5, + 0.5, -0.27778499999999995, -0.41573499999999997, -0.0, -0.5556, -0.8315, 0.09375, 0.5, + -0.5, -0.3535535000000001, -0.3535535000000001, -0.0, -0.7071, -0.7071, 0.125, 1.0, + 0.5, -0.27778499999999995, -0.41573499999999997, -0.0, -0.5556, -0.8315, 0.09375, 0.5, + 0.5, -0.19134150000000005, -0.46194, -0.0, -0.3827, -0.9239, 0.0625, 0.5, + -0.5, -0.27778499999999995, -0.41573499999999997, -0.0, -0.5556, -0.8315, 0.09375, 1.0, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, 0.4619395, 0.1913415, -1.0, -0.0, -0.0, 0.471731, 0.158156, + -0.5, -0.19134150000000005, 0.46194, -1.0, -0.0, -0.0, 0.158156, 0.028269, + 0.5, -0.19134150000000005, -0.46194, -0.0, -0.3827, -0.9239, 0.0625, 0.5, + 0.5, -0.09754499999999999, -0.4903925, -0.0, -0.1951, -0.9808, 0.03125, 0.5, + -0.5, -0.19134150000000005, -0.46194, -0.0, -0.3827, -0.9239, 0.0625, 1.0, + 0.5, -0.09754499999999999, -0.4903925, -0.0, -0.1951, -0.9808, 0.03125, 0.5, + 0.5, 0.0, -0.5, -0.0, -0.0, -1.0, 0.0, 0.5, + -0.5, -0.09754499999999999, -0.4903925, -0.0, -0.1951, -0.9808, 0.03125, 1.0, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + 0.5, -0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.203178, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, 0.09754499999999999, -0.4903925, -0.0, 0.1951, -0.9808, 0.96875, 0.5, + -0.5, 0.09754499999999999, -0.4903925, -0.0, 0.1951, -0.9808, 0.96875, 1.0, + -0.5, 0.0, -0.5, -0.0, -0.0, -1.0, 1.0, 1.0, + 0.5, 0.1913415, -0.46194, -0.0, 0.3827, -0.9239, 0.9375, 0.5, + -0.5, 0.1913415, -0.46194, -0.0, 0.3827, -0.9239, 0.9375, 1.0, + -0.5, 0.09754499999999999, -0.4903925, -0.0, 0.1951, -0.9808, 0.96875, 1.0, + 0.5, 0.277785, -0.41573499999999997, -0.0, 0.5556, -0.8315, 0.90625, 0.5, + -0.5, 0.277785, -0.41573499999999997, -0.0, 0.5556, -0.8315, 0.90625, 1.0, + -0.5, 0.1913415, -0.46194, -0.0, 0.3827, -0.9239, 0.9375, 1.0, + 0.5, 0.3535535, -0.3535535000000001, -0.0, 0.7071, -0.7071, 0.875, 0.5, + -0.5, 0.3535535, -0.3535535000000001, -0.0, 0.7071, -0.7071, 0.875, 1.0, + -0.5, 0.277785, -0.41573499999999997, -0.0, 0.5556, -0.8315, 0.90625, 1.0, + 0.5, 0.415735, -0.27778499999999995, -0.0, 0.8315, -0.5556, 0.84375, 0.5, + -0.5, 0.415735, -0.27778499999999995, -0.0, 0.8315, -0.5556, 0.84375, 1.0, + -0.5, 0.3535535, -0.3535535000000001, -0.0, 0.7071, -0.7071, 0.875, 1.0, + 0.5, 0.46194, -0.19134150000000005, -0.0, 0.9239, -0.3827, 0.8125, 0.5, + -0.5, 0.4619395, -0.19134150000000005, -0.0, 0.9239, -0.3827, 0.8125, 1.0, + -0.5, 0.415735, -0.27778499999999995, -0.0, 0.8315, -0.5556, 0.84375, 1.0, + 0.5, 0.4903925, -0.09754499999999999, -0.0, 0.9808, -0.1951, 0.78125, 0.5, + -0.5, 0.4903925, -0.09754499999999999, -0.0, 0.9808, -0.1951, 0.78125, 1.0, + -0.5, 0.4619395, -0.19134150000000005, -0.0, 0.9239, -0.3827, 0.8125, 1.0, + 0.5, 0.5, 0.0, -0.0, 1.0, -0.0, 0.75, 0.5, + -0.5, 0.5, 0.0, -0.0, 1.0, -0.0, 0.75, 1.0, + -0.5, 0.4903925, -0.09754499999999999, -0.0, 0.9808, -0.1951, 0.78125, 1.0, + 0.5, 0.4903925, 0.09754499999999999, -0.0, 0.9808, 0.1951, 0.71875, 0.5, + -0.5, 0.4903925, 0.09754499999999999, -0.0, 0.9808, 0.1951, 0.71875, 1.0, + -0.5, 0.5, 0.0, -0.0, 1.0, -0.0, 0.75, 1.0, + 0.5, 0.46194, 0.1913415, -0.0, 0.9239, 0.3827, 0.6875, 0.5, + -0.5, 0.4619395, 0.1913415, -0.0, 0.9239, 0.3827, 0.6875, 1.0, + -0.5, 0.4903925, 0.09754499999999999, -0.0, 0.9808, 0.1951, 0.71875, 1.0, + 0.5, 0.415735, 0.277785, -0.0, 0.8315, 0.5556, 0.65625, 0.5, + -0.5, 0.415735, 0.277785, -0.0, 0.8315, 0.5556, 0.65625, 1.0, + -0.5, 0.4619395, 0.1913415, -0.0, 0.9239, 0.3827, 0.6875, 1.0, + 0.5, 0.3535535, 0.3535535, -0.0, 0.7071, 0.7071, 0.625, 0.5, + -0.5, 0.3535535, 0.3535535, -0.0, 0.7071, 0.7071, 0.625, 1.0, + -0.5, 0.415735, 0.277785, -0.0, 0.8315, 0.5556, 0.65625, 1.0, + 0.5, 0.277785, 0.415735, -0.0, 0.5556, 0.8315, 0.59375, 0.5, + -0.5, 0.277785, 0.415735, -0.0, 0.5556, 0.8315, 0.59375, 1.0, + -0.5, 0.3535535, 0.3535535, -0.0, 0.7071, 0.7071, 0.625, 1.0, + 0.5, 0.1913415, 0.46194, -0.0, 0.3827, 0.9239, 0.5625, 0.5, + -0.5, 0.1913415, 0.46194, -0.0, 0.3827, 0.9239, 0.5625, 1.0, + -0.5, 0.277785, 0.415735, -0.0, 0.5556, 0.8315, 0.59375, 1.0, + 0.5, 0.09754499999999999, 0.4903925, -0.0, 0.1951, 0.9808, 0.53125, 0.5, + -0.5, 0.09754499999999999, 0.4903925, -0.0, 0.1951, 0.9808, 0.53125, 1.0, + -0.5, 0.1913415, 0.46194, -0.0, 0.3827, 0.9239, 0.5625, 1.0, + 0.5, 0.0, 0.5, -0.0, -0.0, 1.0, 0.5, 0.5, + -0.5, 0.0, 0.5, -0.0, -0.0, 1.0, 0.5, 1.0, + -0.5, 0.09754499999999999, 0.4903925, -0.0, 0.1951, 0.9808, 0.53125, 1.0, + 0.5, -0.09754499999999999, 0.4903925, -0.0, -0.1951, 0.9808, 0.46875, 0.5, + -0.5, -0.09754499999999999, 0.4903925, -0.0, -0.1951, 0.9808, 0.46875, 1.0, + -0.5, 0.0, 0.5, -0.0, -0.0, 1.0, 0.5, 1.0, + 0.5, -0.19134150000000005, 0.46194, -0.0, -0.3827, 0.9239, 0.4375, 0.5, + -0.5, -0.19134150000000005, 0.46194, -0.0, -0.3827, 0.9239, 0.4375, 1.0, + -0.5, -0.09754499999999999, 0.4903925, -0.0, -0.1951, 0.9808, 0.46875, 1.0, + 0.5, -0.27778499999999995, 0.415735, -0.0, -0.5556, 0.8315, 0.40625, 0.5, + -0.5, -0.27778499999999995, 0.415735, -0.0, -0.5556, 0.8315, 0.40625, 1.0, + -0.5, -0.19134150000000005, 0.46194, -0.0, -0.3827, 0.9239, 0.4375, 1.0, + 0.5, -0.3535535000000001, 0.3535535, -0.0, -0.7071, 0.7071, 0.375, 0.5, + -0.5, -0.3535535000000001, 0.3535535, -0.0, -0.7071, 0.7071, 0.375, 1.0, + -0.5, -0.27778499999999995, 0.415735, -0.0, -0.5556, 0.8315, 0.40625, 1.0, + 0.5, -0.41573499999999997, 0.277785, -0.0, -0.8315, 0.5556, 0.34375, 0.5, + -0.5, -0.41573499999999997, 0.277785, -0.0, -0.8315, 0.5556, 0.34375, 1.0, + -0.5, -0.3535535000000001, 0.3535535, -0.0, -0.7071, 0.7071, 0.375, 1.0, + 0.5, -0.46193949999999995, 0.1913415, -0.0, -0.9239, 0.3827, 0.3125, 0.5, + -0.5, -0.46194, 0.1913415, -0.0, -0.9239, 0.3827, 0.3125, 1.0, + -0.5, -0.41573499999999997, 0.277785, -0.0, -0.8315, 0.5556, 0.34375, 1.0, + 0.5, -0.4903925, 0.09754499999999999, -0.0, -0.9808, 0.1951, 0.28125, 0.5, + -0.5, -0.4903925, 0.09754499999999999, -0.0, -0.9808, 0.1951, 0.28125, 1.0, + -0.5, -0.46194, 0.1913415, -0.0, -0.9239, 0.3827, 0.3125, 1.0, + 0.5, -0.5, 0.0, -0.0, -1.0, -0.0, 0.25, 0.5, + -0.5, -0.5, 0.0, -0.0, -1.0, -0.0, 0.25, 1.0, + -0.5, -0.4903925, 0.09754499999999999, -0.0, -0.9808, 0.1951, 0.28125, 1.0, + 0.5, -0.4903925, -0.09754499999999999, -0.0, -0.9808, -0.1951, 0.21875, 0.5, + -0.5, -0.4903925, -0.09754499999999999, -0.0, -0.9808, -0.1951, 0.21875, 1.0, + -0.5, -0.5, 0.0, -0.0, -1.0, -0.0, 0.25, 1.0, + 0.5, -0.46193949999999995, -0.19134150000000005, -0.0, -0.9239, -0.3827, 0.1875, 0.5, + -0.5, -0.46194, -0.19134150000000005, -0.0, -0.9239, -0.3827, 0.1875, 1.0, + -0.5, -0.4903925, -0.09754499999999999, -0.0, -0.9808, -0.1951, 0.21875, 1.0, + 0.5, -0.41573499999999997, -0.27778499999999995, -0.0, -0.8315, -0.5556, 0.15625, 0.5, + -0.5, -0.41573499999999997, -0.27778499999999995, -0.0, -0.8315, -0.5556, 0.15625, 1.0, + -0.5, -0.46194, -0.19134150000000005, -0.0, -0.9239, -0.3827, 0.1875, 1.0, + 0.5, -0.3535535000000001, -0.3535535000000001, -0.0, -0.7071, -0.7071, 0.125, 0.5, + -0.5, -0.3535535000000001, -0.3535535000000001, -0.0, -0.7071, -0.7071, 0.125, 1.0, + -0.5, -0.41573499999999997, -0.27778499999999995, -0.0, -0.8315, -0.5556, 0.15625, 1.0, + 0.5, -0.27778499999999995, -0.41573499999999997, -0.0, -0.5556, -0.8315, 0.09375, 0.5, + -0.5, -0.27778499999999995, -0.41573499999999997, -0.0, -0.5556, -0.8315, 0.09375, 1.0, + -0.5, -0.3535535000000001, -0.3535535000000001, -0.0, -0.7071, -0.7071, 0.125, 1.0, + 0.5, -0.19134150000000005, -0.46194, -0.0, -0.3827, -0.9239, 0.0625, 0.5, + -0.5, -0.19134150000000005, -0.46194, -0.0, -0.3827, -0.9239, 0.0625, 1.0, + -0.5, -0.27778499999999995, -0.41573499999999997, -0.0, -0.5556, -0.8315, 0.09375, 1.0, + -0.5, 0.0, -0.5, -1.0, -0.0, -0.0, 0.25, 0.49, + -0.5, 0.09754499999999999, -0.4903925, -1.0, -0.0, -0.0, 0.296822, 0.485388, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, -0.09754499999999999, -0.4903925, -1.0, -0.0, -0.0, 0.203178, 0.485388, + -0.5, 0.0, -0.5, -1.0, -0.0, -0.0, 0.25, 0.49, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, -0.19134150000000005, -0.46194, -1.0, -0.0, -0.0, 0.158156, 0.471731, + -0.5, -0.09754499999999999, -0.4903925, -1.0, -0.0, -0.0, 0.203178, 0.485388, + -0.5, -0.3535535000000001, -0.3535535000000001, -1.0, -0.0, -0.0, 0.080294, 0.419706, + -0.5, -0.27778499999999995, -0.41573499999999997, -1.0, -0.0, -0.0, 0.116663, 0.449553, + -0.5, -0.19134150000000005, -0.46194, -1.0, -0.0, -0.0, 0.158156, 0.471731, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, -0.41573499999999997, -0.27778499999999995, -1.0, -0.0, -0.0, 0.050447, 0.383337, + -0.5, -0.3535535000000001, -0.3535535000000001, -1.0, -0.0, -0.0, 0.080294, 0.419706, + -0.5, -0.5, 0.0, -1.0, -0.0, -0.0, 0.01, 0.25, + -0.5, -0.4903925, -0.09754499999999999, -1.0, -0.0, -0.0, 0.014612, 0.296822, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, -0.4903925, 0.09754499999999999, -1.0, -0.0, -0.0, 0.014612, 0.203178, + -0.5, -0.5, 0.0, -1.0, -0.0, -0.0, 0.01, 0.25, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, -0.46194, 0.1913415, -1.0, -0.0, -0.0, 0.028269, 0.158156, + -0.5, -0.4903925, 0.09754499999999999, -1.0, -0.0, -0.0, 0.014612, 0.203178, + -0.5, -0.3535535000000001, 0.3535535, -1.0, -0.0, -0.0, 0.080294, 0.080294, + -0.5, -0.41573499999999997, 0.277785, -1.0, -0.0, -0.0, 0.050447, 0.116663, + -0.5, -0.46194, 0.1913415, -1.0, -0.0, -0.0, 0.028269, 0.158156, + -0.5, -0.19134150000000005, 0.46194, -1.0, -0.0, -0.0, 0.158156, 0.028269, + -0.5, -0.27778499999999995, 0.415735, -1.0, -0.0, -0.0, 0.116663, 0.050447, + -0.5, -0.3535535000000001, 0.3535535, -1.0, -0.0, -0.0, 0.080294, 0.080294, + -0.5, 0.1913415, 0.46194, -1.0, -0.0, -0.0, 0.341844, 0.028269, + -0.5, -0.09754499999999999, 0.4903925, -1.0, -0.0, -0.0, 0.203178, 0.014612, + -0.5, -0.19134150000000005, 0.46194, -1.0, -0.0, -0.0, 0.158156, 0.028269, + -0.5, 0.1913415, 0.46194, -1.0, -0.0, -0.0, 0.341844, 0.028269, + -0.5, 0.0, 0.5, -1.0, -0.0, -0.0, 0.25, 0.01, + -0.5, -0.09754499999999999, 0.4903925, -1.0, -0.0, -0.0, 0.203178, 0.014612, + -0.5, 0.1913415, 0.46194, -1.0, -0.0, -0.0, 0.341844, 0.028269, + -0.5, 0.09754499999999999, 0.4903925, -1.0, -0.0, -0.0, 0.296822, 0.014612, + -0.5, 0.0, 0.5, -1.0, -0.0, -0.0, 0.25, 0.01, + -0.5, 0.3535535, 0.3535535, -1.0, -0.0, -0.0, 0.419706, 0.080294, + -0.5, 0.277785, 0.415735, -1.0, -0.0, -0.0, 0.383337, 0.050447, + -0.5, 0.1913415, 0.46194, -1.0, -0.0, -0.0, 0.341844, 0.028269, + -0.5, 0.4619395, 0.1913415, -1.0, -0.0, -0.0, 0.471731, 0.158156, + -0.5, 0.415735, 0.277785, -1.0, -0.0, -0.0, 0.449553, 0.116663, + -0.5, 0.3535535, 0.3535535, -1.0, -0.0, -0.0, 0.419706, 0.080294, + -0.5, 0.4619395, -0.19134150000000005, -1.0, -0.0, -0.0, 0.471731, 0.341844, + -0.5, 0.4903925, 0.09754499999999999, -1.0, -0.0, -0.0, 0.485388, 0.203178, + -0.5, 0.4619395, 0.1913415, -1.0, -0.0, -0.0, 0.471731, 0.158156, + -0.5, 0.4619395, -0.19134150000000005, -1.0, -0.0, -0.0, 0.471731, 0.341844, + -0.5, 0.5, 0.0, -1.0, -0.0, -0.0, 0.49, 0.25, + -0.5, 0.4903925, 0.09754499999999999, -1.0, -0.0, -0.0, 0.485388, 0.203178, + -0.5, 0.4619395, -0.19134150000000005, -1.0, -0.0, -0.0, 0.471731, 0.341844, + -0.5, 0.4903925, -0.09754499999999999, -1.0, -0.0, -0.0, 0.485388, 0.296822, + -0.5, 0.5, 0.0, -1.0, -0.0, -0.0, 0.49, 0.25, + -0.5, 0.3535535, -0.3535535000000001, -1.0, -0.0, -0.0, 0.419706, 0.419706, + -0.5, 0.415735, -0.27778499999999995, -1.0, -0.0, -0.0, 0.449553, 0.383337, + -0.5, 0.4619395, -0.19134150000000005, -1.0, -0.0, -0.0, 0.471731, 0.341844, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, 0.277785, -0.41573499999999997, -1.0, -0.0, -0.0, 0.383337, 0.449553, + -0.5, 0.3535535, -0.3535535000000001, -1.0, -0.0, -0.0, 0.419706, 0.419706, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, -0.3535535000000001, -0.3535535000000001, -1.0, -0.0, -0.0, 0.080294, 0.419706, + -0.5, -0.19134150000000005, -0.46194, -1.0, -0.0, -0.0, 0.158156, 0.471731, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, -0.3535535000000001, -0.3535535000000001, -1.0, -0.0, -0.0, 0.080294, 0.419706, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, -0.3535535000000001, 0.3535535, -1.0, -0.0, -0.0, 0.080294, 0.080294, + -0.5, -0.46194, 0.1913415, -1.0, -0.0, -0.0, 0.028269, 0.158156, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, -0.19134150000000005, 0.46194, -1.0, -0.0, -0.0, 0.158156, 0.028269, + -0.5, -0.3535535000000001, 0.3535535, -1.0, -0.0, -0.0, 0.080294, 0.080294, + -0.5, -0.19134150000000005, 0.46194, -1.0, -0.0, -0.0, 0.158156, 0.028269, + -0.5, 0.3535535, 0.3535535, -1.0, -0.0, -0.0, 0.419706, 0.080294, + -0.5, 0.1913415, 0.46194, -1.0, -0.0, -0.0, 0.341844, 0.028269, + -0.5, -0.19134150000000005, 0.46194, -1.0, -0.0, -0.0, 0.158156, 0.028269, + -0.5, 0.4619395, 0.1913415, -1.0, -0.0, -0.0, 0.471731, 0.158156, + -0.5, 0.3535535, 0.3535535, -1.0, -0.0, -0.0, 0.419706, 0.080294, + -0.5, 0.4619395, 0.1913415, -1.0, -0.0, -0.0, 0.471731, 0.158156, + -0.5, 0.3535535, -0.3535535000000001, -1.0, -0.0, -0.0, 0.419706, 0.419706, + -0.5, 0.4619395, -0.19134150000000005, -1.0, -0.0, -0.0, 0.471731, 0.341844, + -0.5, 0.4619395, 0.1913415, -1.0, -0.0, -0.0, 0.471731, 0.158156, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + -0.5, 0.3535535, -0.3535535000000001, -1.0, -0.0, -0.0, 0.419706, 0.419706, + -0.5, -0.19134150000000005, 0.46194, -1.0, -0.0, -0.0, 0.158156, 0.028269, + -0.5, -0.46194, -0.19134150000000005, -1.0, -0.0, -0.0, 0.028269, 0.341844, + -0.5, 0.1913415, -0.46194, -1.0, -0.0, -0.0, 0.341844, 0.471731, + 0.5, -0.09754499999999999, -0.4903925, -0.0, -0.1951, -0.9808, 0.03125, 0.5, + -0.5, -0.09754499999999999, -0.4903925, -0.0, -0.1951, -0.9808, 0.03125, 1.0, + -0.5, -0.19134150000000005, -0.46194, -0.0, -0.3827, -0.9239, 0.0625, 1.0, + 0.5, 0.0, -0.5, -0.0, -0.0, -1.0, 0.0, 0.5, + -0.5, 0.0, -0.5, -0.0, -0.0, -1.0, 0.0, 1.0, + -0.5, -0.09754499999999999, -0.4903925, -0.0, -0.1951, -0.9808, 0.03125, 1.0, + 0.5, 0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.485388, + 0.5, 0.0, -0.5, 1.0, -0.0, -0.0, 0.75, 0.49, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + 0.5, 0.277785, -0.41573499999999997, 1.0, -0.0, -0.0, 0.883337, 0.449553, + 0.5, 0.1913415, -0.46194, 1.0, -0.0, -0.0, 0.841844, 0.471731, + 0.5, 0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.485388, + 0.5, 0.415735, -0.27778499999999995, 1.0, -0.0, -0.0, 0.949553, 0.383337, + 0.5, 0.3535535, -0.3535535000000001, 1.0, -0.0, -0.0, 0.919706, 0.419706, + 0.5, 0.277785, -0.41573499999999997, 1.0, -0.0, -0.0, 0.883337, 0.449553, + 0.5, 0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.296822, + 0.5, 0.46194, -0.19134150000000005, 1.0, -0.0, -0.0, 0.971731, 0.341844, + 0.5, 0.415735, -0.27778499999999995, 1.0, -0.0, -0.0, 0.949553, 0.383337, + 0.5, 0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.203178, + 0.5, 0.5, 0.0, 1.0, -0.0, -0.0, 0.99, 0.25, + 0.5, 0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.296822, + 0.5, 0.415735, 0.277785, 1.0, -0.0, -0.0, 0.949553, 0.116663, + 0.5, 0.46194, 0.1913415, 1.0, -0.0, -0.0, 0.971731, 0.158156, + 0.5, 0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.203178, + 0.5, 0.277785, 0.415735, 1.0, -0.0, -0.0, 0.883337, 0.050447, + 0.5, 0.3535535, 0.3535535, 1.0, -0.0, -0.0, 0.919706, 0.080294, + 0.5, 0.415735, 0.277785, 1.0, -0.0, -0.0, 0.949553, 0.116663, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, 0.1913415, 0.46194, 1.0, -0.0, -0.0, 0.841844, 0.028269, + 0.5, 0.277785, 0.415735, 1.0, -0.0, -0.0, 0.883337, 0.050447, + 0.5, -0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.014612, + 0.5, 0.0, 0.5, 1.0, -0.0, -0.0, 0.75, 0.01, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, -0.27778499999999995, 0.415735, 1.0, -0.0, -0.0, 0.616663, 0.050447, + 0.5, -0.19134150000000005, 0.46194, 1.0, -0.0, -0.0, 0.658156, 0.028269, + 0.5, -0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.014612, + 0.5, -0.41573499999999997, 0.277785, 1.0, -0.0, -0.0, 0.550447, 0.116663, + 0.5, -0.3535535000000001, 0.3535535, 1.0, -0.0, -0.0, 0.580294, 0.080294, + 0.5, -0.27778499999999995, 0.415735, 1.0, -0.0, -0.0, 0.616663, 0.050447, + 0.5, -0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.203178, + 0.5, -0.46193949999999995, 0.1913415, 1.0, -0.0, -0.0, 0.528269, 0.158156, + 0.5, -0.41573499999999997, 0.277785, 1.0, -0.0, -0.0, 0.550447, 0.116663, + 0.5, -0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.296822, + 0.5, -0.5, 0.0, 1.0, -0.0, -0.0, 0.51, 0.25, + 0.5, -0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.203178, + 0.5, -0.41573499999999997, -0.27778499999999995, 1.0, -0.0, -0.0, 0.550447, 0.383337, + 0.5, -0.46193949999999995, -0.19134150000000005, 1.0, -0.0, -0.0, 0.528269, 0.341844, + 0.5, -0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.296822, + 0.5, -0.27778499999999995, -0.41573499999999997, 1.0, -0.0, -0.0, 0.616663, 0.449553, + 0.5, -0.3535535000000001, -0.3535535000000001, 1.0, -0.0, -0.0, 0.580294, 0.419706, + 0.5, -0.41573499999999997, -0.27778499999999995, 1.0, -0.0, -0.0, 0.550447, 0.383337, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + 0.5, -0.19134150000000005, -0.46194, 1.0, -0.0, -0.0, 0.658156, 0.471731, + 0.5, -0.27778499999999995, -0.41573499999999997, 1.0, -0.0, -0.0, 0.616663, 0.449553, + 0.5, 0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.296822, + 0.5, 0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.485388, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + 0.5, 0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.296822, + 0.5, 0.277785, -0.41573499999999997, 1.0, -0.0, -0.0, 0.883337, 0.449553, + 0.5, 0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.485388, + 0.5, 0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.296822, + 0.5, 0.415735, -0.27778499999999995, 1.0, -0.0, -0.0, 0.949553, 0.383337, + 0.5, 0.277785, -0.41573499999999997, 1.0, -0.0, -0.0, 0.883337, 0.449553, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, 0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.203178, + 0.5, 0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.296822, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, 0.415735, 0.277785, 1.0, -0.0, -0.0, 0.949553, 0.116663, + 0.5, 0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.203178, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, 0.277785, 0.415735, 1.0, -0.0, -0.0, 0.883337, 0.050447, + 0.5, 0.415735, 0.277785, 1.0, -0.0, -0.0, 0.949553, 0.116663, + 0.5, -0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.203178, + 0.5, -0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.014612, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, -0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.203178, + 0.5, -0.27778499999999995, 0.415735, 1.0, -0.0, -0.0, 0.616663, 0.050447, + 0.5, -0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.014612, + 0.5, -0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.203178, + 0.5, -0.41573499999999997, 0.277785, 1.0, -0.0, -0.0, 0.550447, 0.116663, + 0.5, -0.27778499999999995, 0.415735, 1.0, -0.0, -0.0, 0.616663, 0.050447, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + 0.5, -0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.296822, + 0.5, -0.4903925, 0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.203178, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + 0.5, -0.41573499999999997, -0.27778499999999995, 1.0, -0.0, -0.0, 0.550447, 0.383337, + 0.5, -0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.514612, 0.296822, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + 0.5, -0.27778499999999995, -0.41573499999999997, 1.0, -0.0, -0.0, 0.616663, 0.449553, + 0.5, -0.41573499999999997, -0.27778499999999995, 1.0, -0.0, -0.0, 0.550447, 0.383337, + 0.5, 0.09754499999999999, 0.4903925, 1.0, -0.0, -0.0, 0.796822, 0.014612, + 0.5, 0.4903925, -0.09754499999999999, 1.0, -0.0, -0.0, 0.985388, 0.296822, + 0.5, -0.09754499999999999, -0.4903925, 1.0, -0.0, -0.0, 0.703178, 0.485388, + +}; + Mesh* CUBE_MESH; Mesh* WEDGE_MESH; Mesh* SPHERE_MESH; Mesh* ARROW_MESH; Mesh* OUTLINE_MESH; +Mesh* CYLINDER_CHEAP_MESH; Mesh* CYLINDER_MESH; void initMeshes() { @@ -3119,6 +3499,7 @@ void initMeshes() { SPHERE_MESH = new Mesh(sizeof(SPHERE_VERTICES) / sizeof(float) / 8, SPHERE_VERTICES); ARROW_MESH = new Mesh(sizeof(ARROW_VERTICES) / sizeof(float) / 8, ARROW_VERTICES); OUTLINE_MESH = new Mesh(sizeof(OUTLINE_VERTICES) / sizeof(float) / 8, OUTLINE_VERTICES); + CYLINDER_CHEAP_MESH = new Mesh(sizeof(CYLINDER_CHEAP_VERTICES) / sizeof(float) / 8, CYLINDER_CHEAP_VERTICES); CYLINDER_MESH = new Mesh(sizeof(CYLINDER_VERTICES) / sizeof(float) / 8, CYLINDER_VERTICES); } diff --git a/core/src/rendering/defaultmeshes.h b/core/src/rendering/defaultmeshes.h index 7e1638e..d4059dc 100644 --- a/core/src/rendering/defaultmeshes.h +++ b/core/src/rendering/defaultmeshes.h @@ -7,5 +7,6 @@ extern Mesh* SPHERE_MESH; extern Mesh* ARROW_MESH; extern Mesh* OUTLINE_MESH; extern Mesh* CYLINDER_MESH; +extern Mesh* CYLINDER_CHEAP_MESH; void initMeshes(); \ No newline at end of file diff --git a/core/src/rendering/renderer.cpp b/core/src/rendering/renderer.cpp index 7c0dcc5..f35b082 100644 --- a/core/src/rendering/renderer.cpp +++ b/core/src/rendering/renderer.cpp @@ -128,7 +128,6 @@ static void renderPart(std::shared_ptr part) { glm::mat4 model = part->cframe; Vector3 size = part->GetEffectiveSize(); model = glm::scale(model, (glm::vec3)size); - if (std::shared_ptr part2 = std::dynamic_pointer_cast(part)) if (part2->shape == PartType::Cylinder) model = glm::rotate(model, glm::pi() * 0.5f, glm::vec3(0, 1, 0)); // Lazy hack shader->set("model", model); shader->set("material", Material { .diffuse = part->color, @@ -265,8 +264,8 @@ void renderSurfaceExtras() { model = glm::scale(model, glm::vec3(0.4,0.4,0.4)); ghostShader->set("model", model); - CYLINDER_MESH->bind(); - glDrawArrays(GL_TRIANGLES, 0, CYLINDER_MESH->vertexCount); + CYLINDER_CHEAP_MESH->bind(); + glDrawArrays(GL_TRIANGLES, 0, CYLINDER_CHEAP_MESH->vertexCount); } } }