diff --git a/data/models/misc/cube.obj b/data/models/misc/cube.obj index 7260ea9f7865406d2a5ced66b533e2ed80e61fb9..297cfee546ae96a89fd6b82bf1b68acf48c9140e 100644 --- a/data/models/misc/cube.obj +++ b/data/models/misc/cube.obj @@ -1,6 +1,6 @@ # Blender v2.90.1 OBJ File: '' # www.blender.org -mtllib untitled.mtl +# mtllib untitled.mtl o Cube v 1.000000 -1.000000 1.000000 v 1.000000 1.000000 1.000000 @@ -30,7 +30,7 @@ vn -1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 -usemtl Material +# usemtl Material s off f 5/1/1 3/2/1 1/3/1 f 3/2/2 8/4/2 4/5/2 diff --git a/data/models/rofi/pad_board.obj b/data/models/rofi/pad_board.obj new file mode 100644 index 0000000000000000000000000000000000000000..297cfee546ae96a89fd6b82bf1b68acf48c9140e --- /dev/null +++ b/data/models/rofi/pad_board.obj @@ -0,0 +1,46 @@ +# Blender v2.90.1 OBJ File: '' +# www.blender.org +# mtllib untitled.mtl +o Cube +v 1.000000 -1.000000 1.000000 +v 1.000000 1.000000 1.000000 +v 1.000000 -1.000000 -1.000000 +v 1.000000 1.000000 -1.000000 +v -1.000000 -1.000000 1.000000 +v -1.000000 1.000000 1.000000 +v -1.000000 -1.000000 -1.000000 +v -1.000000 1.000000 -1.000000 +vt 0.875000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.750000 +vt 0.625000 0.000000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.375000 0.500000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +# usemtl Material +s off +f 5/1/1 3/2/1 1/3/1 +f 3/2/2 8/4/2 4/5/2 +f 7/6/3 6/7/3 8/8/3 +f 2/9/4 8/10/4 6/11/4 +f 1/3/5 4/5/5 2/9/5 +f 5/12/6 2/9/6 6/7/6 +f 5/1/1 7/13/1 3/2/1 +f 3/2/2 7/14/2 8/4/2 +f 7/6/3 5/12/3 6/7/3 +f 2/9/4 4/5/4 8/10/4 +f 1/3/5 3/2/5 4/5/5 +f 5/12/6 1/3/6 2/9/6 diff --git a/data/models/rofi/pad_connector.obj b/data/models/rofi/pad_connector.obj new file mode 100644 index 0000000000000000000000000000000000000000..d15a0dfbb61c1215a41502e7872c986301cc1482 --- /dev/null +++ b/data/models/rofi/pad_connector.obj @@ -0,0 +1,425 @@ +# Blender 3.6.2 +# www.blender.org +o roficom +v 0.037365 -0.247208 -0.066987 +v 0.037365 -0.247208 -0.000000 +v 0.000000 -0.250000 -0.066987 +v 0.000000 -0.250000 -0.000000 +v -0.037365 -0.247208 -0.066987 +v -0.037365 -0.247208 -0.000000 +v -0.073895 -0.238893 -0.066987 +v -0.073895 -0.238893 -0.000000 +v -0.108775 -0.225242 -0.066987 +v -0.108775 -0.225242 -0.000000 +v -0.141225 -0.206560 -0.066987 +v -0.141225 -0.206560 -0.000000 +v -0.170520 -0.183263 -0.066987 +v -0.170520 -0.183263 -0.000000 +v -0.196006 -0.155872 -0.066987 +v -0.196006 -0.155872 -0.000000 +v -0.217113 -0.125000 -0.066987 +v -0.217113 -0.125000 -0.000000 +v -0.233371 -0.091335 -0.066987 +v -0.233371 -0.091335 -0.000000 +v -0.244415 -0.055630 -0.066987 +v -0.244415 -0.055630 -0.000000 +v -0.250000 -0.018683 -0.066987 +v -0.250000 -0.018683 -0.000000 +v -0.250000 0.018683 -0.066987 +v -0.250000 0.018683 -0.000000 +v -0.244415 0.055630 -0.066987 +v -0.244415 0.055630 -0.000000 +v -0.233371 0.091335 -0.066987 +v -0.233371 0.091335 -0.000000 +v -0.217113 0.125000 -0.066987 +v -0.217113 0.125000 -0.000000 +v -0.196006 0.155872 -0.066987 +v -0.196006 0.155872 -0.000000 +v -0.170520 0.183263 -0.066987 +v -0.170520 0.183263 -0.000000 +v -0.141225 0.206560 -0.066987 +v -0.141225 0.206560 -0.000000 +v -0.108775 0.225242 -0.066987 +v -0.108775 0.225242 -0.000000 +v -0.073895 0.238893 -0.066987 +v -0.073895 0.238893 -0.000000 +v -0.037365 0.247208 -0.066987 +v -0.037365 0.247208 -0.000000 +v -0.000000 0.250000 -0.066987 +v -0.000000 0.250000 -0.000000 +v 0.037365 0.247208 -0.066987 +v 0.037365 0.247208 -0.000000 +v 0.073895 0.238893 -0.066987 +v 0.073895 0.238893 -0.000000 +v 0.108775 0.225242 -0.066987 +v 0.108775 0.225242 -0.000000 +v 0.141225 0.206560 -0.066987 +v 0.141225 0.206560 -0.000000 +v 0.170520 0.183263 -0.066987 +v 0.170520 0.183263 -0.000000 +v 0.196006 0.155872 -0.066987 +v 0.196006 0.155872 -0.000000 +v 0.217113 0.125000 -0.066987 +v 0.217113 0.125000 -0.000000 +v 0.233371 0.091335 -0.066987 +v 0.233371 0.091335 -0.000000 +v 0.244415 0.055630 -0.066987 +v 0.244415 0.055630 -0.000000 +v 0.250000 0.018683 -0.066987 +v 0.250000 0.018683 -0.000000 +v 0.250000 -0.018683 -0.066987 +v 0.250000 -0.018683 -0.000000 +v 0.244415 -0.055630 -0.066987 +v 0.244415 -0.055630 -0.000000 +v 0.233371 -0.091335 -0.066987 +v 0.233371 -0.091335 -0.000000 +v 0.217113 -0.125000 -0.066987 +v 0.217113 -0.125000 -0.000000 +v 0.196006 -0.155872 -0.066987 +v 0.196006 -0.155872 -0.000000 +v 0.170520 -0.183263 -0.066987 +v 0.170520 -0.183263 -0.000000 +v 0.141225 -0.206560 -0.066987 +v 0.141225 -0.206560 -0.000000 +v 0.108775 -0.225242 -0.066987 +v 0.108775 -0.225242 -0.000000 +v 0.073895 -0.238893 -0.066987 +v 0.073895 -0.238893 -0.000000 +vn 0.1486 -0.9889 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.1486 -0.9889 -0.0000 +vn -0.2940 -0.9558 -0.0000 +vn -0.4329 -0.9014 -0.0000 +vn -0.5623 -0.8270 -0.0000 +vn -0.6792 -0.7340 -0.0000 +vn -0.7810 -0.6245 -0.0000 +vn -0.8654 -0.5010 -0.0000 +vn -0.9305 -0.3662 -0.0000 +vn -0.9748 -0.2231 -0.0000 +vn -0.9972 -0.0749 -0.0000 +vn -0.9972 0.0749 -0.0000 +vn -0.9748 0.2231 -0.0000 +vn -0.9305 0.3662 -0.0000 +vn -0.8654 0.5010 -0.0000 +vn -0.7810 0.6245 -0.0000 +vn -0.6792 0.7340 -0.0000 +vn -0.5623 0.8270 -0.0000 +vn -0.4329 0.9014 -0.0000 +vn -0.2940 0.9558 -0.0000 +vn -0.1486 0.9889 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.1486 0.9889 -0.0000 +vn 0.2940 0.9558 -0.0000 +vn 0.4329 0.9014 -0.0000 +vn 0.5623 0.8270 -0.0000 +vn 0.6792 0.7340 -0.0000 +vn 0.7810 0.6245 -0.0000 +vn 0.8654 0.5010 -0.0000 +vn 0.9305 0.3662 -0.0000 +vn 0.9748 0.2231 -0.0000 +vn 0.9972 0.0749 -0.0000 +vn 0.9972 -0.0749 -0.0000 +vn 0.9748 -0.2231 -0.0000 +vn 0.9305 -0.3662 -0.0000 +vn 0.8654 -0.5010 -0.0000 +vn 0.7810 -0.6245 -0.0000 +vn 0.6792 -0.7340 -0.0000 +vn 0.5623 -0.8270 -0.0000 +vn 0.4329 -0.9014 -0.0000 +vn 0.2940 -0.9558 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vt -0.669873 7.479983 +vt -0.000000 7.479983 +vt -0.669873 7.853982 +vt -0.000000 7.853982 +vt -0.669873 -7.853982 +vt -0.000000 -7.853982 +vt -0.669873 -7.479983 +vt -0.000000 -7.479983 +vt -0.669873 -7.105983 +vt -0.000000 -7.105983 +vt -0.669873 -6.731984 +vt -0.000000 -6.731984 +vt -0.669873 -6.357985 +vt -0.000000 -6.357985 +vt -0.669873 -5.983986 +vt -0.000000 -5.983986 +vt -0.669873 -5.609987 +vt -0.000000 -5.609987 +vt -0.669873 -5.235988 +vt -0.000000 -5.235988 +vt -0.669873 -4.861989 +vt -0.000000 -4.861989 +vt -0.669873 -4.487990 +vt -0.000000 -4.487990 +vt -0.669873 -4.113990 +vt -0.000000 -4.113990 +vt -0.669873 -3.739991 +vt -0.000000 -3.739991 +vt -0.669873 -3.365992 +vt -0.000000 -3.365992 +vt -0.669873 -2.991993 +vt -0.000000 -2.991993 +vt -0.669873 -2.617994 +vt -0.000000 -2.617994 +vt -0.669873 -2.243995 +vt -0.000000 -2.243995 +vt -0.669873 -1.869996 +vt -0.000000 -1.869996 +vt -0.669873 -1.495997 +vt -0.000000 -1.495997 +vt -0.669873 -1.121997 +vt -0.000000 -1.121997 +vt -0.669873 -0.747998 +vt -0.000000 -0.747998 +vt -0.669873 -0.373999 +vt -0.000000 -0.373999 +vt -0.669873 0.000000 +vt -0.000000 0.000000 +vt -0.669873 0.373999 +vt -0.000000 0.373999 +vt -0.669873 0.747998 +vt -0.000000 0.747998 +vt -0.669873 1.121997 +vt -0.000000 1.121997 +vt -0.669873 1.495997 +vt -0.000000 1.495997 +vt -0.669873 1.869996 +vt -0.000000 1.869996 +vt -0.669873 2.243995 +vt -0.000000 2.243995 +vt -0.669873 2.617994 +vt -0.000000 2.617994 +vt -0.669873 2.991993 +vt -0.000000 2.991993 +vt -0.669873 3.365992 +vt -0.000000 3.365992 +vt -0.669873 3.739991 +vt -0.000000 3.739991 +vt -0.669873 4.113990 +vt -0.000000 4.113990 +vt -0.669873 4.487990 +vt -0.000000 4.487990 +vt -0.669873 4.861989 +vt -0.000000 4.861989 +vt -0.669873 5.235988 +vt -0.000000 5.235988 +vt -0.669873 5.609987 +vt -0.000000 5.609987 +vt -0.669873 5.983986 +vt -0.000000 5.983986 +vt -0.669873 6.357985 +vt -0.000000 6.357985 +vt -0.669873 6.731984 +vt -0.000000 6.731984 +vt -0.669873 7.105983 +vt -0.000000 7.105983 +vt -2.472077 -0.372606 +vt 2.472077 -0.372606 +vt -2.500000 -0.000000 +vt 2.500000 0.000000 +vt -2.472077 0.372606 +vt 2.472077 0.372606 +vt -2.388932 0.736888 +vt 2.388932 0.736888 +vt -2.252422 1.084709 +vt 2.252422 1.084709 +vt -2.065597 1.408300 +vt 2.065597 1.408300 +vt -1.832630 1.700432 +vt 1.832630 1.700432 +vt -1.558725 1.954579 +vt 1.558725 1.954579 +vt -1.250000 2.165064 +vt 1.250000 2.165064 +vt -0.913353 2.327184 +vt 0.913353 2.327184 +vt -0.556302 2.437320 +vt 0.556302 2.437320 +vt -0.186825 2.493010 +vt 0.186825 2.493010 +vt 2.388932 -0.736888 +vt -2.388932 -0.736888 +vt 2.252422 -1.084709 +vt -2.252422 -1.084709 +vt 2.065597 -1.408300 +vt -2.065597 -1.408300 +vt 1.832630 -1.700432 +vt -1.832630 -1.700432 +vt 1.558725 -1.954579 +vt -1.558725 -1.954579 +vt 1.250000 -2.165064 +vt -1.250000 -2.165064 +vt 0.913353 -2.327184 +vt -0.913353 -2.327184 +vt 0.556302 -2.437320 +vt -0.556302 -2.437320 +vt 0.186825 -2.493010 +vt -0.186825 -2.493010 +vt 2.500000 -0.000000 +s 1 +f 1/1/1 2/2/1 3/3/2 +f 3/3/2 2/2/1 4/4/2 +f 3/5/2 4/6/2 5/7/3 +f 5/7/3 4/6/2 6/8/3 +f 5/7/3 6/8/3 7/9/4 +f 7/9/4 6/8/3 8/10/4 +f 7/9/4 8/10/4 9/11/5 +f 9/11/5 8/10/4 10/12/5 +f 9/11/5 10/12/5 11/13/6 +f 11/13/6 10/12/5 12/14/6 +f 11/13/6 12/14/6 13/15/7 +f 13/15/7 12/14/6 14/16/7 +f 13/15/7 14/16/7 15/17/8 +f 15/17/8 14/16/7 16/18/8 +f 15/17/8 16/18/8 17/19/9 +f 17/19/9 16/18/8 18/20/9 +f 17/19/9 18/20/9 19/21/10 +f 19/21/10 18/20/9 20/22/10 +f 19/21/10 20/22/10 21/23/11 +f 21/23/11 20/22/10 22/24/11 +f 21/23/11 22/24/11 23/25/12 +f 23/25/12 22/24/11 24/26/12 +f 23/25/12 24/26/12 25/27/13 +f 25/27/13 24/26/12 26/28/13 +f 25/27/13 26/28/13 27/29/14 +f 27/29/14 26/28/13 28/30/14 +f 27/29/14 28/30/14 29/31/15 +f 29/31/15 28/30/14 30/32/15 +f 29/31/15 30/32/15 31/33/16 +f 31/33/16 30/32/15 32/34/16 +f 31/33/16 32/34/16 33/35/17 +f 33/35/17 32/34/16 34/36/17 +f 33/35/17 34/36/17 35/37/18 +f 35/37/18 34/36/17 36/38/18 +f 35/37/18 36/38/18 37/39/19 +f 37/39/19 36/38/18 38/40/19 +f 37/39/19 38/40/19 39/41/20 +f 39/41/20 38/40/19 40/42/20 +f 39/41/20 40/42/20 41/43/21 +f 41/43/21 40/42/20 42/44/21 +f 41/43/21 42/44/21 43/45/22 +f 43/45/22 42/44/21 44/46/22 +f 43/45/22 44/46/22 45/47/23 +f 45/47/23 44/46/22 46/48/23 +f 45/47/23 46/48/23 47/49/24 +f 47/49/24 46/48/23 48/50/24 +f 47/49/24 48/50/24 49/51/25 +f 49/51/25 48/50/24 50/52/25 +f 49/51/25 50/52/25 51/53/26 +f 51/53/26 50/52/25 52/54/26 +f 51/53/26 52/54/26 53/55/27 +f 53/55/27 52/54/26 54/56/27 +f 53/55/27 54/56/27 55/57/28 +f 55/57/28 54/56/27 56/58/28 +f 55/57/28 56/58/28 57/59/29 +f 57/59/29 56/58/28 58/60/29 +f 57/59/29 58/60/29 59/61/30 +f 59/61/30 58/60/29 60/62/30 +f 59/61/30 60/62/30 61/63/31 +f 61/63/31 60/62/30 62/64/31 +f 61/63/31 62/64/31 63/65/32 +f 63/65/32 62/64/31 64/66/32 +f 63/65/32 64/66/32 65/67/33 +f 65/67/33 64/66/32 66/68/33 +f 65/67/33 66/68/33 67/69/34 +f 67/69/34 66/68/33 68/70/34 +f 67/69/34 68/70/34 69/71/35 +f 69/71/35 68/70/34 70/72/35 +f 69/71/35 70/72/35 71/73/36 +f 71/73/36 70/72/35 72/74/36 +f 71/73/36 72/74/36 73/75/37 +f 73/75/37 72/74/36 74/76/37 +f 73/75/37 74/76/37 75/77/38 +f 75/77/38 74/76/37 76/78/38 +f 75/77/38 76/78/38 77/79/39 +f 77/79/39 76/78/38 78/80/39 +f 77/79/39 78/80/39 79/81/40 +f 79/81/40 78/80/39 80/82/40 +f 79/81/40 80/82/40 81/83/41 +f 81/83/41 80/82/40 82/84/41 +f 81/83/41 82/84/41 83/85/42 +f 83/85/42 82/84/41 84/86/42 +f 83/85/42 84/86/42 1/1/1 +f 1/1/1 84/86/42 2/2/1 +f 5/87/43 43/88/43 3/89/43 +f 3/89/43 43/88/43 45/90/43 +f 3/89/43 45/90/43 1/91/43 +f 1/91/43 45/90/43 47/92/43 +f 1/91/43 47/92/43 83/93/43 +f 83/93/43 47/92/43 49/94/43 +f 83/93/43 49/94/43 81/95/43 +f 81/95/43 49/94/43 51/96/43 +f 81/95/43 51/96/43 79/97/43 +f 79/97/43 51/96/43 53/98/43 +f 79/97/43 53/98/43 77/99/43 +f 77/99/43 53/98/43 55/100/43 +f 77/99/43 55/100/43 75/101/43 +f 75/101/43 55/100/43 57/102/43 +f 75/101/43 57/102/43 73/103/43 +f 73/103/43 57/102/43 59/104/43 +f 73/103/43 59/104/43 71/105/43 +f 71/105/43 59/104/43 61/106/43 +f 71/105/43 61/106/43 69/107/43 +f 69/107/43 61/106/43 63/108/43 +f 69/107/43 63/108/43 67/109/43 +f 67/109/43 63/108/43 65/110/43 +f 43/88/43 5/87/43 41/111/43 +f 41/111/43 5/87/43 7/112/43 +f 41/111/43 7/112/43 39/113/43 +f 39/113/43 7/112/43 9/114/43 +f 39/113/43 9/114/43 37/115/43 +f 37/115/43 9/114/43 11/116/43 +f 37/115/43 11/116/43 35/117/43 +f 35/117/43 11/116/43 13/118/43 +f 35/117/43 13/118/43 33/119/43 +f 33/119/43 13/118/43 15/120/43 +f 33/119/43 15/120/43 31/121/43 +f 31/121/43 15/120/43 17/122/43 +f 31/121/43 17/122/43 29/123/43 +f 29/123/43 17/122/43 19/124/43 +f 29/123/43 19/124/43 27/125/43 +f 27/125/43 19/124/43 21/126/43 +f 27/125/43 21/126/43 25/127/43 +f 25/127/43 21/126/43 23/128/43 +f 2/92/44 48/91/44 4/129/44 +f 4/90/44 48/91/44 46/89/44 +f 4/90/44 46/89/44 6/88/44 +f 6/88/44 46/89/44 44/87/44 +f 6/88/44 44/87/44 8/111/44 +f 8/111/44 44/87/44 42/112/44 +f 8/111/44 42/112/44 10/113/44 +f 10/113/44 42/112/44 40/114/44 +f 10/113/44 40/114/44 12/115/44 +f 12/115/44 40/114/44 38/116/44 +f 12/115/44 38/116/44 14/117/44 +f 14/117/44 38/116/44 36/118/44 +f 14/117/44 36/118/44 16/119/44 +f 16/119/44 36/118/44 34/120/44 +f 16/119/44 34/120/44 18/121/44 +f 18/121/44 34/120/44 32/122/44 +f 18/121/44 32/122/44 20/123/44 +f 20/123/44 32/122/44 30/124/44 +f 20/123/44 30/124/44 22/125/44 +f 22/125/44 30/124/44 28/126/44 +f 22/125/44 28/126/44 24/127/44 +f 24/127/44 28/126/44 26/128/44 +f 48/91/44 2/92/44 50/93/44 +f 50/93/44 2/92/44 84/94/44 +f 50/93/44 84/94/44 52/95/44 +f 52/95/44 84/94/44 82/96/44 +f 52/95/44 82/96/44 54/97/44 +f 54/97/44 82/96/44 80/98/44 +f 54/97/44 80/98/44 56/99/44 +f 56/99/44 80/98/44 78/100/44 +f 56/99/44 78/100/44 58/101/44 +f 58/101/44 78/100/44 76/102/44 +f 58/101/44 76/102/44 60/103/44 +f 60/103/44 76/102/44 74/104/44 +f 60/103/44 74/104/44 62/105/44 +f 62/105/44 74/104/44 72/106/44 +f 62/105/44 72/106/44 64/107/44 +f 64/107/44 72/106/44 70/108/44 +f 64/107/44 70/108/44 66/109/44 +f 66/109/44 70/108/44 68/110/44 diff --git a/src/edit/include/edit/editor.hpp b/src/edit/include/edit/editor.hpp index 924e0785fde8a19d2d58932f57760da386d8d3c8..1bc4807dd7e1d3f8da7dc9ae0f42443b6e0c6465 100644 --- a/src/edit/include/edit/editor.hpp +++ b/src/edit/include/edit/editor.hpp @@ -216,8 +216,9 @@ class Editor mesh_ptr voxel_mesh = Mesh::loadMesh("./data/models/rofi/cube_new_scale.obj"); mesh_ptr body_mesh = Mesh::loadMesh("./data/models/rofi/body_new_scale.obj", false, false); + mesh_ptr pad_board_mesh = Mesh::loadMesh("./data/models/rofi/pad_board.obj", true, false); - mesh_ptr fixed_connector_mesh = Mesh::loadMesh("./data/models/rofi/connector_new_scale.obj", false, false); + mesh_ptr fixed_connector_mesh = Mesh::loadMesh("./data/models/rofi/pad_connector.obj", false, false); mesh_ptr open_connector_mesh = Mesh::loadMesh("./data/models/rofi/connector_new_scale.obj", false, false); mesh_ptr connected_connector_mesh = Mesh::loadMesh("./data/models/rofi/connector_connected_new_scale.obj", false, false); mesh_ptr shared_connector_mesh = Mesh::loadMesh("./data/models/rofi/connector_new_scale.obj"); @@ -229,8 +230,9 @@ class Editor mesh_ptr voxel_mesh_invalid = Mesh::loadMesh("./data/models/rofi/cube_new_scale.obj"); mesh_ptr body_mesh_invalid = Mesh::loadMesh("./data/models/rofi/body_new_scale.obj", false, false); + mesh_ptr pad_board_mesh_invalid = Mesh::loadMesh("./data/models/rofi/pad_board.obj", true, false); - mesh_ptr fixed_connector_mesh_invalid = Mesh::loadMesh("./data/models/rofi/connector_new_scale.obj", false, false); + mesh_ptr fixed_connector_mesh_invalid = Mesh::loadMesh("./data/models/rofi/pad_connector.obj", false, false); mesh_ptr open_connector_mesh_invalid = Mesh::loadMesh("./data/models/rofi/connector_new_scale.obj", false, false); mesh_ptr connected_connector_mesh_invalid = Mesh::loadMesh("./data/models/rofi/connector_connected_new_scale.obj", false, false); mesh_ptr shared_connector_mesh_invalid = Mesh::loadMesh("./data/models/rofi/connector_new_scale.obj"); @@ -240,6 +242,7 @@ class Editor const std::vector<mesh_ptr> voxel_meshes = { voxel_mesh, voxel_mesh_invalid }; const std::vector<mesh_ptr> body_meshes = { body_mesh, body_mesh_invalid }; + const std::vector<mesh_ptr> pad_board_meshes = { pad_board_mesh, pad_board_mesh_invalid }; const std::vector<mesh_ptr> fixed_connector_meshes = { fixed_connector_mesh, fixed_connector_mesh_invalid }; const std::vector<mesh_ptr> open_connector_meshes = { open_connector_mesh, open_connector_mesh_invalid }; const std::vector<mesh_ptr> connected_connector_meshes = { connected_connector_mesh, connected_connector_mesh_invalid }; @@ -260,6 +263,7 @@ public: // Default Mesh voxel_mesh->setMaterial(mat::yellow_plastic); body_mesh->setMaterial(mat::black_plastic); + pad_board_mesh->setMaterial(mat::brown_rubber); fixed_connector_mesh->setMaterial(mat::red_plastic); open_connector_mesh->setMaterial(mat::blue_plastic); @@ -272,6 +276,7 @@ public: //Invalid Mesh voxel_mesh_invalid->setMaterial(mat::red_highlight); body_mesh_invalid->setMaterial(mat::red_highlight); + pad_board_mesh_invalid->setMaterial(mat::red_highlight); fixed_connector_mesh_invalid->setMaterial(mat::red_highlight); open_connector_mesh_invalid->setMaterial(mat::red_highlight); @@ -388,6 +393,7 @@ private: void initializeUniversal(); void initializePad(); void initializeUnknown(); + void createPad(std::size_t width, std::size_t height); void setVoxelGraphToScene(voxel_graph_ptr prev_vg, voxel_graph_ptr new_vg); void addVoxelGraphToScene(voxel_graph_ptr vg); void removeVoxelGraphFromScene(voxel_graph_ptr vg); diff --git a/src/edit/src/editor.cpp b/src/edit/src/editor.cpp index 998879417f0f989556e547a33aa364d01d7a6914..35d97823f5f208ef3df58260f591e75c5f664d94 100644 --- a/src/edit/src/editor.cpp +++ b/src/edit/src/editor.cpp @@ -284,6 +284,7 @@ void Editor::exitBuildModeI(const build_mode_I previous_build_mode) { scene->manageSelection(nullptr); scene->manageHighlight(glm::vec3(0.0f), nullptr); + hover_nearest_node = nullptr; setVoxelGraphToScene(voxel_graph, module_type_voxel_graphs[editor_build_mode_I]); voxel_graph = module_type_voxel_graphs[editor_build_mode_I]; } @@ -458,11 +459,12 @@ void Editor::doBuildUniversalAction() void Editor::doBuildPadAction() { - hoverOver(); + // hoverOver(); selectObject(); updateAllowedComponents(); - updateBuildHint(); - controlBuild(); + // updateBuildHint(); + // controlBuild(); + // createPad(); selection_previous_frame = scene->getSelection(); } @@ -489,8 +491,8 @@ void Editor::updateAllowedComponents() allowed_components = { voxel, open_con, rotation_con, shared_rotation_con }; break; case pad: - allowed_components = { open_con }; - break; + allowed_components = {}; + return; case unknown: allowed_components = { voxel, fixed_con, open_con, rotation_con, shared_rotation_con }; break; @@ -555,7 +557,6 @@ bool Editor::checkUniversalBuildValid() bool Editor::checkPadBuildValid() { - // TO DO return true; } @@ -997,10 +998,17 @@ void Editor::initializePad() using namespace rofi; module_type_voxel_graphs[pad] = std::make_shared<VoxelGraph>(); - auto open_con_node = Node::create(glm::vec3(0.0f, -0.5f, 0.0f), get_connector_face_rotation(glm::vec3(0.0f, 1.0f, 0.0f))); + auto open_con_node = Node::create(glm::vec3(0.0f, 0.0f, 0.0f), get_connector_face_rotation(glm::vec3(0.0f, 1.0f, 0.0f))); auto open_connector = module_type_voxel_graphs[pad]->addConnector(open_con_node, connector_type::open); - addConnectorMesh(open_con_node, connector_type::open); + addConnectorMesh(open_con_node, connector_type::fixed); open_con_node->addObject(open_connector); + + auto pad_board_node = Node::create(glm::vec3(0.0f, -0.5f, 0.0f)); + auto pad_board = module_type_voxel_graphs[pad]->addPadBoard(pad_board_node); + scene->addMesh(pad_board_node, pad_board_mesh); + pad_board_node->addObject(pad_board); + + module_type_voxel_graphs[pad]->join(open_connector, pad_board, enum_to_vec(side::y_pos)); } void Editor::initializeUnknown() @@ -1920,14 +1928,14 @@ void Editor::updateRoFIMesh(const voxel_graph_ptr vg) scene->removeAllMesh(voxel->getNode()); scene->addMesh(voxel->getNode(), body_mesh); } - else if (!voxel->hasSharedRotation() && !scene->containsMesh(voxel->getNode(), voxel_mesh)) + else if (!voxel->hasSharedRotation() && (!scene->containsMesh(voxel->getNode(), voxel_mesh) && !scene->containsMesh(voxel->getNode(), pad_board_mesh))) { changed = true; scene->removeAllMesh(voxel->getNode()); scene->addMesh(voxel->getNode(), voxel_mesh); } - if (changed && voxel->getNode() == scene->getSelection()) + if (changed && voxel->getNode() == scene->getSelection()) { scene->manageSelection(voxel->getNode()); } @@ -1964,9 +1972,10 @@ void Editor::setVoxelMesh(const voxel_ptr voxel, bool invalid_state) return; int i = invalid_state ? 1 : 0; + auto voxel_meshes_local = std::dynamic_pointer_cast<rofi::PadBoard>(voxel) ? pad_board_meshes : voxel_meshes; scene->removeAllMesh(voxel->getNode()); - const auto mesh = voxel->hasSharedRotation() ? body_meshes[i] : voxel_meshes[i]; + const auto mesh = voxel->hasSharedRotation() ? body_meshes[i] : voxel_meshes_local[i]; scene->addMesh(voxel->getNode(), mesh); } diff --git a/src/gfx/include/gfx/material.hpp b/src/gfx/include/gfx/material.hpp index f817733d9b4fb63b06ca87836c69d7d4dbe5ffdd..7a38901d1df539ba2fd4536a41caa9c9202296fd 100644 --- a/src/gfx/include/gfx/material.hpp +++ b/src/gfx/include/gfx/material.hpp @@ -82,9 +82,13 @@ namespace mat glm::vec4(1.0f), glm::vec4(0.9f, 0.9f, 0.9f, 256.0f)); - static const Material black_rubber = Material(glm::vec4(0.0f), - glm::vec4(1.0f), - glm::vec4(0.0f)); + static const Material black_rubber = Material(glm::vec4(0.02f, 0.02f, 0.02f, 1.0f), + glm::vec4(0.01f, 0.01f, 0.01f, 1.0f), + glm::vec4(0.4f, 0.4f, 0.4f, 10.0f)); + + static const Material brown_rubber = Material(glm::vec4(0.02f, 0.02f, 0.02f, 0.0f), + glm::vec4(0.647f, 0.365f, 0.165f, 1.0f), + glm::vec4(glm::vec3(0.647f, 0.365f, 0.165f) * 0.4f, 10.0f)); static const Material green_highlight = Material(glm::vec4(0.0f), glm::vec4(0.0f, 1.0f, 0.0f, 0.05f), diff --git a/src/rofi/include/rofi/voxel_graph.hpp b/src/rofi/include/rofi/voxel_graph.hpp index 5f5cbbfe388d2d77e319d88254f1f35316f40d21..bbc504547850e3eb421b470fbc0054999ee81ea6 100644 --- a/src/rofi/include/rofi/voxel_graph.hpp +++ b/src/rofi/include/rofi/voxel_graph.hpp @@ -55,6 +55,7 @@ public: voxel_ptr addVoxel(node_ptr node); voxel_ptr addModuleLink(node_ptr node); + voxel_ptr addPadBoard(node_ptr node); connector_ptr addConnector(node_ptr node, enum class connector_type t); connector_ptr addConnector(node_ptr node, enum class connector_type t, glm::vec3 rotation_axis); connector_ptr addConnector(node_ptr node, enum class connector_type t, glm::vec3 rotation_axis, glm::vec3 highlight_direction); diff --git a/src/rofi/src/voxel_graph.cpp b/src/rofi/src/voxel_graph.cpp index b7df2e0da3a835d8227c5386485fbe49f199fecd..dc8bd3677e8a9db189d934009aeaeccb3f7ad71b 100644 --- a/src/rofi/src/voxel_graph.cpp +++ b/src/rofi/src/voxel_graph.cpp @@ -221,6 +221,12 @@ voxel_ptr VoxelGraph::addModuleLink(node_ptr node) return voxels.back(); } +voxel_ptr VoxelGraph::addPadBoard(node_ptr node) +{ + voxels.emplace_back(std::make_shared<PadBoard>(node)); + return voxels.back(); +} + connector_ptr VoxelGraph::addConnector(node_ptr node, connector_type t) { using enum connector_type;