diff --git a/include/rigid_body.hpp b/include/rigid_body.hpp index 760f95e9..dd2fb497 100644 --- a/include/rigid_body.hpp +++ b/include/rigid_body.hpp @@ -9,10 +9,10 @@ Mat3 IBodySphere(float radius, float mass); Mat3 IBodyOBB(Vec3 halfWidth, float mass); -enum TypeFriction { - slidingFriction, - rollingFriction, - emptyFriction +enum class TypeFriction { + SlidingFriction, + RollingFriction, + EmptyFriction }; class RigidBody { @@ -32,7 +32,7 @@ class RigidBody { // should be in {0, 1} Vec3 angularUnlock = Vec3(1); - TypeFriction typeFriction = TypeFriction::emptyFriction; + TypeFriction typeFriction = TypeFriction::EmptyFriction; RigidBody() = default; RigidBody(float mass, diff --git a/resources/models/pool/table_collider_floor.mtl b/resources/models/pool/table_collider_floor.mtl new file mode 100644 index 00000000..ffe3eeb0 --- /dev/null +++ b/resources/models/pool/table_collider_floor.mtl @@ -0,0 +1,12 @@ +# Blender 4.1.1 MTL File: 'None' +# www.blender.org + +newmtl Material.005 +Ns 0.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.000000 0.000000 0.000000 +Ke 0.000000 0.000000 0.000000 +Ni 1.500000 +d 1.000000 +illum 1 diff --git a/resources/models/pool/table_collider_floor.obj b/resources/models/pool/table_collider_floor.obj new file mode 100644 index 00000000..dda0ba3a --- /dev/null +++ b/resources/models/pool/table_collider_floor.obj @@ -0,0 +1,185 @@ +# Blender 4.1.1 +# www.blender.org +mtllib table_collider_floor.mtl +o Cylinder.002 +v -0.042077 0.841593 0.446419 +v -0.834570 0.841593 0.446419 +v -0.054262 0.841593 0.446419 +v -0.894076 0.841593 -0.011034 +v -0.822356 0.841593 0.446349 +v -0.810061 0.841593 0.416666 +v -0.894076 0.841593 0.374576 +v -0.825954 0.841593 0.378297 +v -0.864323 0.841593 0.362404 +v -0.822246 0.841593 0.416666 +v -0.834570 0.841593 0.386913 +v -0.864323 0.841593 0.374589 +v -0.894076 0.841593 0.386913 +v -0.038369 0.841593 0.416666 +v -0.029753 0.841593 0.416596 +v 0.000351 0.841593 0.404272 +v -0.864323 0.841593 -0.011034 +v -0.825954 0.841593 -0.011034 +v 0.000351 0.841593 0.378297 +v 0.000351 0.841593 -0.011034 +v 0.042779 0.841593 0.446419 +v 0.835273 0.841593 0.446419 +v 0.054964 0.841593 0.446419 +v 0.894778 0.841593 -0.011034 +v 0.823059 0.841593 0.446349 +v 0.810764 0.841593 0.416666 +v 0.894778 0.841593 0.374576 +v 0.826657 0.841593 0.378297 +v 0.865026 0.841593 0.362404 +v 0.822949 0.841593 0.416666 +v 0.835273 0.841593 0.386913 +v 0.865026 0.841593 0.374589 +v 0.894778 0.841593 0.386913 +v 0.039071 0.841593 0.416666 +v 0.030455 0.841593 0.416596 +v 0.865026 0.841593 -0.011034 +v 0.826657 0.841593 -0.011034 +v -0.042077 0.841593 -0.468486 +v -0.834570 0.841593 -0.468486 +v -0.054262 0.841593 -0.468486 +v -0.822356 0.841593 -0.468416 +v -0.810061 0.841593 -0.438733 +v -0.894076 0.841593 -0.396643 +v -0.825954 0.841593 -0.400364 +v -0.864323 0.841593 -0.384471 +v -0.822246 0.841593 -0.438733 +v -0.834570 0.841593 -0.408980 +v -0.864323 0.841593 -0.396656 +v -0.894076 0.841593 -0.408980 +v -0.038369 0.841593 -0.438733 +v -0.029753 0.841593 -0.438664 +v 0.000351 0.841593 -0.426340 +v 0.000351 0.841593 -0.400364 +v 0.042779 0.841593 -0.468486 +v 0.835273 0.841593 -0.468486 +v 0.054964 0.841593 -0.468486 +v 0.823059 0.841593 -0.468416 +v 0.810764 0.841593 -0.438733 +v 0.894778 0.841593 -0.396643 +v 0.826657 0.841593 -0.400364 +v 0.865026 0.841593 -0.384471 +v 0.822949 0.841593 -0.438733 +v 0.835273 0.841593 -0.408980 +v 0.865026 0.841593 -0.396656 +v 0.894778 0.841593 -0.408980 +v 0.039071 0.841593 -0.438733 +v 0.030455 0.841593 -0.438664 +vn -0.0000 1.0000 -0.0000 +vt 0.335886 0.915779 +vt 0.335302 0.916091 +vt 0.335302 0.900946 +vt 0.335885 0.900705 +vt 0.334549 0.916851 +vt 0.334549 0.900634 +vt 0.335302 0.900707 +vt 0.335886 0.900465 +vt 0.335886 0.916018 +vt 0.335301 0.916260 +vt 0.334718 0.900465 +vt 0.334476 0.899881 +vt 0.334237 0.899881 +vt 0.334476 0.899297 +vt 0.326908 0.899881 +vt 0.326908 0.899297 +vt 0.334718 0.899297 +vt 0.326908 0.900634 +vt 0.326908 0.916851 +vt 0.335059 0.916851 +vt 0.335886 0.917922 +vt 0.335885 0.932997 +vt 0.335302 0.932755 +vt 0.335302 0.917611 +vt 0.334549 0.933067 +vt 0.335302 0.932994 +vt 0.335886 0.933236 +vt 0.335886 0.917683 +vt 0.335301 0.917441 +vt 0.334718 0.933236 +vt 0.334476 0.933820 +vt 0.334237 0.933820 +vt 0.334476 0.934404 +vt 0.326908 0.934404 +vt 0.326908 0.933820 +vt 0.334718 0.934404 +vt 0.326908 0.933067 +vt 0.317931 0.915779 +vt 0.317932 0.900705 +vt 0.318515 0.900946 +vt 0.318515 0.916091 +vt 0.319268 0.900634 +vt 0.319268 0.916851 +vt 0.318515 0.900707 +vt 0.317931 0.900465 +vt 0.317931 0.916018 +vt 0.318516 0.916260 +vt 0.319098 0.900465 +vt 0.319340 0.899881 +vt 0.319579 0.899881 +vt 0.319341 0.899297 +vt 0.319098 0.899297 +vt 0.318758 0.916851 +vt 0.317931 0.917922 +vt 0.318515 0.917611 +vt 0.318515 0.932755 +vt 0.317932 0.932997 +vt 0.319268 0.933067 +vt 0.318515 0.932994 +vt 0.317931 0.933236 +vt 0.317931 0.917683 +vt 0.318516 0.917441 +vt 0.319098 0.933236 +vt 0.319340 0.933820 +vt 0.319579 0.933820 +vt 0.319341 0.934404 +vt 0.319098 0.934404 +s 1 +usemtl Material.005 +f 3/1/1 14/2/1 6/3/1 5/4/1 +f 14/2/1 19/5/1 8/6/1 6/3/1 +f 10/7/1 2/8/1 5/4/1 6/3/1 +f 1/9/1 15/10/1 14/2/1 3/1/1 +f 11/11/1 10/7/1 6/3/1 8/6/1 +f 12/12/1 11/11/1 8/6/1 9/13/1 +f 7/14/1 9/13/1 17/15/1 4/16/1 +f 7/14/1 13/17/1 12/12/1 9/13/1 +f 8/6/1 18/18/1 17/15/1 9/13/1 +f 18/18/1 8/6/1 19/5/1 20/19/1 +f 15/10/1 16/20/1 19/5/1 14/2/1 +f 23/21/1 25/22/1 26/23/1 34/24/1 +f 34/24/1 26/23/1 28/25/1 19/5/1 +f 30/26/1 26/23/1 25/22/1 22/27/1 +f 21/28/1 23/21/1 34/24/1 35/29/1 +f 31/30/1 28/25/1 26/23/1 30/26/1 +f 32/31/1 29/32/1 28/25/1 31/30/1 +f 27/33/1 24/34/1 36/35/1 29/32/1 +f 27/33/1 29/32/1 32/31/1 33/36/1 +f 28/25/1 29/32/1 36/35/1 37/37/1 +f 37/37/1 20/19/1 19/5/1 28/25/1 +f 35/29/1 34/24/1 19/5/1 16/20/1 +f 40/38/1 41/39/1 42/40/1 50/41/1 +f 50/41/1 42/40/1 44/42/1 53/43/1 +f 46/44/1 42/40/1 41/39/1 39/45/1 +f 38/46/1 40/38/1 50/41/1 51/47/1 +f 47/48/1 44/42/1 42/40/1 46/44/1 +f 48/49/1 45/50/1 44/42/1 47/48/1 +f 43/51/1 4/16/1 17/15/1 45/50/1 +f 43/51/1 45/50/1 48/49/1 49/52/1 +f 44/42/1 45/50/1 17/15/1 18/18/1 +f 18/18/1 20/19/1 53/43/1 44/42/1 +f 51/47/1 50/41/1 53/43/1 52/53/1 +f 56/54/1 66/55/1 58/56/1 57/57/1 +f 66/55/1 53/43/1 60/58/1 58/56/1 +f 62/59/1 55/60/1 57/57/1 58/56/1 +f 54/61/1 67/62/1 66/55/1 56/54/1 +f 63/63/1 62/59/1 58/56/1 60/58/1 +f 64/64/1 63/63/1 60/58/1 61/65/1 +f 59/66/1 61/65/1 36/35/1 24/34/1 +f 59/66/1 65/67/1 64/64/1 61/65/1 +f 60/58/1 37/37/1 36/35/1 61/65/1 +f 37/37/1 60/58/1 53/43/1 20/19/1 +f 67/62/1 52/53/1 53/43/1 66/55/1 diff --git a/resources/models/pool/table_collider_holes.mtl b/resources/models/pool/table_collider_holes.mtl new file mode 100644 index 00000000..c87b80aa --- /dev/null +++ b/resources/models/pool/table_collider_holes.mtl @@ -0,0 +1,12 @@ +# Blender 4.1.1 MTL File: 'None' +# www.blender.org + +newmtl Material.003 +Ns 0.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.000000 0.000000 0.000000 +Ke 0.000000 0.000000 0.000000 +Ni 1.500000 +d 1.000000 +illum 1 diff --git a/resources/models/pool/table_collider_holes.obj b/resources/models/pool/table_collider_holes.obj new file mode 100644 index 00000000..bc9a33ab --- /dev/null +++ b/resources/models/pool/table_collider_holes.obj @@ -0,0 +1,652 @@ +# Blender 4.1.1 +# www.blender.org +mtllib table_collider_holes.mtl +o Cylinder.002 +v 0.000351 0.753181 0.404272 +v 0.000351 0.753181 0.488426 +v -0.029753 0.753181 0.476102 +v -0.042077 0.753181 0.446419 +v -0.029753 0.753181 0.416596 +v 0.000351 0.889866 0.488426 +v -0.029753 0.889866 0.476102 +v -0.042077 0.889866 0.446419 +v -0.834570 0.753182 0.386913 +v -0.822246 0.753182 0.416666 +v -0.834570 0.753182 0.446419 +v -0.864323 0.753182 0.458743 +v -0.894076 0.753182 0.446419 +v -0.906400 0.753182 0.416666 +v -0.894076 0.753182 0.386913 +v -0.864323 0.753182 0.374589 +v -0.864323 0.889866 0.458743 +v -0.834570 0.889866 0.446419 +v -0.894076 0.889866 0.446419 +v -0.906400 0.889866 0.416666 +v -0.894076 0.889866 0.386913 +v -0.054182 0.889866 0.446419 +v -0.042077 0.841593 0.446419 +v -0.029753 0.841593 0.476102 +v 0.000351 0.841593 0.488426 +v -0.834570 0.841593 0.446419 +v -0.864323 0.841593 0.458743 +v -0.906400 0.841593 0.416666 +v -0.894076 0.841593 0.446419 +v -0.054262 0.841593 0.446419 +v -0.822356 0.841593 0.446349 +v -0.894076 0.841593 0.374576 +v -0.822246 0.841593 0.416666 +v -0.834570 0.841593 0.386913 +v -0.864323 0.841593 0.374589 +v -0.894076 0.841593 0.386913 +v -0.029753 0.841593 0.416596 +v 0.000351 0.841593 0.404272 +v -0.894076 0.889866 0.374576 +v -0.822364 0.889866 0.446419 +v 0.030455 0.753181 0.476102 +v 0.042779 0.753181 0.446419 +v 0.030455 0.753181 0.416596 +v 0.030455 0.889866 0.476102 +v 0.042779 0.889866 0.446419 +v 0.835273 0.753182 0.386913 +v 0.822949 0.753182 0.416666 +v 0.835273 0.753182 0.446419 +v 0.865026 0.753182 0.458743 +v 0.894778 0.753182 0.446419 +v 0.907102 0.753182 0.416666 +v 0.894778 0.753182 0.386913 +v 0.865026 0.753182 0.374589 +v 0.865026 0.889866 0.458743 +v 0.835273 0.889866 0.446419 +v 0.894778 0.889866 0.446419 +v 0.907102 0.889866 0.416666 +v 0.894778 0.889866 0.386913 +v 0.054885 0.889866 0.446419 +v 0.042779 0.841593 0.446419 +v 0.030455 0.841593 0.476102 +v 0.835273 0.841593 0.446419 +v 0.865026 0.841593 0.458743 +v 0.907102 0.841593 0.416666 +v 0.894778 0.841593 0.446419 +v 0.054964 0.841593 0.446419 +v 0.823059 0.841593 0.446349 +v 0.894778 0.841593 0.374576 +v 0.822949 0.841593 0.416666 +v 0.835273 0.841593 0.386913 +v 0.865026 0.841593 0.374589 +v 0.894778 0.841593 0.386913 +v 0.030455 0.841593 0.416596 +v 0.894778 0.889866 0.374576 +v 0.823066 0.889866 0.446419 +v 0.000351 0.753181 -0.426340 +v 0.000351 0.753181 -0.510493 +v -0.029753 0.753181 -0.498169 +v -0.042077 0.753181 -0.468486 +v -0.029753 0.753181 -0.438664 +v 0.000351 0.889866 -0.510493 +v -0.029753 0.889866 -0.498169 +v -0.042077 0.889866 -0.468486 +v -0.834570 0.753182 -0.408980 +v -0.822246 0.753182 -0.438733 +v -0.834570 0.753182 -0.468486 +v -0.864323 0.753182 -0.480810 +v -0.894076 0.753182 -0.468486 +v -0.906400 0.753182 -0.438733 +v -0.894076 0.753182 -0.408980 +v -0.864323 0.753182 -0.396656 +v -0.864323 0.889866 -0.480810 +v -0.834570 0.889866 -0.468486 +v -0.894076 0.889866 -0.468486 +v -0.906400 0.889866 -0.438733 +v -0.894076 0.889866 -0.408980 +v -0.054182 0.889866 -0.468486 +v -0.042077 0.841593 -0.468486 +v -0.029753 0.841593 -0.498169 +v 0.000351 0.841593 -0.510493 +v -0.834570 0.841593 -0.468486 +v -0.864323 0.841593 -0.480810 +v -0.906400 0.841593 -0.438733 +v -0.894076 0.841593 -0.468486 +v -0.054262 0.841593 -0.468486 +v -0.822356 0.841593 -0.468416 +v -0.894076 0.841593 -0.396643 +v -0.822246 0.841593 -0.438733 +v -0.834570 0.841593 -0.408980 +v -0.864323 0.841593 -0.396656 +v -0.894076 0.841593 -0.408980 +v -0.029753 0.841593 -0.438664 +v 0.000351 0.841593 -0.426340 +v -0.894076 0.889866 -0.396643 +v -0.822364 0.889866 -0.468486 +v 0.030455 0.753181 -0.498169 +v 0.042779 0.753181 -0.468486 +v 0.030455 0.753181 -0.438664 +v 0.030455 0.889866 -0.498169 +v 0.042779 0.889866 -0.468486 +v 0.835273 0.753182 -0.408980 +v 0.822949 0.753182 -0.438733 +v 0.835273 0.753182 -0.468486 +v 0.865026 0.753182 -0.480810 +v 0.894778 0.753182 -0.468486 +v 0.907102 0.753182 -0.438733 +v 0.894778 0.753182 -0.408980 +v 0.865026 0.753182 -0.396656 +v 0.865026 0.889866 -0.480810 +v 0.835273 0.889866 -0.468486 +v 0.894778 0.889866 -0.468486 +v 0.907102 0.889866 -0.438733 +v 0.894778 0.889866 -0.408980 +v 0.054885 0.889866 -0.468486 +v 0.042779 0.841593 -0.468486 +v 0.030455 0.841593 -0.498169 +v 0.835273 0.841593 -0.468486 +v 0.865026 0.841593 -0.480810 +v 0.907102 0.841593 -0.438733 +v 0.894778 0.841593 -0.468486 +v 0.054964 0.841593 -0.468486 +v 0.823059 0.841593 -0.468416 +v 0.894778 0.841593 -0.396643 +v 0.822949 0.841593 -0.438733 +v 0.835273 0.841593 -0.408980 +v 0.865026 0.841593 -0.396656 +v 0.894778 0.841593 -0.408980 +v 0.030455 0.841593 -0.438664 +v 0.894778 0.889866 -0.396643 +v 0.823066 0.889866 -0.468486 +vn 0.9236 -0.0000 -0.3835 +vn 0.3789 -0.0000 0.9255 +vn 0.3789 -0.0000 -0.9255 +vn -0.3827 -0.0000 0.9239 +vn 0.9239 -0.0000 -0.3827 +vn -0.3827 -0.0000 -0.9239 +vn -0.1968 0.0004 -0.9804 +vn -0.2607 0.0002 -0.9654 +vn -0.9239 -0.0000 0.3827 +vn 0.3827 -0.0000 -0.9239 +vn 0.9657 -0.0000 0.2596 +vn 0.9239 -0.0000 0.3827 +vn -0.2623 0.0007 -0.9650 +vn -0.0009 0.0002 -1.0000 +vn -0.0057 0.0014 -1.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.9808 -0.0000 0.1951 +vn 0.3827 -0.0000 0.9239 +vn -0.9239 -0.0000 -0.3827 +vn 0.9242 -0.0000 0.3819 +vn -0.9236 -0.0000 -0.3835 +vn -0.3789 -0.0000 0.9255 +vn -0.3789 -0.0000 -0.9255 +vn 0.1951 -0.0000 -0.9808 +vn 0.2611 0.0004 -0.9653 +vn -0.9657 -0.0000 0.2598 +vn 0.0009 0.0002 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.9658 -0.0000 0.2592 +vn -0.9808 -0.0000 0.1948 +vn -0.9242 -0.0000 0.3819 +vn 0.9236 -0.0000 0.3835 +vn -0.1951 -0.0000 0.9808 +vn -0.2611 0.0004 0.9653 +vn 0.9657 -0.0000 -0.2598 +vn -0.0009 0.0002 1.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.9658 -0.0000 -0.2592 +vn 0.9808 -0.0000 -0.1948 +vn 0.9242 -0.0000 -0.3819 +vn -0.9236 -0.0000 0.3835 +vn 0.1968 0.0004 0.9804 +vn 0.2607 0.0002 0.9654 +vn -0.9657 -0.0000 -0.2596 +vn 0.2623 0.0007 0.9650 +vn 0.0009 0.0002 1.0000 +vn 0.0057 0.0014 1.0000 +vn -0.9808 -0.0000 -0.1951 +vn -0.9242 -0.0000 -0.3819 +vn -0.1932 -0.0003 -0.9812 +vn -0.9807 -0.0000 0.1954 +vn 0.0057 0.0014 -1.0000 +vn 0.9807 -0.0000 -0.1954 +vn -0.0057 0.0014 1.0000 +vn 0.1932 -0.0003 0.9812 +vt 0.040488 0.964383 +vt 0.039857 0.965331 +vt 0.039857 0.964383 +vt 0.118035 0.966880 +vt 0.117397 0.968615 +vt 0.117397 0.966880 +vt 0.092202 0.906928 +vt 0.091564 0.907875 +vt 0.091564 0.906928 +vt 0.120672 0.912126 +vt 0.120040 0.913861 +vt 0.120040 0.912126 +vt 0.033163 0.964383 +vt 0.032531 0.965331 +vt 0.032531 0.964383 +vt 0.092173 0.957146 +vt 0.091226 0.956514 +vt 0.092173 0.956514 +vt 0.120672 0.916405 +vt 0.120040 0.918140 +vt 0.120040 0.916405 +vt 0.031097 0.964383 +vt 0.030465 0.965331 +vt 0.030465 0.964383 +vt 0.099155 0.911648 +vt 0.098207 0.911016 +vt 0.099155 0.911016 +vt 0.091226 0.956275 +vt 0.092173 0.956274 +vt 0.091226 0.941199 +vt 0.092173 0.940961 +vt 0.092173 0.941200 +vt 0.098207 0.911890 +vt 0.098207 0.911648 +vt 0.100890 0.911648 +vt 0.100890 0.911016 +vt 0.031097 0.962648 +vt 0.030465 0.962648 +vt 0.093908 0.957146 +vt 0.093908 0.956514 +vt 0.033163 0.962648 +vt 0.032531 0.962648 +vt 0.092202 0.905192 +vt 0.091564 0.905192 +vt 0.040488 0.962648 +vt 0.039857 0.962648 +vt 0.056712 0.968470 +vt 0.056080 0.970205 +vt 0.056080 0.968470 +vt 0.120983 0.932079 +vt 0.120351 0.933814 +vt 0.120351 0.932079 +vt 0.069008 0.967049 +vt 0.068375 0.968784 +vt 0.068375 0.967049 +vt 0.088056 0.956575 +vt 0.087425 0.955628 +vt 0.088056 0.955628 +vt 0.108314 0.964514 +vt 0.107675 0.962779 +vt 0.108314 0.962779 +vt 0.088063 0.951349 +vt 0.087425 0.950402 +vt 0.088063 0.950402 +vt 0.120803 0.907437 +vt 0.120171 0.905702 +vt 0.120803 0.905702 +vt 0.042554 0.965331 +vt 0.041922 0.964383 +vt 0.042554 0.964383 +vt 0.108998 0.889690 +vt 0.108050 0.890322 +vt 0.108050 0.889690 +vt 0.085881 0.970322 +vt 0.085249 0.968587 +vt 0.085881 0.968587 +vt 0.037294 0.965331 +vt 0.036662 0.964383 +vt 0.037294 0.964383 +vt 0.102000 0.929333 +vt 0.101053 0.929965 +vt 0.101053 0.929333 +vt 0.108998 0.889451 +vt 0.108050 0.874137 +vt 0.108998 0.874375 +vt 0.108050 0.874376 +vt 0.102000 0.930207 +vt 0.102000 0.929965 +vt 0.099317 0.929965 +vt 0.099317 0.929333 +vt 0.036662 0.962648 +vt 0.037294 0.962648 +vt 0.106315 0.890322 +vt 0.106315 0.889690 +vt 0.041922 0.962648 +vt 0.042554 0.962648 +vt 0.087425 0.948666 +vt 0.088063 0.948666 +vt 0.087426 0.953892 +vt 0.088057 0.953893 +vt 0.120803 0.894601 +vt 0.120171 0.892866 +vt 0.120803 0.892866 +vt 0.120803 0.898880 +vt 0.120171 0.897145 +vt 0.120803 0.897145 +vt 0.120102 0.968615 +vt 0.119468 0.966880 +vt 0.120102 0.966880 +vt 0.029032 0.965331 +vt 0.028401 0.964383 +vt 0.029032 0.964383 +vt 0.060961 0.965963 +vt 0.060322 0.964228 +vt 0.060961 0.964228 +vt 0.094274 0.907875 +vt 0.093636 0.906928 +vt 0.094274 0.906928 +vt 0.054537 0.970205 +vt 0.053905 0.968470 +vt 0.054537 0.968470 +vt 0.035229 0.965331 +vt 0.034597 0.964383 +vt 0.035229 0.964383 +vt 0.103433 0.929267 +vt 0.104381 0.928635 +vt 0.104381 0.929267 +vt 0.060954 0.970242 +vt 0.060322 0.968507 +vt 0.060954 0.968507 +vt 0.088057 0.961801 +vt 0.087425 0.960854 +vt 0.088057 0.960854 +vt 0.098207 0.927900 +vt 0.099155 0.927268 +vt 0.099155 0.927900 +vt 0.103433 0.929506 +vt 0.104381 0.944820 +vt 0.103433 0.944582 +vt 0.104381 0.944580 +vt 0.098207 0.927026 +vt 0.098207 0.927268 +vt 0.100890 0.927268 +vt 0.100890 0.927900 +vt 0.087425 0.959119 +vt 0.088057 0.959119 +vt 0.106116 0.928635 +vt 0.106116 0.929267 +vt 0.034597 0.962648 +vt 0.035229 0.962648 +vt 0.093636 0.905192 +vt 0.094274 0.905192 +vt 0.028401 0.962648 +vt 0.029032 0.962648 +vt 0.058778 0.970205 +vt 0.058146 0.968470 +vt 0.058778 0.968470 +vt 0.050294 0.970794 +vt 0.049662 0.969059 +vt 0.050294 0.969059 +vt 0.052472 0.970205 +vt 0.051839 0.968470 +vt 0.052472 0.968470 +vt 0.044619 0.964383 +vt 0.043988 0.965331 +vt 0.043988 0.964383 +vt 0.069013 0.962770 +vt 0.068375 0.964505 +vt 0.068375 0.962770 +vt 0.096346 0.906928 +vt 0.095708 0.907875 +vt 0.095708 0.906928 +vt 0.048229 0.969059 +vt 0.047597 0.970794 +vt 0.047597 0.969059 +vt 0.024901 0.964383 +vt 0.024269 0.965331 +vt 0.024269 0.964383 +vt 0.106279 0.911016 +vt 0.107226 0.911648 +vt 0.106279 0.911648 +vt 0.120672 0.920683 +vt 0.120040 0.922418 +vt 0.120040 0.920683 +vt 0.026966 0.964383 +vt 0.026334 0.965331 +vt 0.026334 0.964383 +vt 0.101053 0.945585 +vt 0.102000 0.946217 +vt 0.101053 0.946217 +vt 0.107226 0.911888 +vt 0.106279 0.911888 +vt 0.107226 0.926963 +vt 0.106279 0.927201 +vt 0.106279 0.926962 +vt 0.102000 0.945343 +vt 0.102000 0.945585 +vt 0.099317 0.945585 +vt 0.099317 0.946217 +vt 0.026966 0.962648 +vt 0.026334 0.962648 +vt 0.104543 0.911016 +vt 0.104543 0.911648 +vt 0.024901 0.962648 +vt 0.024269 0.962648 +vt 0.096346 0.905192 +vt 0.095708 0.905192 +vt 0.044619 0.962648 +vt 0.043988 0.962648 +vt 0.087946 0.968587 +vt 0.087314 0.970322 +vt 0.087314 0.968587 +vt 0.120803 0.901423 +vt 0.120171 0.903158 +vt 0.120171 0.901423 +vt 0.108309 0.967058 +vt 0.107675 0.968793 +vt 0.107675 0.967058 +vt 0.040488 0.965331 +vt 0.118035 0.968615 +vt 0.092202 0.907875 +vt 0.120672 0.913861 +vt 0.033163 0.965331 +vt 0.091226 0.957146 +vt 0.120672 0.918140 +vt 0.031097 0.965331 +vt 0.091226 0.940961 +vt 0.099155 0.911890 +vt 0.056712 0.970205 +vt 0.120983 0.933814 +vt 0.069008 0.968784 +vt 0.087425 0.956575 +vt 0.107675 0.964514 +vt 0.087425 0.951349 +vt 0.120171 0.907437 +vt 0.041922 0.965331 +vt 0.108998 0.890322 +vt 0.085249 0.970322 +vt 0.036662 0.965331 +vt 0.108050 0.889451 +vt 0.108998 0.874137 +vt 0.101053 0.930207 +vt 0.120171 0.894601 +vt 0.120171 0.898880 +vt 0.119468 0.968615 +vt 0.028401 0.965331 +vt 0.060322 0.965963 +vt 0.093636 0.907875 +vt 0.053905 0.970205 +vt 0.034597 0.965331 +vt 0.103433 0.928635 +vt 0.060322 0.970242 +vt 0.087425 0.961801 +vt 0.104381 0.929506 +vt 0.103433 0.944820 +vt 0.099155 0.927026 +vt 0.058146 0.970205 +vt 0.049662 0.970794 +vt 0.051839 0.970205 +vt 0.044619 0.965331 +vt 0.069013 0.964505 +vt 0.096346 0.907875 +vt 0.048229 0.970794 +vt 0.024901 0.965331 +vt 0.107226 0.911016 +vt 0.120672 0.922418 +vt 0.026966 0.965331 +vt 0.107226 0.927201 +vt 0.101053 0.945343 +vt 0.087946 0.970322 +vt 0.120803 0.903158 +vt 0.108309 0.968793 +s 1 +usemtl Material.003 +f 23/1/1 7/2/1 24/3/1 +f 1/4/2 37/5/2 5/6/2 +f 24/7/3 6/8/3 25/9/3 +f 9/10/4 35/11/4 16/12/4 +f 28/13/5 19/14/5 29/15/5 +f 27/16/6 18/17/7 26/18/8 +f 10/19/9 34/20/9 9/21/9 +f 29/22/10 17/23/10 27/24/10 +f 36/25/11 20/26/12 28/27/12 +f 26/18/13 40/28/14 31/29/15 +f 22/30/16 23/31/16 30/32/16 +f 36/25/11 39/33/17 21/34/18 +f 15/35/12 28/27/12 14/36/12 +f 13/37/10 27/24/10 12/38/10 +f 12/39/6 26/18/8 11/40/6 +f 14/41/5 29/15/5 13/42/5 +f 3/43/3 25/9/3 2/44/3 +f 4/45/1 24/3/1 3/46/1 +f 16/47/19 36/48/19 15/49/19 +f 11/50/20 33/51/20 10/52/20 +f 5/53/21 23/54/21 4/55/21 +f 44/56/22 60/57/22 61/58/22 +f 73/59/23 1/60/23 43/61/23 +f 6/62/24 61/63/24 25/64/24 +f 71/65/19 46/66/19 53/67/19 +f 56/68/20 64/69/20 65/70/20 +f 55/71/25 63/72/10 62/73/26 +f 70/74/12 47/75/12 46/76/12 +f 54/77/6 65/78/6 63/79/6 +f 57/80/9 72/81/27 64/82/9 +f 62/73/26 75/83/28 55/71/25 +f 60/84/16 59/85/16 66/86/16 +f 74/87/29 72/81/30 58/88/31 +f 64/82/9 52/89/9 51/90/9 +f 63/79/6 50/91/6 49/92/6 +f 62/73/26 49/93/10 48/94/10 +f 65/70/20 51/95/20 50/96/20 +f 25/64/24 41/97/24 2/98/24 +f 61/58/22 42/99/22 41/100/22 +f 72/101/4 53/102/4 52/103/4 +f 69/104/5 48/105/5 47/106/5 +f 60/107/32 43/108/32 42/109/32 +f 82/110/33 98/111/33 99/112/33 +f 112/113/3 76/114/3 80/115/3 +f 81/116/2 99/117/2 100/118/2 +f 110/119/6 84/120/6 91/121/6 +f 94/122/12 103/123/12 104/124/12 +f 93/125/34 102/126/4 101/127/35 +f 109/128/20 85/129/20 84/130/20 +f 92/131/19 104/132/19 102/133/19 +f 95/134/5 111/135/36 103/136/5 +f 101/127/35 115/137/37 93/125/34 +f 98/138/38 97/139/38 105/140/38 +f 114/141/17 111/135/39 96/142/40 +f 103/136/5 90/143/5 89/144/5 +f 102/133/19 88/145/19 87/146/19 +f 101/127/35 87/147/4 86/148/4 +f 104/124/12 89/149/12 88/150/12 +f 100/118/2 78/151/2 77/152/2 +f 99/112/33 79/153/33 78/154/33 +f 111/155/10 91/156/10 90/157/10 +f 108/158/9 86/159/9 85/160/9 +f 98/161/41 80/162/41 79/163/41 +f 135/164/42 119/165/42 136/166/42 +f 76/167/24 148/168/24 118/169/24 +f 136/170/23 81/171/23 100/172/23 +f 121/173/10 146/174/10 128/175/10 +f 139/176/9 131/177/9 140/178/9 +f 138/179/19 130/180/43 137/181/44 +f 122/182/5 145/183/5 121/184/5 +f 140/185/4 129/186/4 138/187/4 +f 147/188/45 132/189/20 139/190/20 +f 137/181/46 150/191/47 142/192/48 +f 134/193/38 135/194/38 141/195/38 +f 147/188/45 149/196/29 133/197/49 +f 127/198/20 139/190/20 126/199/20 +f 125/200/4 138/187/4 124/201/4 +f 124/202/19 137/181/44 123/203/19 +f 126/204/9 140/178/9 125/205/9 +f 116/206/23 100/172/23 77/207/23 +f 117/208/42 136/166/42 116/209/42 +f 128/210/6 147/211/6 127/212/6 +f 123/213/12 144/214/12 122/215/12 +f 118/216/50 135/217/50 117/218/50 +f 23/1/1 8/219/1 7/2/1 +f 1/4/2 38/220/2 37/5/2 +f 24/7/3 7/221/3 6/8/3 +f 9/10/4 34/222/4 35/11/4 +f 28/13/5 20/223/5 19/14/5 +f 27/16/6 17/224/6 18/17/7 +f 10/19/9 33/225/9 34/20/9 +f 29/22/10 19/226/10 17/23/10 +f 36/25/11 21/34/18 20/26/12 +f 26/18/13 18/17/51 40/28/14 +f 22/30/16 8/227/16 23/31/16 +f 36/25/11 32/228/17 39/33/17 +f 15/35/12 36/25/11 28/27/12 +f 13/37/10 29/22/10 27/24/10 +f 12/39/6 27/16/6 26/18/8 +f 14/41/5 28/13/5 29/15/5 +f 3/43/3 24/7/3 25/9/3 +f 4/45/1 23/1/1 24/3/1 +f 16/47/19 35/229/19 36/48/19 +f 11/50/20 26/230/20 33/51/20 +f 5/53/21 37/231/21 23/54/21 +f 44/56/22 45/232/22 60/57/22 +f 73/59/23 38/233/23 1/60/23 +f 6/62/24 44/234/24 61/63/24 +f 71/65/19 70/235/19 46/66/19 +f 56/68/20 57/236/20 64/69/20 +f 55/71/25 54/237/10 63/72/10 +f 70/74/12 69/238/12 47/75/12 +f 54/77/6 56/239/6 65/78/6 +f 57/80/9 58/88/52 72/81/27 +f 62/73/26 67/240/53 75/83/28 +f 60/84/16 45/241/16 59/85/16 +f 74/87/29 68/242/29 72/81/30 +f 64/82/9 72/81/27 52/89/9 +f 63/79/6 65/78/6 50/91/6 +f 62/73/26 63/72/10 49/93/10 +f 65/70/20 64/69/20 51/95/20 +f 25/64/24 61/63/24 41/97/24 +f 61/58/22 60/57/22 42/99/22 +f 72/101/4 71/243/4 53/102/4 +f 69/104/5 62/244/5 48/105/5 +f 60/107/32 73/245/32 43/108/32 +f 82/110/33 83/246/33 98/111/33 +f 112/113/3 113/247/3 76/114/3 +f 81/116/2 82/248/2 99/117/2 +f 110/119/6 109/249/6 84/120/6 +f 94/122/12 95/250/12 103/123/12 +f 93/125/34 92/251/4 102/126/4 +f 109/128/20 108/252/20 85/129/20 +f 92/131/19 94/253/19 104/132/19 +f 95/134/5 96/142/54 111/135/36 +f 101/127/35 106/254/55 115/137/37 +f 98/138/38 83/255/38 97/139/38 +f 114/141/17 107/256/17 111/135/39 +f 103/136/5 111/135/36 90/143/5 +f 102/133/19 104/132/19 88/145/19 +f 101/127/35 102/126/4 87/147/4 +f 104/124/12 103/123/12 89/149/12 +f 100/118/2 99/117/2 78/151/2 +f 99/112/33 98/111/33 79/153/33 +f 111/155/10 110/257/10 91/156/10 +f 108/158/9 101/258/9 86/159/9 +f 98/161/41 112/259/41 80/162/41 +f 135/164/42 120/260/42 119/165/42 +f 76/167/24 113/261/24 148/168/24 +f 136/170/23 119/262/23 81/171/23 +f 121/173/10 145/263/10 146/174/10 +f 139/176/9 132/264/9 131/177/9 +f 138/179/19 129/265/19 130/180/43 +f 122/182/5 144/266/5 145/183/5 +f 140/185/4 131/267/4 129/186/4 +f 147/188/45 133/197/49 132/189/20 +f 137/181/46 130/180/56 150/191/47 +f 134/193/38 120/268/38 135/194/38 +f 147/188/45 143/269/29 149/196/29 +f 127/198/20 147/188/45 139/190/20 +f 125/200/4 140/185/4 138/187/4 +f 124/202/19 138/179/19 137/181/44 +f 126/204/9 139/176/9 140/178/9 +f 116/206/23 136/170/23 100/172/23 +f 117/208/42 135/164/42 136/166/42 +f 128/210/6 146/270/6 147/211/6 +f 123/213/12 137/271/12 144/214/12 +f 118/216/50 148/272/50 135/217/50 diff --git a/resources/models/pool/table_collider_walls.mtl b/resources/models/pool/table_collider_walls.mtl new file mode 100644 index 00000000..c87b80aa --- /dev/null +++ b/resources/models/pool/table_collider_walls.mtl @@ -0,0 +1,12 @@ +# Blender 4.1.1 MTL File: 'None' +# www.blender.org + +newmtl Material.003 +Ns 0.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.000000 0.000000 0.000000 +Ke 0.000000 0.000000 0.000000 +Ni 1.500000 +d 1.000000 +illum 1 diff --git a/resources/models/pool/table_collider_walls.obj b/resources/models/pool/table_collider_walls.obj new file mode 100644 index 00000000..04ff34c1 --- /dev/null +++ b/resources/models/pool/table_collider_walls.obj @@ -0,0 +1,563 @@ +# Blender 4.1.1 +# www.blender.org +mtllib table_collider_walls.mtl +o Cylinder.001 +v 0.000351 0.889866 0.500611 +v -0.038369 0.889866 0.484718 +v 0.000351 0.889866 0.488426 +v -0.029753 0.889866 0.476102 +v -0.042077 0.889866 0.446419 +v -0.050688 0.889866 0.455030 +v -0.864323 0.889866 0.470928 +v -0.825954 0.889866 0.455035 +v -0.902692 0.889866 0.455035 +v -0.918585 0.889866 0.416666 +v -0.902692 0.889866 0.378297 +v -0.864323 0.889866 0.458743 +v -0.834570 0.889866 0.446419 +v -0.894076 0.889866 0.446419 +v -0.906400 0.889866 0.416666 +v -0.894076 0.889866 0.386913 +v -0.054182 0.889866 0.446419 +v -0.902692 0.889866 -0.011034 +v -0.894076 0.889866 -0.011034 +v -0.054262 0.841593 0.446419 +v -0.894076 0.841593 -0.011034 +v -0.059078 0.889866 0.505508 +v 0.000351 0.889866 0.529956 +v -0.066983 0.889866 0.479435 +v -0.931473 0.889866 0.372572 +v -0.864323 0.889866 0.500272 +v -0.820229 0.889866 0.483815 +v -0.923442 0.889866 0.475784 +v -0.947930 0.889866 0.416666 +v -0.932037 0.889866 -0.011034 +v -0.822356 0.841593 0.446349 +v -0.894076 0.841593 0.374576 +v -0.894076 0.889866 0.374576 +v -0.822364 0.889866 0.446419 +v 0.039071 0.889866 0.484718 +v 0.030455 0.889866 0.476102 +v 0.042779 0.889866 0.446419 +v 0.051391 0.889866 0.455030 +v 0.865026 0.889866 0.470928 +v 0.826657 0.889866 0.455035 +v 0.903395 0.889866 0.455035 +v 0.919288 0.889866 0.416666 +v 0.903395 0.889866 0.378297 +v 0.865026 0.889866 0.458743 +v 0.835273 0.889866 0.446419 +v 0.894778 0.889866 0.446419 +v 0.907102 0.889866 0.416666 +v 0.894778 0.889866 0.386913 +v 0.054885 0.889866 0.446419 +v 0.903395 0.889866 -0.011034 +v 0.894778 0.889866 -0.011034 +v 0.054964 0.841593 0.446419 +v 0.894778 0.841593 -0.011034 +v 0.059781 0.889866 0.505508 +v 0.067686 0.889866 0.479435 +v 0.932175 0.889866 0.372572 +v 0.865026 0.889866 0.500272 +v 0.820932 0.889866 0.483815 +v 0.924144 0.889866 0.475784 +v 0.948632 0.889866 0.416666 +v 0.932739 0.889866 -0.011034 +v 0.823059 0.841593 0.446349 +v 0.894778 0.841593 0.374576 +v 0.894778 0.889866 0.374576 +v 0.823066 0.889866 0.446419 +v 0.000351 0.889866 -0.522678 +v -0.038369 0.889866 -0.506785 +v 0.000351 0.889866 -0.510493 +v -0.029753 0.889866 -0.498169 +v -0.042077 0.889866 -0.468486 +v -0.050688 0.889866 -0.477097 +v -0.864323 0.889866 -0.492995 +v -0.825954 0.889866 -0.477102 +v -0.902692 0.889866 -0.477102 +v -0.918585 0.889866 -0.438733 +v -0.902692 0.889866 -0.400364 +v -0.864323 0.889866 -0.480810 +v -0.834570 0.889866 -0.468486 +v -0.894076 0.889866 -0.468486 +v -0.906400 0.889866 -0.438733 +v -0.894076 0.889866 -0.408980 +v -0.054182 0.889866 -0.468486 +v -0.054262 0.841593 -0.468486 +v -0.059078 0.889866 -0.527575 +v 0.000351 0.889866 -0.552023 +v -0.066983 0.889866 -0.501502 +v -0.931473 0.889866 -0.394639 +v -0.864323 0.889866 -0.522339 +v -0.820229 0.889866 -0.505883 +v -0.923442 0.889866 -0.497852 +v -0.947930 0.889866 -0.438733 +v -0.822356 0.841593 -0.468416 +v -0.894076 0.841593 -0.396643 +v -0.894076 0.889866 -0.396643 +v -0.822364 0.889866 -0.468486 +v 0.039071 0.889866 -0.506785 +v 0.030455 0.889866 -0.498169 +v 0.042779 0.889866 -0.468486 +v 0.051391 0.889866 -0.477097 +v 0.865026 0.889866 -0.492995 +v 0.826657 0.889866 -0.477102 +v 0.903395 0.889866 -0.477102 +v 0.919288 0.889866 -0.438733 +v 0.903395 0.889866 -0.400364 +v 0.865026 0.889866 -0.480810 +v 0.835273 0.889866 -0.468486 +v 0.894778 0.889866 -0.468486 +v 0.907102 0.889866 -0.438733 +v 0.894778 0.889866 -0.408980 +v 0.054885 0.889866 -0.468486 +v 0.054964 0.841593 -0.468486 +v 0.059781 0.889866 -0.527575 +v 0.067686 0.889866 -0.501502 +v 0.932175 0.889866 -0.394639 +v 0.865026 0.889866 -0.522339 +v 0.820932 0.889866 -0.505883 +v 0.924144 0.889866 -0.497852 +v 0.948632 0.889866 -0.438733 +v 0.823059 0.841593 -0.468416 +v 0.894778 0.841593 -0.396643 +v 0.894778 0.889866 -0.396643 +v 0.823066 0.889866 -0.468486 +v -0.076364 0.889866 0.521211 +v 0.000351 0.889866 0.553309 +v -0.080841 0.889866 0.498232 +v -0.954458 0.889866 0.368440 +v -0.864737 0.889866 0.523622 +v -0.816014 0.889866 0.506785 +v -0.939955 0.889866 0.492298 +v -0.971279 0.889866 0.417080 +v -0.955390 0.889866 -0.011034 +v 0.077067 0.889866 0.521211 +v 0.081544 0.889866 0.498232 +v 0.955160 0.889866 0.368440 +v 0.865440 0.889866 0.523622 +v 0.816716 0.889866 0.506785 +v 0.940658 0.889866 0.492298 +v 0.971982 0.889866 0.417080 +v 0.956093 0.889866 -0.011034 +v -0.076364 0.889866 -0.543278 +v 0.000351 0.889866 -0.575376 +v -0.080841 0.889866 -0.520299 +v -0.954458 0.889866 -0.390507 +v -0.864737 0.889866 -0.545689 +v -0.816014 0.889866 -0.528852 +v -0.939955 0.889866 -0.514365 +v -0.971279 0.889866 -0.439147 +v 0.077067 0.889866 -0.543278 +v 0.081544 0.889866 -0.520299 +v 0.955160 0.889866 -0.390507 +v 0.865440 0.889866 -0.545689 +v 0.816716 0.889866 -0.528852 +v 0.940658 0.889866 -0.514365 +v 0.971982 0.889866 -0.439147 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.0001 0.0014 -1.0000 +vn -0.0000 0.0001 -1.0000 +vn 0.0001 0.0015 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0001 0.0014 -1.0000 +vn -0.0001 0.0015 -1.0000 +vn -0.0000 0.0001 1.0000 +vn 0.0001 0.0014 1.0000 +vn 0.0001 0.0015 1.0000 +vn -0.0001 0.0014 1.0000 +vn -0.0001 0.0015 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.068888 0.892615 +vt 0.069369 0.893206 +vt 0.069130 0.893206 +vt 0.068475 0.892204 +vt 0.069057 0.892446 +vt 0.068547 0.876236 +vt 0.068475 0.876989 +vt 0.068306 0.876820 +vt 0.068306 0.875652 +vt 0.068787 0.876236 +vt 0.067722 0.875411 +vt 0.068475 0.875483 +vt 0.066969 0.875483 +vt 0.067722 0.875171 +vt 0.068306 0.892136 +vt 0.068306 0.892373 +vt 0.068306 0.877060 +vt 0.067138 0.875652 +vt 0.066896 0.875652 +vt 0.066856 0.874919 +vt 0.067722 0.874596 +vt 0.068882 0.875076 +vt 0.069363 0.876236 +vt 0.069040 0.877102 +vt 0.049191 0.892040 +vt 0.048253 0.893206 +vt 0.048882 0.891700 +vt 0.069363 0.910176 +vt 0.069490 0.909227 +vt 0.069821 0.910184 +vt 0.059328 0.875483 +vt 0.069945 0.893206 +vt 0.068954 0.891884 +vt 0.069465 0.892040 +vt 0.099155 0.911890 +vt 0.098207 0.919458 +vt 0.098207 0.911890 +vt 0.059328 0.875652 +vt 0.091226 0.956275 +vt 0.092173 0.941200 +vt 0.092173 0.956274 +vt 0.068888 0.893797 +vt 0.068475 0.894208 +vt 0.068306 0.894039 +vt 0.068306 0.909592 +vt 0.068787 0.910176 +vt 0.068547 0.910176 +vt 0.068306 0.910759 +vt 0.068475 0.910928 +vt 0.067722 0.911001 +vt 0.066969 0.910928 +vt 0.067138 0.910759 +vt 0.068306 0.894276 +vt 0.068306 0.909352 +vt 0.068475 0.909423 +vt 0.066896 0.910759 +vt 0.067722 0.911240 +vt 0.066856 0.911493 +vt 0.068882 0.911336 +vt 0.069040 0.909310 +vt 0.069465 0.894372 +vt 0.069322 0.894799 +vt 0.068954 0.894527 +vt 0.070403 0.893206 +vt 0.069773 0.894711 +vt 0.059328 0.911504 +vt 0.051881 0.911944 +vt 0.051800 0.911493 +vt 0.059328 0.910928 +vt 0.069057 0.893966 +vt 0.102000 0.937775 +vt 0.101053 0.930207 +vt 0.102000 0.930207 +vt 0.108050 0.874376 +vt 0.108998 0.889451 +vt 0.108050 0.889451 +vt 0.049287 0.893206 +vt 0.049768 0.892615 +vt 0.049526 0.893206 +vt 0.050181 0.892204 +vt 0.050350 0.892373 +vt 0.050350 0.876820 +vt 0.049869 0.876236 +vt 0.050108 0.876236 +vt 0.050350 0.875652 +vt 0.050181 0.875483 +vt 0.050934 0.875411 +vt 0.050934 0.875171 +vt 0.051518 0.875652 +vt 0.050350 0.892136 +vt 0.050350 0.877060 +vt 0.050181 0.876989 +vt 0.051687 0.875483 +vt 0.051760 0.875652 +vt 0.051800 0.874919 +vt 0.049774 0.875076 +vt 0.049293 0.876236 +vt 0.049616 0.877102 +vt 0.049616 0.909310 +vt 0.049333 0.894799 +vt 0.049702 0.894527 +vt 0.048711 0.893206 +vt 0.049599 0.892446 +vt 0.049702 0.891884 +vt 0.099155 0.927026 +vt 0.098207 0.927026 +vt 0.104381 0.944580 +vt 0.103433 0.929506 +vt 0.104381 0.929506 +vt 0.049768 0.893797 +vt 0.050181 0.894208 +vt 0.049599 0.893966 +vt 0.050350 0.909592 +vt 0.049869 0.910175 +vt 0.050181 0.909423 +vt 0.050350 0.910759 +vt 0.050108 0.910175 +vt 0.050934 0.911001 +vt 0.050181 0.910928 +vt 0.051687 0.910928 +vt 0.050934 0.911240 +vt 0.050350 0.894276 +vt 0.050350 0.894039 +vt 0.050350 0.909352 +vt 0.051518 0.910759 +vt 0.051760 0.910759 +vt 0.050934 0.911816 +vt 0.049774 0.911336 +vt 0.049293 0.910175 +vt 0.050926 0.912275 +vt 0.049450 0.911660 +vt 0.049191 0.894372 +vt 0.101053 0.945343 +vt 0.102000 0.945343 +vt 0.059328 0.910759 +vt 0.107226 0.911888 +vt 0.106279 0.926962 +vt 0.106279 0.911888 +vt 0.069206 0.911660 +vt 0.049333 0.891613 +vt 0.069322 0.891613 +vt 0.069773 0.891700 +vt 0.067730 0.912275 +vt 0.067722 0.911816 +vt 0.066775 0.911944 +vt 0.049166 0.877185 +vt 0.048835 0.876228 +vt 0.069490 0.877185 +vt 0.049450 0.874752 +vt 0.069821 0.876228 +vt 0.050926 0.874137 +vt 0.050934 0.874596 +vt 0.067730 0.874137 +vt 0.069206 0.874752 +vt 0.051881 0.874467 +vt 0.066775 0.874467 +vt 0.059328 0.911963 +vt 0.048882 0.894711 +vt 0.059328 0.874907 +vt 0.059328 0.874449 +vt 0.049166 0.909227 +vt 0.048835 0.910184 +vt 0.099155 0.919458 +vt 0.091226 0.941199 +vt 0.101053 0.937775 +vt 0.108998 0.874375 +vt 0.103433 0.944582 +vt 0.107226 0.926963 +s 1 +usemtl Material.003 +f 4/1/1 1/2/1 3/3/1 +f 4/1/1 6/4/1 2/5/1 +f 12/6/1 8/7/1 13/8/1 +f 14/9/1 7/10/1 12/6/1 +f 15/11/1 9/12/1 14/9/1 +f 15/11/1 11/13/1 10/14/1 +f 17/15/1 6/4/1 5/16/1 +f 6/4/1 34/17/1 8/7/1 +f 11/13/1 16/18/1 33/19/1 +f 10/14/1 25/20/1 29/21/1 +f 10/14/1 28/22/1 9/12/1 +f 9/12/1 26/23/1 7/10/1 +f 7/10/1 27/24/1 8/7/1 +f 84/25/1 141/26/1 140/27/1 +f 57/28/1 136/29/1 135/30/1 +f 18/31/1 25/20/1 11/13/1 +f 2/5/1 23/32/1 1/2/1 +f 2/5/1 24/33/1 22/34/1 +f 8/7/1 24/33/1 6/4/1 +f 32/35/2 19/36/2 33/37/2 +f 18/31/1 33/19/1 19/38/1 +f 13/8/1 8/7/1 34/17/1 +f 34/39/3 20/40/4 31/41/5 +f 1/2/1 36/42/1 3/3/1 +f 36/42/1 38/43/1 37/44/1 +f 45/45/1 39/46/1 44/47/1 +f 39/46/1 46/48/1 44/47/1 +f 41/49/1 47/50/1 46/48/1 +f 47/50/1 43/51/1 48/52/1 +f 49/53/1 37/44/1 38/43/1 +f 65/54/1 38/43/1 40/55/1 +f 43/51/1 64/56/1 48/52/1 +f 42/57/1 56/58/1 43/51/1 +f 59/59/1 42/57/1 41/49/1 +f 39/46/1 59/59/1 41/49/1 +f 58/60/1 39/46/1 40/55/1 +f 54/61/1 133/62/1 55/63/1 +f 54/61/1 124/64/1 132/65/1 +f 61/66/1 150/67/1 114/68/1 +f 56/58/1 50/69/1 43/51/1 +f 23/32/1 35/70/1 1/2/1 +f 35/70/1 55/63/1 38/43/1 +f 55/63/1 40/55/1 38/43/1 +f 51/71/6 63/72/6 64/73/6 +f 50/69/1 64/56/1 43/51/1 +f 45/45/1 65/54/1 40/55/1 +f 52/74/4 65/75/7 62/76/8 +f 66/77/1 69/78/1 68/79/1 +f 69/78/1 71/80/1 70/81/1 +f 78/82/1 72/83/1 77/84/1 +f 72/83/1 79/85/1 77/84/1 +f 74/86/1 80/87/1 79/85/1 +f 75/88/1 81/89/1 80/87/1 +f 82/90/1 70/81/1 71/80/1 +f 95/91/1 71/80/1 73/92/1 +f 76/93/1 94/94/1 81/89/1 +f 75/88/1 87/95/1 76/93/1 +f 90/96/1 75/88/1 74/86/1 +f 88/97/1 74/86/1 72/83/1 +f 89/98/1 72/83/1 73/92/1 +f 116/99/1 149/100/1 113/101/1 +f 87/95/1 18/31/1 76/93/1 +f 85/102/1 67/103/1 66/77/1 +f 67/103/1 86/104/1 71/80/1 +f 86/104/1 73/92/1 71/80/1 +f 19/36/2 93/105/2 94/106/2 +f 18/31/1 94/94/1 76/93/1 +f 78/82/1 95/91/1 73/92/1 +f 83/107/9 95/108/10 92/109/11 +f 97/110/1 66/77/1 68/79/1 +f 97/110/1 99/111/1 96/112/1 +f 106/113/1 100/114/1 101/115/1 +f 107/116/1 100/114/1 105/117/1 +f 108/118/1 102/119/1 107/116/1 +f 108/118/1 104/120/1 103/121/1 +f 110/122/1 99/111/1 98/123/1 +f 99/111/1 122/124/1 101/115/1 +f 104/120/1 109/125/1 121/126/1 +f 103/121/1 114/68/1 118/127/1 +f 102/119/1 118/127/1 117/128/1 +f 100/114/1 117/128/1 115/129/1 +f 100/114/1 116/99/1 101/115/1 +f 118/127/1 150/67/1 154/130/1 +f 117/128/1 154/130/1 153/131/1 +f 50/69/1 114/68/1 104/120/1 +f 96/112/1 85/102/1 66/77/1 +f 96/112/1 113/101/1 112/132/1 +f 101/115/1 113/101/1 99/111/1 +f 120/133/6 51/71/6 121/134/6 +f 50/69/1 121/126/1 51/135/1 +f 106/113/1 101/115/1 122/124/1 +f 122/136/12 111/137/9 119/138/13 +f 22/34/1 124/64/1 23/32/1 +f 59/59/1 135/30/1 137/139/1 +f 84/25/1 142/140/1 86/104/1 +f 22/34/1 125/141/1 123/142/1 +f 59/59/1 138/143/1 60/144/1 +f 60/144/1 134/145/1 56/58/1 +f 88/97/1 145/146/1 144/147/1 +f 26/23/1 128/148/1 27/24/1 +f 90/96/1 144/147/1 146/149/1 +f 28/22/1 127/150/1 26/23/1 +f 90/96/1 147/151/1 91/152/1 +f 28/22/1 130/153/1 129/154/1 +f 58/60/1 133/62/1 136/29/1 +f 91/152/1 143/155/1 87/95/1 +f 29/21/1 126/156/1 130/153/1 +f 61/66/1 134/145/1 139/157/1 +f 112/132/1 141/26/1 85/102/1 +f 112/132/1 149/100/1 148/158/1 +f 89/98/1 142/140/1 145/146/1 +f 27/24/1 125/141/1 24/33/1 +f 30/159/1 143/155/1 131/160/1 +f 115/129/1 152/161/1 116/99/1 +f 30/159/1 126/156/1 25/20/1 +f 117/128/1 151/162/1 115/129/1 +f 4/1/1 2/5/1 1/2/1 +f 4/1/1 5/16/1 6/4/1 +f 12/6/1 7/10/1 8/7/1 +f 14/9/1 9/12/1 7/10/1 +f 15/11/1 10/14/1 9/12/1 +f 15/11/1 16/18/1 11/13/1 +f 6/4/1 17/15/1 34/17/1 +f 10/14/1 11/13/1 25/20/1 +f 10/14/1 29/21/1 28/22/1 +f 9/12/1 28/22/1 26/23/1 +f 7/10/1 26/23/1 27/24/1 +f 84/25/1 85/102/1 141/26/1 +f 57/28/1 58/60/1 136/29/1 +f 18/31/1 30/159/1 25/20/1 +f 2/5/1 22/34/1 23/32/1 +f 2/5/1 6/4/1 24/33/1 +f 8/7/1 27/24/1 24/33/1 +f 32/35/2 21/163/2 19/36/2 +f 18/31/1 11/13/1 33/19/1 +f 34/39/3 17/164/14 20/40/4 +f 1/2/1 35/70/1 36/42/1 +f 36/42/1 35/70/1 38/43/1 +f 45/45/1 40/55/1 39/46/1 +f 39/46/1 41/49/1 46/48/1 +f 41/49/1 42/57/1 47/50/1 +f 47/50/1 42/57/1 43/51/1 +f 65/54/1 49/53/1 38/43/1 +f 42/57/1 60/144/1 56/58/1 +f 59/59/1 60/144/1 42/57/1 +f 39/46/1 57/28/1 59/59/1 +f 58/60/1 57/28/1 39/46/1 +f 54/61/1 132/65/1 133/62/1 +f 54/61/1 23/32/1 124/64/1 +f 61/66/1 139/157/1 150/67/1 +f 56/58/1 61/66/1 50/69/1 +f 23/32/1 54/61/1 35/70/1 +f 35/70/1 54/61/1 55/63/1 +f 55/63/1 58/60/1 40/55/1 +f 51/71/6 53/165/6 63/72/6 +f 50/69/1 51/135/1 64/56/1 +f 52/74/4 49/166/14 65/75/7 +f 66/77/1 67/103/1 69/78/1 +f 69/78/1 67/103/1 71/80/1 +f 78/82/1 73/92/1 72/83/1 +f 72/83/1 74/86/1 79/85/1 +f 74/86/1 75/88/1 80/87/1 +f 75/88/1 76/93/1 81/89/1 +f 95/91/1 82/90/1 71/80/1 +f 75/88/1 91/152/1 87/95/1 +f 90/96/1 91/152/1 75/88/1 +f 88/97/1 90/96/1 74/86/1 +f 89/98/1 88/97/1 72/83/1 +f 116/99/1 152/161/1 149/100/1 +f 87/95/1 30/159/1 18/31/1 +f 85/102/1 84/25/1 67/103/1 +f 67/103/1 84/25/1 86/104/1 +f 86/104/1 89/98/1 73/92/1 +f 19/36/2 21/163/2 93/105/2 +f 18/31/1 19/38/1 94/94/1 +f 83/107/9 82/167/15 95/108/10 +f 97/110/1 96/112/1 66/77/1 +f 97/110/1 98/123/1 99/111/1 +f 106/113/1 105/117/1 100/114/1 +f 107/116/1 102/119/1 100/114/1 +f 108/118/1 103/121/1 102/119/1 +f 108/118/1 109/125/1 104/120/1 +f 99/111/1 110/122/1 122/124/1 +f 103/121/1 104/120/1 114/68/1 +f 102/119/1 103/121/1 118/127/1 +f 100/114/1 102/119/1 117/128/1 +f 100/114/1 115/129/1 116/99/1 +f 118/127/1 114/68/1 150/67/1 +f 117/128/1 118/127/1 154/130/1 +f 50/69/1 61/66/1 114/68/1 +f 96/112/1 112/132/1 85/102/1 +f 96/112/1 99/111/1 113/101/1 +f 101/115/1 116/99/1 113/101/1 +f 120/133/6 53/165/6 51/71/6 +f 50/69/1 104/120/1 121/126/1 +f 122/136/12 110/168/15 111/137/9 +f 22/34/1 123/142/1 124/64/1 +f 59/59/1 57/28/1 135/30/1 +f 84/25/1 140/27/1 142/140/1 +f 22/34/1 24/33/1 125/141/1 +f 59/59/1 137/139/1 138/143/1 +f 60/144/1 138/143/1 134/145/1 +f 88/97/1 89/98/1 145/146/1 +f 26/23/1 127/150/1 128/148/1 +f 90/96/1 88/97/1 144/147/1 +f 28/22/1 129/154/1 127/150/1 +f 90/96/1 146/149/1 147/151/1 +f 28/22/1 29/21/1 130/153/1 +f 58/60/1 55/63/1 133/62/1 +f 91/152/1 147/151/1 143/155/1 +f 29/21/1 25/20/1 126/156/1 +f 61/66/1 56/58/1 134/145/1 +f 112/132/1 148/158/1 141/26/1 +f 112/132/1 113/101/1 149/100/1 +f 89/98/1 86/104/1 142/140/1 +f 27/24/1 128/148/1 125/141/1 +f 30/159/1 87/95/1 143/155/1 +f 115/129/1 151/162/1 152/161/1 +f 30/159/1 131/160/1 126/156/1 +f 117/128/1 153/131/1 151/162/1 diff --git a/src/components/rigid_body.cpp b/src/components/rigid_body.cpp index 7d293951..4639efb1 100644 --- a/src/components/rigid_body.cpp +++ b/src/components/rigid_body.cpp @@ -238,16 +238,16 @@ inline void RigidBody::ComputeFriction( Vec3 direction = CalculateFrictionDirection(normal, velocity); Vec3 frictionForce = Vec3(0); switch (typeFriction) { - case slidingFriction: + case TypeFriction::SlidingFriction: frictionForce = ComputeSlidingFriction( normalForce, friction, direction); break; - case rollingFriction: + case TypeFriction::RollingFriction: frictionForce = ComputeRollingFriction( normalForce, friction, direction, transform); ApplyTorque(normalForce, -direction * friction * glm::length(velocity)); break; - case emptyFriction: + case TypeFriction::EmptyFriction: return; default: Logger::Error("Unknown type of friction"); diff --git a/src/game/classes.cpp b/src/game/classes.cpp index 6d9f797f..7115a9eb 100644 --- a/src/game/classes.cpp +++ b/src/game/classes.cpp @@ -7,13 +7,13 @@ #include "logger.hpp" extern Engine *engine; -extern ShaderProgram *defaultSP; template Object newModel(Transform *transform, Model *model) { Object obj = engine->NewObject(); obj.AddTransform(*transform); - obj.AddModel(*model); + if (model) + obj.AddModel(*model); obj.AddBehaviour(); return obj; } @@ -21,7 +21,8 @@ Object newModel(Transform *transform, Model *model) { Object newModel(Transform *transform, Model *model) { Object obj = engine->NewObject(); obj.AddTransform(*transform); - obj.AddModel(*model); + if (model) + obj.AddModel(*model); return obj; } @@ -30,7 +31,7 @@ Object newStaticBody(Transform *transform, Model *model, Collider *collider, float bounciness = 0.6f, float friction = 0.5f) { Object obj = newModel(transform, model); obj.AddCollider(*collider); - obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, slidingFriction); + obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, TypeFriction::SlidingFriction); return obj; } @@ -38,7 +39,7 @@ Object newStaticBody(Transform *transform, Model *model, Collider *collider, float bounciness = 0.2f, float friction = 0.5f) { Object obj = newModel(transform, model); obj.AddCollider(*collider); - obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, slidingFriction); + obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, TypeFriction::SlidingFriction); return obj; } @@ -49,7 +50,7 @@ Object newStaticBody(Transform *transform, Collider *collider, Object obj = engine->NewObject(); obj.AddTransform(*transform); obj.AddCollider(*collider); - obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, slidingFriction); + obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, TypeFriction::SlidingFriction); return obj; } @@ -58,7 +59,7 @@ Object newStaticBody(Transform *transform, Collider *collider, Object obj = engine->NewObject(); obj.AddTransform(*transform); obj.AddCollider(*collider); - obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, slidingFriction); + obj.AddRigidBody(0.0f, Mat4(0), bounciness, Vec3(0), friction, TypeFriction::SlidingFriction); return obj; } diff --git a/src/game/main.cpp b/src/game/main.cpp index 9eaf3f27..efbd1fce 100644 --- a/src/game/main.cpp +++ b/src/game/main.cpp @@ -10,18 +10,13 @@ // Made this global for easier usage inside functions Engine *engine; Object dogSound; -// I'd like to move responsibility about default shader to engine -ShaderProgram *defaultSP; ShaderProgram *skeletalSP; // Initializing global variables void init() { engine = new Engine("Pool game"); - std::string vertexShaderSource = "standart.vshader"; std::string skeletalVertexShaderSource = "skeletal.vshader"; std::string fragmentShaderSource = "standart.fshader"; - defaultSP = new ShaderProgram( - engine->GetShaderManager().LoadShaderProgram(vertexShaderSource, fragmentShaderSource)); skeletalSP = new ShaderProgram( engine->GetShaderManager().LoadShaderProgram(skeletalVertexShaderSource, fragmentShaderSource)); @@ -175,7 +170,7 @@ void buildRoom() { Object cube = newDynamicBody( new Transform(Vec3(18, floor_y + cc_scale + 0.1f, 0), Vec3(cc_scale), Mat4(1.0)), cc, new Collider{Collider::GetDefaultAABB(&cc->meshes[0]), Collider::Layer1 | Collider::Layer4}, - new RigidBody(1.0f, Mat4(0), 0.5f, Vec3(0, -gravity, 0), 1.0f, slidingFriction)); + new RigidBody(1.0f, Mat4(0), 0.5f, Vec3(0, -gravity, 0), 1.0f, TypeFriction::SlidingFriction)); float chest_scale = 20.f; float chest_y = floor_y + chest_scale * 0.1f; @@ -186,7 +181,7 @@ void buildRoom() { chest, new Collider{Collider::GetDefaultAABB(&chest->meshes[0]).ToOBB(), Collider::Layer1 | Collider::Layer4}, new RigidBody(1.0f, IBodyOBB(Vec3(1), 20.f), 0.5f, Vec3(0, -gravity, 0), 1.0f, - slidingFriction)); + TypeFriction::SlidingFriction)); chestObj.GetTransform()->Rotate(0, glm::radians(90.0f), 0); } @@ -280,7 +275,7 @@ void buildRoom() { Transform *chTransform = new Transform(Vec3(5 * i, floor_y, -15), Vec3(0.5), 0, Vec3(1)); Object chairObj = newDynamicBody(chTransform, chair, new Collider{Collider::GetDefaultAABB(&chair->meshes[0]), Collider::Layer1 | Collider::Layer4}, - new RigidBody(1.0f, IBodyOBB(Vec3(0), 20.f), 0.2f, Vec3(0, -gravity, 0), 1.0f, slidingFriction)); + new RigidBody(1.0f, IBodyOBB(Vec3(0), 20.f), 0.2f, Vec3(0, -gravity, 0), 1.0f, TypeFriction::SlidingFriction)); } @@ -308,7 +303,7 @@ void buildRoom() { Object pizzaObj = newDynamicBody( new Transform(Vec3(20, floor_y + table_y, 21), Vec3(0.1), Mat4(1.0)), pizza, new Collider{Collider::GetDefaultAABB(&pizza->meshes[0]), Collider::Layer1 | Collider::Layer4}, - new RigidBody(1.0f, Mat4(0), 0.5f, Vec3(0, -gravity, 0), 1.0f, slidingFriction)); + new RigidBody(1.0f, Mat4(0), 0.5f, Vec3(0, -gravity, 0), 1.0f, TypeFriction::SlidingFriction)); pizzaObj.SetName("Pizza"); Model *painting = modelManager.LoadModel("Wall painting/Wall_Art_Classical_01.obj"); @@ -376,7 +371,7 @@ int main() { float player_mass = 5.0f; player.AddRigidBody(player_mass, Mat4(0), - 0.5f, Vec3(0, -gravity * player_mass, 0), 0.f, slidingFriction); + 0.5f, Vec3(0, -gravity * player_mass, 0), 0.f, TypeFriction::SlidingFriction); poolTable(player); engine->Run(); diff --git a/src/game/pool.cpp b/src/game/pool.cpp index f9a4e592..1a1242a7 100644 --- a/src/game/pool.cpp +++ b/src/game/pool.cpp @@ -44,10 +44,10 @@ class MovingBall : public Behaviour { Material sphereMaterial = {4.f, Texture(diffuseSource)}; model->setMaterial(sphereMaterial); - Collider *collider = new Collider{Sphere{Vec3(0.0), 1.0}, Collider::Layer1 | Collider::Layer2}; + Collider *collider = new Collider{Sphere{Vec3(0.0), 1.0}, Collider::Layer1 | Collider::Layer2 | Collider::Layer5 | Collider::Layer6}; RigidBody *rb = new RigidBody(mass, IBodySphere(radius, mass), - 0.9f, Vec3(0, -mass * gravity, 0), 0.1f, rollingFriction); - rb->typeFriction = TypeFriction::rollingFriction; + 0.9f, Vec3(0, -mass * gravity, 0), 0.1f, TypeFriction::RollingFriction); + rb->typeFriction = TypeFriction::RollingFriction; Object ball = newDynamicBody(transform, model, collider, rb); ball.SetName("Ball"); auto& s = ball.AddSound(SoundType::SOUND_3D, "beat3.wav").SetVolume(0.5f).SetRadius(20.f); @@ -59,14 +59,14 @@ class MovingBall : public Behaviour { void Update(float dt) override { auto balls = self.CollideAll(); for (auto ball : balls) { - if (ball.GetCollider()->shape.index() == 1) { + if (ball.GetName() == "Ball") { self.GetSound()->SetVolume(log2f(self.GetRigidBody()->velocity.length()) * 0.15f); self.GetSound()->Start(); return; } } for (auto ball : balls) { - if (ball.GetName() == "wall") { + if (ball.GetName() == "Wall") { self.GetSound()->SetVolume(log2f(self.GetRigidBody()->velocity.length()) * 0.12f); self.GetSound()->Start(); return; @@ -95,7 +95,6 @@ class Cue : public Behaviour { Transform *transform = new Transform(Vec3(0), Vec3(8), Mat4(0)); Object newCue = newModel(transform, model); newCue.AddAnimation(); - newCue.AddSound(SoundType::SOUND_FLAT, "beat3.wav").SetVolume(0.1f); reinterpret_cast(newCue.GetBehaviour())->Init(objects, camera, player); return newCue; } @@ -126,7 +125,9 @@ class Cue : public Behaviour { if (s_Input->IsKeyPressed(Key::MouseLeft)) { if (m_CurrentTarget != nullptr) { m_Attacking = true; - self.GetSound()->Start(); + m_CurrentTarget->GetSound() + ->SetVolume(log2f(self.GetRigidBody()->velocity.length()) * 0.15f) + .Start(); Vec3 myPos = self.GetTransform()->GetTranslation(); Vec3 targetPos = m_CurrentTarget->GetTransform()->GetTranslation(); Vec3 direction = glm::normalize(targetPos - myPos); @@ -201,9 +202,15 @@ class Table : public Behaviour { }; model->setMaterial(material); - // get full mesh of the table or make multiple objects for walls of the table. - auto colliderModel = engine->GetModelManager().LoadModel("pool/stol_collider2.obj"); - Collider *col = new Collider {&colliderModel->meshes[0], Collider::Layer2}; + auto colliderFloor = engine->GetModelManager().LoadModel("pool/table_collider_floor.obj"); + Collider *colFloor = new Collider {&colliderFloor->meshes[0], Collider::Layer2}; + + auto colliderWalls = engine->GetModelManager().LoadModel("pool/table_collider_walls.obj"); + Collider *colWalls = new Collider {&colliderWalls->meshes[0], Collider::Layer5}; + + auto colliderHoles = engine->GetModelManager().LoadModel("pool/table_collider_holes.obj"); + Collider *colHoles = new Collider {&colliderHoles->meshes[0], Collider::Layer6}; + AABB aabb = Collider::GetDefaultAABB(model); aabb.max.y -= 0.5f; @@ -212,7 +219,7 @@ class Table : public Behaviour { auto tableForPlayer = engine->NewObject(); tableForPlayer.AddCollider(*colForPlayer); - tableForPlayer.AddRigidBody(0.f, glm::mat4(0), 0.f, Vec3(0), 0.f, slidingFriction); + tableForPlayer.AddRigidBody(0.f, glm::mat4(0), 0.f, Vec3(0), 0.f, TypeFriction::SlidingFriction); tableForPlayer.AddTransform(*transform); @@ -222,12 +229,18 @@ class Table : public Behaviour { float width = 0.9; float length = 0.45; - float floor_friction = 0.15f; - float floor_bounciness = 0.5f; - float walls_bounciness = 0.9f; // TODO(us): can we somehow assign different bounciness to floor and walls? - Object obj = newStaticBody(transform, model, col, floor_bounciness, floor_friction); - - return obj; + float floor_friction = 0.16f; + float floor_bounciness = 0.1f; + float holes_bounciness = 0.3f; + float walls_bounciness = 0.8f; + float walls_friction = 0.1f; + // TODO(us): can we somehow assign different bounciness to floor and walls? + Object floor = newStaticBody
(transform, nullptr, colFloor, floor_bounciness, floor_friction); + Object holes = newStaticBody
(transform, nullptr, colHoles, holes_bounciness, floor_friction); + Object walls = newStaticBody
(transform, model, colWalls, walls_bounciness, walls_friction); + walls.SetName("Wall"); + + return walls; } void Update(float dt) override {} diff --git a/src/main.cpp b/src/main.cpp index 4245e8c3..d4f9a2d9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -254,7 +254,7 @@ int main() { obj.AddCollider(primitive); obj.AddRigidBody(RigidBody(mass, IBodyOBB(Vec3(1), mass), speed, Vec3(0), 0, Vec3(0, -mass * 10, 0), angUnlock, 0.05, - slidingFriction)); + TypeFriction::SlidingFriction)); return obj; }; @@ -299,7 +299,7 @@ int main() { obj.AddRigidBody(RigidBody( mass, IBodySphere(transform.GetScale().x, mass), speed, Vec3(0), 0, Vec3(0, -mass * 10, 0), Vec3(1), 0.01, - rollingFriction)); + TypeFriction::RollingFriction)); return obj; }; diff --git a/src/main/main_rigidbody.cpp b/src/main/main_rigidbody.cpp index 6b73455c..dbe95e27 100644 --- a/src/main/main_rigidbody.cpp +++ b/src/main/main_rigidbody.cpp @@ -71,7 +71,7 @@ int main() { obj.AddCollider(primitive); obj.AddRigidBody(mass, IBodyOBB(Vec3(1), mass), speed, angularSpeed, 0.f, Vec3(0, -mass * 10, 0), angUnlock, 0.05f, - slidingFriction); + TypeFriction::SlidingFriction); return obj; }; @@ -121,8 +121,7 @@ int main() { obj.AddCollider(Sphere{ Vec3(0), 1.f }); obj.AddRigidBody(RigidBody( mass, IBodySphere(transform.GetScale().x, mass), - speed, Vec3(0), 0, Vec3(0, -mass * 10, 0), Vec3(1), 0.01, rollingFriction)); - obj.GetRigidBody()->typeFriction = rollingFriction; + speed, Vec3(0), 0, Vec3(0, -mass * 10, 0), Vec3(1), 0.01, TypeFriction::RollingFriction)); return obj; };