From 8567abb971ab68d4feebb8d4ed4cde11bbf43117 Mon Sep 17 00:00:00 2001 From: Sophie Date: Tue, 29 Oct 2024 12:41:41 -0400 Subject: [PATCH 1/4] add .Merge() and test case models --- datafiles/text_A.mtl | 12 + datafiles/text_A.obj | 82 ++ datafiles/text_A.png | Bin 0 -> 374 bytes datafiles/text_B.mtl | 12 + datafiles/text_B.obj | 748 ++++++++++++++++++ datafiles/text_B.png | Bin 0 -> 375 bytes datafiles/text_C.mtl | 12 + datafiles/text_C.obj | 689 ++++++++++++++++ datafiles/text_C.png | Bin 0 -> 374 bytes dotobj.yyp | 9 + scripts/DotobjClassGroup/DotobjClassGroup.gml | 14 + scripts/DotobjClassMesh/DotobjClassMesh.gml | 38 + scripts/DotobjClassModel/DotobjClassModel.gml | 15 + scripts/DotobjModelLoad/DotobjModelLoad.gml | 3 + 14 files changed, 1634 insertions(+) create mode 100644 datafiles/text_A.mtl create mode 100644 datafiles/text_A.obj create mode 100644 datafiles/text_A.png create mode 100644 datafiles/text_B.mtl create mode 100644 datafiles/text_B.obj create mode 100644 datafiles/text_B.png create mode 100644 datafiles/text_C.mtl create mode 100644 datafiles/text_C.obj create mode 100644 datafiles/text_C.png diff --git a/datafiles/text_A.mtl b/datafiles/text_A.mtl new file mode 100644 index 0000000..cd34f26 --- /dev/null +++ b/datafiles/text_A.mtl @@ -0,0 +1,12 @@ +# Blender 4.0.2 MTL File: 'merge.blend' +# www.blender.org + +newmtl Material.001 +Ns 250.000000 +Ka 1.000000 1.000000 1.000000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 +map_Kd text_A.png diff --git a/datafiles/text_A.obj b/datafiles/text_A.obj new file mode 100644 index 0000000..d4c6faa --- /dev/null +++ b/datafiles/text_A.obj @@ -0,0 +1,82 @@ +# Blender 4.0.2 +# www.blender.org +mtllib text_A.mtl +g text_A_text_A +v -0.367016 0.423455 -0.000000 +v -0.436016 0.423455 -0.000000 +v -0.729016 -0.262545 0.000000 +v -0.629016 -0.262545 0.000000 +v -0.543016 -0.061545 0.000000 +v -0.253016 -0.061545 0.000000 +v -0.162015 -0.262545 0.000000 +v -0.062015 -0.262545 0.000000 +v -0.403016 0.273455 -0.000000 +v -0.293016 0.026455 -0.000000 +v -0.505015 0.026455 -0.000000 +v -0.367016 0.423455 0.062500 +v -0.436016 0.423455 0.062500 +v -0.729016 -0.262545 0.062500 +v -0.629016 -0.262545 0.062500 +v -0.543016 -0.061545 0.062500 +v -0.253016 -0.061545 0.062500 +v -0.162015 -0.262545 0.062500 +v -0.062015 -0.262545 0.062500 +v -0.403016 0.273455 0.062500 +v -0.293016 0.026455 0.062500 +v -0.505015 0.026455 0.062500 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.9194 -0.3934 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.9138 0.4063 -0.0000 +vn 0.9243 -0.3817 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.9196 0.3928 -0.0000 +vn -0.9135 -0.4068 -0.0000 +vn -0.9110 -0.4124 -0.0000 +vt 0.200000 0.000000 +vt 0.100000 0.000000 +vt 0.000000 0.000000 +vt 0.800000 0.000000 +vt 0.700000 0.000000 +vt 1.000000 0.000000 +vt 0.900000 0.000000 +vt 0.400000 0.000000 +vt 0.500000 0.000000 +vt 0.300000 0.000000 +vt 0.600000 0.000000 +s 0 +usemtl Material.001 +f 3/1/1 2/2/1 1/3/1 +f 3/1/1 1/3/1 9/4/1 +f 9/4/1 1/3/1 8/5/1 +f 3/1/1 9/4/1 11/6/1 +f 10/7/1 9/4/1 8/5/1 +f 3/1/1 11/6/1 5/8/1 +f 5/8/1 11/6/1 10/7/1 +f 5/8/1 10/7/1 6/9/1 +f 6/9/1 10/7/1 8/5/1 +f 3/1/1 5/8/1 4/10/1 +f 7/11/1 6/9/1 8/5/1 +f 14/1/2 12/3/2 13/2/2 +f 14/1/2 20/4/2 12/3/2 +f 20/4/2 19/5/2 12/3/2 +f 14/1/2 22/6/2 20/4/2 +f 21/7/2 19/5/2 20/4/2 +f 14/1/2 16/8/2 22/6/2 +f 16/8/2 21/7/2 22/6/2 +f 16/8/2 17/9/2 21/7/2 +f 17/9/2 19/5/2 21/7/2 +f 14/1/2 15/10/2 16/8/2 +f 18/11/2 19/5/2 17/9/2 +f 4/10/3 5/8/3 16/8/3 15/10/3 +f 3/1/4 4/10/4 15/10/4 14/1/4 +f 8/5/5 1/3/5 12/3/5 19/5/5 +f 11/6/6 9/4/6 20/4/6 22/6/6 +f 1/3/7 2/2/7 13/2/7 12/3/7 +f 7/11/4 8/5/4 19/5/4 18/11/4 +f 10/7/7 11/6/7 22/6/7 21/7/7 +f 5/8/4 6/9/4 17/9/4 16/8/4 +f 2/2/8 3/1/8 14/1/8 13/2/8 +f 9/4/9 10/7/9 21/7/9 20/4/9 +f 6/9/10 7/11/10 18/11/10 17/9/10 diff --git a/datafiles/text_A.png b/datafiles/text_A.png new file mode 100644 index 0000000000000000000000000000000000000000..036b5fc07d6c8124c7c8ec2df20d3972225446ec GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=W~mXLX}-P;T0pi05PJYIBb;Vp zlwx3oif}MW!`T8rF@^~h@Am*H&U`nwVh|q;ZfR{h2V`&-ctipPxrIQO@zUM8KS05L zPZ!6K3dXlr8F>#V2(UP=Fm`#&&8~Xzn4fIH&6nplU$;MWU%c*j^)5ycfp~_-3I=CJ zt`7YM2O9=^M-~AHE1ZFmPJ0uH=xrf4+aKLS3j3^P62b(U>PhVf(vS0ttx9=s)8VdUum_9PJ zF^LGoGc;B()HQJ^Kv?S-m^hAzJ1EFCXg2_runKgrKj2bmaHwHqdBnJbi3DX2nATii YdVGF&Px# literal 0 HcmV?d00001 diff --git a/datafiles/text_C.mtl b/datafiles/text_C.mtl new file mode 100644 index 0000000..1c8c472 --- /dev/null +++ b/datafiles/text_C.mtl @@ -0,0 +1,12 @@ +# Blender 4.0.2 MTL File: 'merge.blend' +# www.blender.org + +newmtl Material +Ns 250.000000 +Ka 1.000000 1.000000 1.000000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 +map_Kd text_C.png diff --git a/datafiles/text_C.obj b/datafiles/text_C.obj new file mode 100644 index 0000000..891ccbc --- /dev/null +++ b/datafiles/text_C.obj @@ -0,0 +1,689 @@ +# Blender 4.0.2 +# www.blender.org +mtllib text_C.mtl +g text_C_text_C +v 0.220512 -0.358855 -0.000000 +v 0.197709 -0.349561 -0.000000 +v 0.175749 -0.341165 -0.000000 +v 0.154559 -0.333652 -0.000000 +v 0.134068 -0.327003 -0.000000 +v 0.114202 -0.321202 -0.000000 +v 0.094888 -0.316230 -0.000000 +v 0.076052 -0.312071 -0.000000 +v 0.057624 -0.308707 -0.000000 +v 0.039528 -0.306121 -0.000000 +v 0.021693 -0.304295 -0.000000 +v 0.004045 -0.303212 -0.000000 +v -0.013488 -0.302855 -0.000000 +v -0.066431 -0.305966 -0.000000 +v -0.116538 -0.315077 -0.000000 +v -0.163472 -0.329855 -0.000000 +v -0.206895 -0.349966 -0.000000 +v -0.246471 -0.375077 -0.000000 +v -0.281863 -0.404855 -0.000000 +v -0.312734 -0.438966 -0.000000 +v -0.338747 -0.477077 -0.000000 +v -0.359566 -0.518855 -0.000000 +v -0.374853 -0.563966 -0.000000 +v -0.384273 -0.612077 -0.000000 +v -0.387488 -0.662855 -0.000000 +v -0.385136 -0.699585 -0.000000 +v -0.378006 -0.737693 -0.000000 +v -0.365988 -0.776308 -0.000000 +v -0.348969 -0.814559 0.000000 +v -0.326839 -0.851573 0.000000 +v -0.299488 -0.886480 0.000000 +v -0.266802 -0.918408 0.000000 +v -0.228673 -0.946485 0.000000 +v -0.184988 -0.969840 0.000000 +v -0.135636 -0.987601 0.000000 +v -0.080506 -0.998896 0.000000 +v -0.019488 -1.002855 0.000000 +v 0.006570 -1.002343 0.000000 +v 0.031309 -1.000841 0.000000 +v 0.054825 -0.998402 0.000000 +v 0.077216 -0.995077 0.000000 +v 0.098580 -0.990919 0.000000 +v 0.119012 -0.985980 0.000000 +v 0.138612 -0.980312 0.000000 +v 0.157475 -0.973966 0.000000 +v 0.175700 -0.966996 0.000000 +v 0.193383 -0.959452 0.000000 +v 0.210621 -0.951388 0.000000 +v 0.227512 -0.942855 0.000000 +v 0.227512 -0.835855 0.000000 +v 0.208125 -0.847874 0.000000 +v 0.188494 -0.858920 0.000000 +v 0.168669 -0.868980 0.000000 +v 0.148698 -0.878040 0.000000 +v 0.128629 -0.886087 0.000000 +v 0.108512 -0.893105 0.000000 +v 0.088396 -0.899082 0.000000 +v 0.068327 -0.904003 0.000000 +v 0.048356 -0.907855 0.000000 +v 0.028531 -0.910624 0.000000 +v 0.008900 -0.912295 0.000000 +v -0.010488 -0.912855 0.000000 +v -0.050369 -0.910681 0.000000 +v -0.087876 -0.904295 0.000000 +v -0.122800 -0.893902 0.000000 +v -0.154932 -0.879707 0.000000 +v -0.184064 -0.861915 0.000000 +v -0.209988 -0.840730 0.000000 +v -0.232495 -0.816358 0.000000 +v -0.251376 -0.789003 0.000000 +v -0.266425 -0.758871 -0.000000 +v -0.277432 -0.726165 -0.000000 +v -0.284189 -0.691092 -0.000000 +v -0.286488 -0.653855 -0.000000 +v -0.284115 -0.617209 -0.000000 +v -0.277173 -0.582439 -0.000000 +v -0.265925 -0.549793 -0.000000 +v -0.250636 -0.519522 -0.000000 +v -0.231569 -0.491876 -0.000000 +v -0.208988 -0.467105 -0.000000 +v -0.183157 -0.445459 -0.000000 +v -0.154339 -0.427188 -0.000000 +v -0.122800 -0.412543 -0.000000 +v -0.088802 -0.401772 -0.000000 +v -0.052610 -0.395126 -0.000000 +v -0.014488 -0.392855 -0.000000 +v 0.005128 -0.393316 -0.000000 +v 0.024517 -0.394712 -0.000000 +v 0.043747 -0.397058 -0.000000 +v 0.062883 -0.400374 -0.000000 +v 0.081991 -0.404675 -0.000000 +v 0.101137 -0.409980 -0.000000 +v 0.120388 -0.416306 -0.000000 +v 0.139809 -0.423670 -0.000000 +v 0.159465 -0.432089 -0.000000 +v 0.179424 -0.441582 -0.000000 +v 0.199751 -0.452165 -0.000000 +v 0.220512 -0.463855 -0.000000 +v 0.220512 -0.358855 0.062500 +v 0.197709 -0.349561 0.062500 +v 0.175749 -0.341165 0.062500 +v 0.154559 -0.333652 0.062500 +v 0.134068 -0.327003 0.062500 +v 0.114202 -0.321202 0.062500 +v 0.094888 -0.316230 0.062500 +v 0.076052 -0.312071 0.062500 +v 0.057624 -0.308707 0.062500 +v 0.039528 -0.306121 0.062500 +v 0.021693 -0.304295 0.062500 +v 0.004045 -0.303212 0.062500 +v -0.013488 -0.302855 0.062500 +v -0.066431 -0.305966 0.062500 +v -0.116538 -0.315077 0.062500 +v -0.163472 -0.329855 0.062500 +v -0.206895 -0.349966 0.062500 +v -0.246471 -0.375077 0.062500 +v -0.281863 -0.404855 0.062500 +v -0.312734 -0.438966 0.062500 +v -0.338747 -0.477077 0.062500 +v -0.359566 -0.518855 0.062500 +v -0.374853 -0.563966 0.062500 +v -0.384273 -0.612077 0.062500 +v -0.183157 -0.445459 0.062500 +v -0.154339 -0.427188 0.062500 +v -0.387488 -0.662855 0.062500 +v -0.385136 -0.699585 0.062500 +v -0.378006 -0.737693 0.062500 +v -0.365988 -0.776308 0.062500 +v -0.348969 -0.814559 0.062500 +v -0.326839 -0.851573 0.062500 +v -0.299488 -0.886480 0.062500 +v -0.266802 -0.918408 0.062500 +v -0.010488 -0.912855 0.062500 +v -0.050369 -0.910681 0.062500 +v -0.228673 -0.946485 0.062500 +v -0.184988 -0.969840 0.062500 +v -0.135636 -0.987601 0.062500 +v -0.080506 -0.998896 0.062500 +v -0.019488 -1.002855 0.062500 +v 0.006570 -1.002343 0.062500 +v 0.031309 -1.000841 0.062500 +v 0.054825 -0.998402 0.062500 +v 0.119012 -0.985980 0.062500 +v 0.138612 -0.980312 0.062500 +v 0.157475 -0.973966 0.062500 +v 0.175700 -0.966996 0.062500 +v -0.265925 -0.549793 0.062500 +v 0.227512 -0.942855 0.062500 +v 0.227512 -0.835855 0.062500 +v -0.122800 -0.412543 0.062500 +v -0.088802 -0.401772 0.062500 +v 0.208125 -0.847874 0.062500 +v 0.188494 -0.858920 0.062500 +v 0.168669 -0.868980 0.062500 +v 0.148698 -0.878040 0.062500 +v 0.128629 -0.886087 0.062500 +v 0.108512 -0.893105 0.062500 +v 0.088396 -0.899082 0.062500 +v 0.068327 -0.904003 0.062500 +v 0.048356 -0.907855 0.062500 +v -0.087876 -0.904295 0.062500 +v -0.122800 -0.893902 0.062500 +v 0.008900 -0.912295 0.062500 +v -0.154932 -0.879707 0.062500 +v -0.184064 -0.861915 0.062500 +v -0.209988 -0.840730 0.062500 +v -0.232495 -0.816358 0.062500 +v -0.251376 -0.789003 0.062500 +v -0.266425 -0.758871 0.062500 +v -0.277432 -0.726165 0.062500 +v -0.284189 -0.691092 0.062500 +v -0.286488 -0.653855 0.062500 +v -0.284115 -0.617209 0.062500 +v -0.277173 -0.582439 0.062500 +v -0.052610 -0.395126 0.062500 +v -0.014488 -0.392855 0.062500 +v -0.250636 -0.519522 0.062500 +v -0.231569 -0.491876 0.062500 +v -0.208988 -0.467105 0.062500 +v 0.024517 -0.394712 0.062500 +v 0.043747 -0.397058 0.062500 +v 0.062883 -0.400374 0.062500 +v 0.081991 -0.404675 0.062500 +v 0.101137 -0.409980 0.062500 +v 0.120388 -0.416306 0.062500 +v 0.139809 -0.423670 0.062500 +v 0.159465 -0.432089 0.062500 +v 0.179424 -0.441582 0.062500 +v 0.199751 -0.452165 0.062500 +v 0.220512 -0.463855 0.062500 +v 0.005128 -0.393316 0.062500 +v 0.193383 -0.959452 0.062500 +v 0.028531 -0.910624 0.062500 +v 0.077216 -0.995077 0.062500 +v 0.098580 -0.990919 0.062500 +v 0.210621 -0.951388 0.062500 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.4295 -0.9031 -0.0000 +vn 0.2778 -0.9606 -0.0000 +vn 0.2493 0.9684 -0.0000 +vn 0.3774 0.9260 -0.0000 +vn 0.1796 0.9837 -0.0000 +vn -0.4907 -0.8714 -0.0000 +vn 0.3342 0.9425 -0.0000 +vn 0.1018 0.9948 -0.0000 +vn -0.0718 -0.9974 -0.0000 +vn 0.4041 0.9147 -0.0000 +vn 0.2803 0.9599 -0.0000 +vn 0.6423 -0.7665 -0.0000 +vn 0.4237 -0.9058 -0.0000 +vn 0.1806 -0.9836 -0.0000 +vn 0.3572 -0.9340 -0.0000 +vn -0.5269 0.8499 -0.0000 +vn 0.2156 0.9765 -0.0000 +vn 0.0204 0.9998 -0.0000 +vn 0.7347 0.6784 -0.0000 +vn -0.4525 0.8918 -0.0000 +vn 0.1415 0.9899 -0.0000 +vn -0.0235 -0.9997 -0.0000 +vn -0.3721 0.9282 -0.0000 +vn 0.0612 0.9981 -0.0000 +vn -0.1789 0.9839 -0.0000 +vn 0.8926 -0.4508 -0.0000 +vn 0.0595 -0.9982 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.2848 0.9586 -0.0000 +vn -0.0587 0.9983 -0.0000 +vn -0.1211 -0.9926 -0.0000 +vn 0.3020 -0.9533 -0.0000 +vn -0.4203 0.9074 -0.0000 +vn 0.3188 -0.9478 -0.0000 +vn -0.4904 0.8715 -0.0000 +vn -0.1894 0.9819 -0.0000 +vn -0.3003 0.9538 -0.0000 +vn -0.6438 0.7652 -0.0000 +vn 0.7390 -0.6737 -0.0000 +vn -0.2196 -0.9756 -0.0000 +vn -0.0848 0.9964 -0.0000 +vn -0.8259 0.5638 -0.0000 +vn 0.8946 0.4468 -0.0000 +vn -0.3122 -0.9500 -0.0000 +vn -0.4131 0.9107 -0.0000 +vn -0.5358 0.8444 -0.0000 +vn -0.9471 0.3210 -0.0000 +vn -0.3937 -0.9192 -0.0000 +vn -0.7414 0.6710 -0.0000 +vn -0.9980 0.0632 -0.0000 +vn -0.4618 -0.8870 -0.0000 +vn -0.3294 0.9442 -0.0000 +vn -0.8950 0.4460 -0.0000 +vn -0.9829 -0.1839 -0.0000 +vn -0.9814 0.1921 -0.0000 +vn -0.9136 -0.4065 -0.0000 +vn 0.3924 -0.9198 -0.0000 +vn 0.1469 -0.9892 -0.0000 +vn -0.2382 0.9712 -0.0000 +vn 0.5355 -0.8446 -0.0000 +vn -0.7871 -0.6168 -0.0000 +vn -0.9980 -0.0639 -0.0000 +vn -0.5929 -0.8052 -0.0000 +vn 0.9819 0.1892 -0.0000 +vn 0.4509 -0.8926 -0.0000 +vn 0.2852 0.9585 -0.0000 +vn -0.9548 -0.2972 -0.0000 +vn -0.3386 -0.9409 -0.0000 +vn 0.8230 0.5681 -0.0000 +vn -0.8583 -0.5131 -0.0000 +vn -0.0647 -0.9979 -0.0000 +vn -0.0289 0.9996 -0.0000 +vn -0.6988 -0.7153 -0.0000 +vn 0.4212 -0.9070 -0.0000 +vn 0.9979 -0.0646 -0.0000 +vn -0.1707 -0.9853 -0.0000 +vn 0.1678 0.9858 -0.0000 +vn 0.0544 0.9985 -0.0000 +vn 0.0606 -0.9982 -0.0000 +vn -0.4715 -0.8819 -0.0000 +vn 0.8232 -0.5678 -0.0000 +vn -0.2670 -0.9637 -0.0000 +vn 0.9478 0.3190 -0.0000 +vn -0.2007 -0.9796 -0.0000 +vn -0.1383 0.9904 -0.0000 +vn 0.1910 -0.9816 -0.0000 +vn 0.0196 -0.9998 -0.0000 +vn 0.3571 0.9341 -0.0000 +vn -0.3545 -0.9350 -0.0000 +vn 0.9981 0.0616 -0.0000 +vn 0.6328 0.7743 -0.0000 +vn 0.9455 -0.3257 -0.0000 +vn 0.2350 -0.9720 -0.0000 +vn 0.3086 0.9512 -0.0000 +vn 0.5212 0.8534 -0.0000 +vn 0.1032 -0.9947 -0.0000 +vn 0.9806 -0.1958 -0.0000 +vt 0.134021 0.000000 +vt 0.123711 0.000000 +vt 0.113402 0.000000 +vt 0.103093 0.000000 +vt 0.092784 0.000000 +vt 0.144330 0.000000 +vt 0.082474 0.000000 +vt 0.072165 0.000000 +vt 0.061856 0.000000 +vt 0.154639 0.000000 +vt 0.051546 0.000000 +vt 0.041237 0.000000 +vt 0.030928 0.000000 +vt 0.164948 0.000000 +vt 0.020619 0.000000 +vt 0.010309 0.000000 +vt 0.000000 0.000000 +vt 0.175258 0.000000 +vt 0.896907 0.000000 +vt 0.907216 0.000000 +vt 0.917526 0.000000 +vt 0.927835 0.000000 +vt 0.938144 0.000000 +vt 0.948454 0.000000 +vt 0.958763 0.000000 +vt 0.969072 0.000000 +vt 0.979381 0.000000 +vt 0.989691 0.000000 +vt 1.000000 0.000000 +vt 0.185567 0.000000 +vt 0.876289 0.000000 +vt 0.886598 0.000000 +vt 0.865979 0.000000 +vt 0.855670 0.000000 +vt 0.845361 0.000000 +vt 0.195876 0.000000 +vt 0.835052 0.000000 +vt 0.824742 0.000000 +vt 0.206186 0.000000 +vt 0.814433 0.000000 +vt 0.804124 0.000000 +vt 0.216495 0.000000 +vt 0.793814 0.000000 +vt 0.226804 0.000000 +vt 0.783505 0.000000 +vt 0.773196 0.000000 +vt 0.237113 0.000000 +vt 0.762887 0.000000 +vt 0.247423 0.000000 +vt 0.752577 0.000000 +vt 0.742268 0.000000 +vt 0.257732 0.000000 +vt 0.731959 0.000000 +vt 0.268041 0.000000 +vt 0.721649 0.000000 +vt 0.278351 0.000000 +vt 0.711340 0.000000 +vt 0.288660 0.000000 +vt 0.701031 0.000000 +vt 0.298969 0.000000 +vt 0.690722 0.000000 +vt 0.515464 0.000000 +vt 0.505155 0.000000 +vt 0.494845 0.000000 +vt 0.680412 0.000000 +vt 0.525773 0.000000 +vt 0.309278 0.000000 +vt 0.536082 0.000000 +vt 0.670103 0.000000 +vt 0.546392 0.000000 +vt 0.556701 0.000000 +vt 0.659794 0.000000 +vt 0.567010 0.000000 +vt 0.319588 0.000000 +vt 0.577320 0.000000 +vt 0.649485 0.000000 +vt 0.587629 0.000000 +vt 0.597938 0.000000 +vt 0.639175 0.000000 +vt 0.608247 0.000000 +vt 0.618557 0.000000 +vt 0.628866 0.000000 +vt 0.329897 0.000000 +vt 0.484536 0.000000 +vt 0.340206 0.000000 +vt 0.474227 0.000000 +vt 0.463918 0.000000 +vt 0.453608 0.000000 +vt 0.350515 0.000000 +vt 0.443299 0.000000 +vt 0.432990 0.000000 +vt 0.422680 0.000000 +vt 0.360825 0.000000 +vt 0.412371 0.000000 +vt 0.402062 0.000000 +vt 0.391753 0.000000 +vt 0.371134 0.000000 +vt 0.381443 0.000000 +s 0 +usemtl Material +f 14/1/1 13/2/1 12/3/1 +f 14/1/1 12/3/1 11/4/1 +f 14/1/1 11/4/1 10/5/1 +f 15/6/1 14/1/1 10/5/1 +f 15/6/1 10/5/1 9/7/1 +f 15/6/1 9/7/1 8/8/1 +f 15/6/1 8/8/1 7/9/1 +f 16/10/1 15/6/1 7/9/1 +f 16/10/1 7/9/1 6/11/1 +f 16/10/1 6/11/1 5/12/1 +f 16/10/1 5/12/1 4/13/1 +f 17/14/1 16/10/1 4/13/1 +f 17/14/1 4/13/1 3/15/1 +f 17/14/1 3/15/1 2/16/1 +f 17/14/1 2/16/1 1/17/1 +f 18/18/1 17/14/1 1/17/1 +f 18/18/1 1/17/1 88/19/1 +f 88/19/1 1/17/1 89/20/1 +f 89/20/1 1/17/1 90/21/1 +f 90/21/1 1/17/1 91/22/1 +f 91/22/1 1/17/1 92/23/1 +f 92/23/1 1/17/1 93/24/1 +f 93/24/1 1/17/1 94/25/1 +f 94/25/1 1/17/1 95/26/1 +f 95/26/1 1/17/1 96/27/1 +f 96/27/1 1/17/1 97/28/1 +f 97/28/1 1/17/1 98/29/1 +f 19/30/1 18/18/1 86/31/1 +f 86/31/1 18/18/1 87/32/1 +f 87/32/1 18/18/1 88/19/1 +f 19/30/1 86/31/1 85/33/1 +f 19/30/1 85/33/1 84/34/1 +f 19/30/1 84/34/1 83/35/1 +f 20/36/1 19/30/1 83/35/1 +f 20/36/1 83/35/1 82/37/1 +f 20/36/1 82/37/1 81/38/1 +f 21/39/1 20/36/1 81/38/1 +f 21/39/1 81/38/1 80/40/1 +f 21/39/1 80/40/1 79/41/1 +f 22/42/1 21/39/1 79/41/1 +f 22/42/1 79/41/1 78/43/1 +f 23/44/1 22/42/1 78/43/1 +f 23/44/1 78/43/1 77/45/1 +f 23/44/1 77/45/1 76/46/1 +f 24/47/1 23/44/1 76/46/1 +f 24/47/1 76/46/1 75/48/1 +f 25/49/1 24/47/1 75/48/1 +f 25/49/1 75/48/1 74/50/1 +f 25/49/1 74/50/1 73/51/1 +f 26/52/1 25/49/1 73/51/1 +f 26/52/1 73/51/1 72/53/1 +f 27/54/1 26/52/1 72/53/1 +f 27/54/1 72/53/1 71/55/1 +f 28/56/1 27/54/1 71/55/1 +f 28/56/1 71/55/1 70/57/1 +f 29/58/1 28/56/1 70/57/1 +f 29/58/1 70/57/1 69/59/1 +f 30/60/1 29/58/1 69/59/1 +f 30/60/1 69/59/1 68/61/1 +f 51/62/1 50/63/1 49/64/1 +f 30/60/1 68/61/1 67/65/1 +f 52/66/1 51/62/1 49/64/1 +f 31/67/1 30/60/1 67/65/1 +f 53/68/1 52/66/1 49/64/1 +f 31/67/1 67/65/1 66/69/1 +f 54/70/1 53/68/1 49/64/1 +f 55/71/1 54/70/1 49/64/1 +f 31/67/1 66/69/1 65/72/1 +f 56/73/1 55/71/1 49/64/1 +f 32/74/1 31/67/1 65/72/1 +f 57/75/1 56/73/1 49/64/1 +f 32/74/1 65/72/1 64/76/1 +f 58/77/1 57/75/1 49/64/1 +f 59/78/1 58/77/1 49/64/1 +f 32/74/1 64/76/1 63/79/1 +f 60/80/1 59/78/1 49/64/1 +f 61/81/1 60/80/1 49/64/1 +f 32/74/1 63/79/1 62/82/1 +f 62/82/1 61/81/1 49/64/1 +f 32/74/1 62/82/1 49/64/1 +f 33/83/1 32/74/1 49/64/1 +f 33/83/1 49/64/1 48/84/1 +f 34/85/1 33/83/1 48/84/1 +f 34/85/1 48/84/1 47/86/1 +f 34/85/1 47/86/1 46/87/1 +f 34/85/1 46/87/1 45/88/1 +f 35/89/1 34/85/1 45/88/1 +f 35/89/1 45/88/1 44/90/1 +f 35/89/1 44/90/1 43/91/1 +f 35/89/1 43/91/1 42/92/1 +f 36/93/1 35/89/1 42/92/1 +f 36/93/1 42/92/1 41/94/1 +f 36/93/1 41/94/1 40/95/1 +f 36/93/1 40/95/1 39/96/1 +f 37/97/1 36/93/1 39/96/1 +f 37/97/1 39/96/1 38/98/1 +f 112/1/2 110/3/2 111/2/2 +f 112/1/2 109/4/2 110/3/2 +f 112/1/2 108/5/2 109/4/2 +f 113/6/2 108/5/2 112/1/2 +f 113/6/2 107/7/2 108/5/2 +f 113/6/2 106/8/2 107/7/2 +f 113/6/2 105/9/2 106/8/2 +f 114/10/2 105/9/2 113/6/2 +f 114/10/2 104/11/2 105/9/2 +f 114/10/2 103/12/2 104/11/2 +f 114/10/2 102/13/2 103/12/2 +f 115/14/2 102/13/2 114/10/2 +f 115/14/2 101/15/2 102/13/2 +f 115/14/2 100/16/2 101/15/2 +f 115/14/2 99/17/2 100/16/2 +f 116/18/2 99/17/2 115/14/2 +f 116/18/2 180/19/2 99/17/2 +f 180/19/2 181/20/2 99/17/2 +f 181/20/2 182/21/2 99/17/2 +f 182/21/2 183/22/2 99/17/2 +f 183/22/2 184/23/2 99/17/2 +f 184/23/2 185/24/2 99/17/2 +f 185/24/2 186/25/2 99/17/2 +f 186/25/2 187/26/2 99/17/2 +f 187/26/2 188/27/2 99/17/2 +f 188/27/2 189/28/2 99/17/2 +f 189/28/2 190/29/2 99/17/2 +f 117/30/2 176/31/2 116/18/2 +f 176/31/2 191/32/2 116/18/2 +f 191/32/2 180/19/2 116/18/2 +f 117/30/2 175/33/2 176/31/2 +f 117/30/2 151/34/2 175/33/2 +f 117/30/2 150/35/2 151/34/2 +f 118/36/2 150/35/2 117/30/2 +f 118/36/2 124/37/2 150/35/2 +f 118/36/2 123/38/2 124/37/2 +f 119/39/2 123/38/2 118/36/2 +f 119/39/2 179/40/2 123/38/2 +f 119/39/2 178/41/2 179/40/2 +f 120/42/2 178/41/2 119/39/2 +f 120/42/2 177/43/2 178/41/2 +f 121/44/2 177/43/2 120/42/2 +f 121/44/2 147/45/2 177/43/2 +f 121/44/2 174/46/2 147/45/2 +f 122/47/2 174/46/2 121/44/2 +f 122/47/2 173/48/2 174/46/2 +f 125/49/2 173/48/2 122/47/2 +f 125/49/2 172/50/2 173/48/2 +f 125/49/2 171/51/2 172/50/2 +f 126/52/2 171/51/2 125/49/2 +f 126/52/2 170/53/2 171/51/2 +f 127/54/2 170/53/2 126/52/2 +f 127/54/2 169/55/2 170/53/2 +f 128/56/2 169/55/2 127/54/2 +f 128/56/2 168/57/2 169/55/2 +f 129/58/2 168/57/2 128/56/2 +f 129/58/2 167/59/2 168/57/2 +f 130/60/2 167/59/2 129/58/2 +f 130/60/2 166/61/2 167/59/2 +f 152/62/2 148/64/2 149/63/2 +f 130/60/2 165/65/2 166/61/2 +f 153/66/2 148/64/2 152/62/2 +f 131/67/2 165/65/2 130/60/2 +f 154/68/2 148/64/2 153/66/2 +f 131/67/2 164/69/2 165/65/2 +f 155/70/2 148/64/2 154/68/2 +f 156/71/2 148/64/2 155/70/2 +f 131/67/2 162/72/2 164/69/2 +f 157/73/2 148/64/2 156/71/2 +f 132/74/2 162/72/2 131/67/2 +f 158/75/2 148/64/2 157/73/2 +f 132/74/2 161/76/2 162/72/2 +f 159/77/2 148/64/2 158/75/2 +f 160/78/2 148/64/2 159/77/2 +f 132/74/2 134/79/2 161/76/2 +f 193/80/2 148/64/2 160/78/2 +f 163/81/2 148/64/2 193/80/2 +f 132/74/2 133/82/2 134/79/2 +f 133/82/2 148/64/2 163/81/2 +f 132/74/2 148/64/2 133/82/2 +f 135/83/2 148/64/2 132/74/2 +f 135/83/2 196/84/2 148/64/2 +f 136/85/2 196/84/2 135/83/2 +f 136/85/2 192/86/2 196/84/2 +f 136/85/2 146/87/2 192/86/2 +f 136/85/2 145/88/2 146/87/2 +f 137/89/2 145/88/2 136/85/2 +f 137/89/2 144/90/2 145/88/2 +f 137/89/2 143/91/2 144/90/2 +f 137/89/2 195/92/2 143/91/2 +f 138/93/2 195/92/2 137/89/2 +f 138/93/2 194/94/2 195/92/2 +f 138/93/2 142/95/2 194/94/2 +f 138/93/2 141/96/2 142/95/2 +f 139/97/2 141/96/2 138/93/2 +f 139/97/2 140/98/2 141/96/2 +f 95/26/3 96/27/3 188/27/3 187/26/3 +f 43/91/4 44/90/4 144/90/4 143/91/4 +f 6/11/5 7/9/5 105/9/5 104/11/5 +f 1/17/6 2/16/6 100/16/6 99/17/6 +f 8/8/7 9/7/7 107/7/7 106/8/7 +f 97/28/8 98/29/8 190/29/8 189/28/8 +f 3/15/9 4/13/9 102/13/9 101/15/9 +f 10/5/10 11/4/10 109/4/10 108/5/10 +f 87/32/11 88/19/11 180/19/11 191/32/11 +f 65/72/12 66/69/12 164/69/12 162/72/12 +f 5/12/13 6/11/13 104/11/13 103/12/13 +f 80/40/14 81/38/14 123/38/14 179/40/14 +f 47/86/15 48/84/15 196/84/15 192/86/15 +f 84/34/16 85/33/16 175/33/16 151/34/16 +f 45/88/17 46/87/17 146/87/17 145/88/17 +f 50/63/18 51/62/18 152/62/18 149/63/18 +f 7/9/19 8/8/19 106/8/19 105/9/19 +f 12/3/20 13/2/20 111/2/20 110/3/20 +f 68/61/21 69/59/21 167/59/21 166/61/21 +f 52/66/22 53/68/22 154/68/22 153/66/22 +f 9/7/23 10/5/23 108/5/23 107/7/23 +f 86/31/24 87/32/24 191/32/24 176/31/24 +f 54/70/25 55/71/25 156/71/25 155/70/25 +f 11/4/26 12/3/26 110/3/26 109/4/26 +f 14/1/27 15/6/27 113/6/27 112/1/27 +f 77/45/28 78/43/28 177/43/28 147/45/28 +f 85/33/29 86/31/29 176/31/29 175/33/29 +f 49/64/30 50/63/30 149/63/30 148/64/30 +f 56/73/31 57/75/31 158/75/31 157/73/31 +f 13/2/32 14/1/32 112/1/32 111/2/32 +f 98/29/30 1/17/30 99/17/30 190/29/30 +f 88/19/33 89/20/33 181/20/33 180/19/33 +f 83/35/34 84/34/34 151/34/34 150/35/34 +f 16/10/35 17/14/35 115/14/35 114/10/35 +f 44/90/36 45/88/36 145/88/36 144/90/36 +f 51/62/37 52/66/37 153/66/37 152/62/37 +f 58/77/38 59/78/38 160/78/38 159/77/38 +f 15/6/39 16/10/39 114/10/39 113/6/39 +f 18/18/40 19/30/40 117/30/40 116/18/40 +f 79/41/41 80/40/41 179/40/41 178/41/41 +f 90/21/42 91/22/42 183/22/42 182/21/42 +f 60/80/43 61/81/43 163/81/43 193/80/43 +f 20/36/44 21/39/44 119/39/44 118/36/44 +f 70/57/45 71/55/45 169/55/45 168/57/45 +f 92/23/46 93/24/46 185/24/46 184/23/46 +f 53/68/47 54/70/47 155/70/47 154/68/47 +f 17/14/48 18/18/48 116/18/48 115/14/48 +f 22/42/49 23/44/49 121/44/49 120/42/49 +f 94/25/50 95/26/50 187/26/50 186/25/50 +f 19/30/51 20/36/51 118/36/51 117/30/51 +f 24/47/52 25/49/52 125/49/52 122/47/52 +f 96/27/53 97/28/53 189/28/53 188/27/53 +f 55/71/54 56/73/54 157/73/54 156/71/54 +f 21/39/55 22/42/55 120/42/55 119/39/55 +f 26/52/56 27/54/56 127/54/56 126/52/56 +f 23/44/57 24/47/57 122/47/57 121/44/57 +f 28/56/58 29/58/58 129/58/58 128/56/58 +f 46/87/59 47/86/59 192/86/59 146/87/59 +f 40/95/60 41/94/60 194/94/60 142/95/60 +f 57/75/61 58/77/61 159/77/61 158/75/61 +f 81/38/62 82/37/62 124/37/62 123/38/62 +f 30/60/63 31/67/63 131/67/63 130/60/63 +f 25/49/64 26/52/64 126/52/64 125/49/64 +f 32/74/65 33/83/65 135/83/65 132/74/65 +f 72/53/66 73/51/66 171/51/66 170/53/66 +f 48/84/67 49/64/67 148/64/67 196/84/67 +f 64/76/68 65/72/68 162/72/68 161/76/68 +f 27/54/69 28/56/69 128/56/69 127/54/69 +f 34/85/70 35/89/70 137/89/70 136/85/70 +f 69/59/71 70/57/71 168/57/71 167/59/71 +f 29/58/72 30/60/72 130/60/72 129/58/72 +f 36/93/73 37/97/73 139/97/73 138/93/73 +f 61/81/74 62/82/74 133/82/74 163/81/74 +f 31/67/75 32/74/75 132/74/75 131/67/75 +f 82/37/76 83/35/76 150/35/76 124/37/76 +f 74/50/77 75/48/77 173/48/77 172/50/77 +f 89/20/78 90/21/78 182/21/78 181/20/78 +f 63/79/79 64/76/79 161/76/79 134/79/79 +f 62/82/80 63/79/80 134/79/80 133/82/80 +f 38/98/81 39/96/81 141/96/81 140/98/81 +f 33/83/82 34/85/82 136/85/82 135/83/82 +f 78/43/83 79/41/83 178/41/83 177/43/83 +f 91/22/84 92/23/84 184/23/84 183/22/84 +f 71/55/85 72/53/85 170/53/85 169/55/85 +f 35/89/86 36/93/86 138/93/86 137/89/86 +f 59/78/87 60/80/87 193/80/87 160/78/87 +f 41/94/88 42/92/88 195/92/88 194/94/88 +f 37/97/89 38/98/89 140/98/89 139/97/89 +f 2/16/90 3/15/90 101/15/90 100/16/90 +f 93/24/91 94/25/91 186/25/91 185/24/91 +f 73/51/92 74/50/92 172/50/92 171/51/92 +f 67/65/93 68/61/93 166/61/93 165/65/93 +f 76/46/94 77/45/94 147/45/94 174/46/94 +f 42/92/95 43/91/95 143/91/95 195/92/95 +f 4/13/96 5/12/96 103/12/96 102/13/96 +f 66/69/97 67/65/97 165/65/97 164/69/97 +f 39/96/98 40/95/98 142/95/98 141/96/98 +f 75/48/99 76/46/99 174/46/99 173/48/99 diff --git a/datafiles/text_C.png b/datafiles/text_C.png new file mode 100644 index 0000000000000000000000000000000000000000..72989694c1d2352cc88803bdb41ff2a295997c57 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=W~mXLX}-P;T0pi05PJYIBb;Vp zlwx3oif}MW!`T8rF@^~h@Am*H&U`nwVh|q;ZfR{h2V`&-ctipPxrIQO@zUM8KS05L zPZ!6K3dXlr8F>#V2(UP=aP(1PDpx&t%ulx9=F9V2&)XlmFJAY%dKaUJKs-ZZ1%opq zSBHLsgAIedBZ~lp70$rO@`zhOfd7D~14H8vCXOS_1*`%N3i}wCJ~G5GlAx@BvGy0U XmfB)nL7>wp4+aKLS3j3^P6= 0) @@ -1021,6 +1023,7 @@ function DotobjModelLoad() //Clean up memory for meshes _mesh_struct.vertexes_array = undefined; + _mesh_struct.vertex_count = _vertex_count; //Move to the next mesh ++_mesh; From 6c54e501cf1d67895fa5a8b0d0824680232acbd2 Mon Sep 17 00:00:00 2001 From: Sophie Date: Tue, 29 Oct 2024 12:51:01 -0400 Subject: [PATCH 2/4] remove erroneous show_message --- scripts/DotobjClassMesh/DotobjClassMesh.gml | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/DotobjClassMesh/DotobjClassMesh.gml b/scripts/DotobjClassMesh/DotobjClassMesh.gml index 4f36ebc..a1540d8 100644 --- a/scripts/DotobjClassMesh/DotobjClassMesh.gml +++ b/scripts/DotobjClassMesh/DotobjClassMesh.gml @@ -117,7 +117,6 @@ function DotobjClassMesh() constructor continue; } // FUNCTION DOES NOT EXIST IN LTS - show_message(GM_version); //vertex_update_buffer_from_vertex(vertex_buffer, vertex_count, _mesh.vertex_buffer); vertex_count += _mesh.vertex_count; ++_m; From 8e9e380b3478792c7499c042c66b084a83821866 Mon Sep 17 00:00:00 2001 From: Sophie Date: Tue, 29 Oct 2024 13:01:20 -0400 Subject: [PATCH 3/4] add objMergeTest, --- dotobj.yyp | 11 +++--- objects/objMergeTest/Create_0.gml | 28 ++++++++++++++ objects/objMergeTest/Draw_0.gml | 52 +++++++++++++++++++++++++ objects/objMergeTest/Draw_64.gml | 27 +++++++++++++ objects/objMergeTest/Step_0.gml | 57 ++++++++++++++++++++++++++++ objects/objMergeTest/objMergeTest.yy | 36 ++++++++++++++++++ rooms/rmMain/rmMain.yy | 8 ++-- 7 files changed, 210 insertions(+), 9 deletions(-) create mode 100644 objects/objMergeTest/Create_0.gml create mode 100644 objects/objMergeTest/Draw_0.gml create mode 100644 objects/objMergeTest/Draw_64.gml create mode 100644 objects/objMergeTest/Step_0.gml create mode 100644 objects/objMergeTest/objMergeTest.yy diff --git a/dotobj.yyp b/dotobj.yyp index 96c4ae9..ac1c9f1 100644 --- a/dotobj.yyp +++ b/dotobj.yyp @@ -3,10 +3,11 @@ "resourceVersion": "1.6", "name": "dotobj", "resources": [ + {"id":{"name":"objMergeTest","path":"objects/objMergeTest/objMergeTest.yy",},"order":17,}, {"id":{"name":"DotobjClassModel","path":"scripts/DotobjClassModel/DotobjClassModel.yy",},"order":1,}, {"id":{"name":"objWireframeTest","path":"objects/objWireframeTest/objWireframeTest.yy",},"order":12,}, {"id":{"name":"__DotobjConfig","path":"scripts/__DotobjConfig/__DotobjConfig.yy",},"order":0,}, - {"id":{"name":"shdFlatColour","path":"shaders/shdFlatColour/shdFlatColour.yy",},"order":20,}, + {"id":{"name":"shdFlatColour","path":"shaders/shdFlatColour/shdFlatColour.yy",},"order":21,}, {"id":{"name":"DotobjSetWriteTangents","path":"scripts/DotobjSetWriteTangents/DotobjSetWriteTangents.yy",},"order":3,}, {"id":{"name":"objSponzaCachedTest","path":"objects/objSponzaCachedTest/objSponzaCachedTest.yy",},"order":5,}, {"id":{"name":"__DotobjSystem","path":"scripts/__DotobjSystem/__DotobjSystem.yy",},"order":0,}, @@ -24,20 +25,20 @@ {"id":{"name":"objMayaTest1","path":"objects/objMayaTest1/objMayaTest1.yy",},"order":10,}, {"id":{"name":"DotobjModelLoad","path":"scripts/DotobjModelLoad/DotobjModelLoad.yy",},"order":5,}, {"id":{"name":"DotobjClassTexture","path":"scripts/DotobjClassTexture/DotobjClassTexture.yy",},"order":5,}, - {"id":{"name":"shdTestNormals","path":"shaders/shdTestNormals/shdTestNormals.yy",},"order":21,}, + {"id":{"name":"shdTestNormals","path":"shaders/shdTestNormals/shdTestNormals.yy",},"order":22,}, {"id":{"name":"DotobjMaterialCreate","path":"scripts/DotobjMaterialCreate/DotobjMaterialCreate.yy",},"order":0,}, - {"id":{"name":"sprPlanetTexArid","path":"sprites/sprPlanetTexArid/sprPlanetTexArid.yy",},"order":17,}, + {"id":{"name":"sprPlanetTexArid","path":"sprites/sprPlanetTexArid/sprPlanetTexArid.yy",},"order":18,}, {"id":{"name":"DotobjSetFlipTexcoordV","path":"scripts/DotobjSetFlipTexcoordV/DotobjSetFlipTexcoordV.yy",},"order":0,}, {"id":{"name":"objVoronoi","path":"objects/objVoronoi/objVoronoi.yy",},"order":15,}, {"id":{"name":"objPlanetCacheTest","path":"objects/objPlanetCacheTest/objPlanetCacheTest.yy",},"order":9,}, {"id":{"name":"objPlanetTest","path":"objects/objPlanetTest/objPlanetTest.yy",},"order":6,}, {"id":{"name":"DotobjModelRawLoad","path":"scripts/DotobjModelRawLoad/DotobjModelRawLoad.yy",},"order":2,}, {"id":{"name":"DotobjModelRawSave","path":"scripts/DotobjModelRawSave/DotobjModelRawSave.yy",},"order":1,}, - {"id":{"name":"sprPlanetTexAridInv","path":"sprites/sprPlanetTexAridInv/sprPlanetTexAridInv.yy",},"order":18,}, + {"id":{"name":"sprPlanetTexAridInv","path":"sprites/sprPlanetTexAridInv/sprPlanetTexAridInv.yy",},"order":19,}, {"id":{"name":"DotobjClassMaterial","path":"scripts/DotobjClassMaterial/DotobjClassMaterial.yy",},"order":4,}, {"id":{"name":"DotobjModelLoadFile","path":"scripts/DotobjModelLoadFile/DotobjModelLoadFile.yy",},"order":6,}, {"id":{"name":"DotobjSetWireframe","path":"scripts/DotobjSetWireframe/DotobjSetWireframe.yy",},"order":2,}, - {"id":{"name":"shdSimpleLighting","path":"shaders/shdSimpleLighting/shdSimpleLighting.yy",},"order":19,}, + {"id":{"name":"shdSimpleLighting","path":"shaders/shdSimpleLighting/shdSimpleLighting.yy",},"order":20,}, {"id":{"name":"objLoadingScreen","path":"objects/objLoadingScreen/objLoadingScreen.yy",},"order":1,}, {"id":{"name":"DotobjSetReverseTriangles","path":"scripts/DotobjSetReverseTriangles/DotobjSetReverseTriangles.yy",},"order":1,}, {"id":{"name":"objSponzaTest","path":"objects/objSponzaTest/objSponzaTest.yy",},"order":4,}, diff --git a/objects/objMergeTest/Create_0.gml b/objects/objMergeTest/Create_0.gml new file mode 100644 index 0000000..2b7e4e7 --- /dev/null +++ b/objects/objMergeTest/Create_0.gml @@ -0,0 +1,28 @@ +model_a = DotobjModelLoadFile("text_A.obj"); +model_b = DotobjModelLoadFile("text_B.obj"); +model_c = DotobjModelLoadFile("text_C.obj"); +model_ab = DotobjModelLoadFile("text_A.obj"); +model_ba = DotobjModelLoadFile("text_B.obj"); +model_abc = DotobjModelLoadFile("text_C.obj"); +model_ab.Merge(model_b); +model_ba.Merge(model_a); +model_abc.Merge(model_a); +model_abc.Merge(model_b); + +//Mouse lock variables (press F3 to lock the mouse and use mouselook) +mouse_lock = false; +mouse_lock_timer = 0; + +//Some variables to track the camera +cam_x = 150; +cam_y = 0; +cam_z = -225; +cam_yaw = 25; +cam_pitch = 15; +cam_dx = -dcos(cam_pitch)*dsin(cam_yaw); +cam_dy = -dsin(cam_pitch); +cam_dz = dcos(cam_pitch)*dcos(cam_yaw); + +//Smoothed fps_real variable +fps_smoothed = 60; +show_info = true; \ No newline at end of file diff --git a/objects/objMergeTest/Draw_0.gml b/objects/objMergeTest/Draw_0.gml new file mode 100644 index 0000000..fca3d51 --- /dev/null +++ b/objects/objMergeTest/Draw_0.gml @@ -0,0 +1,52 @@ +//Turn on z-writing and z-testing so we're ready for 3D rendering +gpu_set_ztestenable(true); +gpu_set_zwriteenable(true); + +//Counterclockwise faces are backfaces. We want to cull these so we're drawing less +gpu_set_cullmode(cull_counterclockwise); + +//Texture repeating is required to render a lot of .obj files +//For now, all textures are externally imported sprites so they can handle texture +//repeats just fine, though for atlased textures this method may not work +gpu_set_tex_repeat(true); + +//Turn on anisotropic filtering because why not, we're showing off +gpu_set_tex_mip_enable(mip_on); +gpu_set_tex_mip_filter(tf_anisotropic); +gpu_set_tex_max_aniso(16); + +//Set our view + projection matrices +var _old_world = matrix_get(matrix_world); +var _old_view = matrix_get(matrix_view); +var _old_projection = matrix_get(matrix_projection); + +matrix_set(matrix_view, matrix_build_lookat(cam_x, cam_y, cam_z, + cam_x+cam_dx, cam_y+cam_dy, cam_z+cam_dz, + 0, 1, 0)); +matrix_set(matrix_projection, matrix_build_projection_perspective_fov(90, room_width/room_height, 1, 3000)); + +//Finally, draw the model +matrix_set(matrix_world, matrix_build(0,0,0, 0,-point_direction(0, 0, cam_x, cam_z) + 90,0, 50, 50, 50)); +model_a.Submit(); +model_b.Submit(); +model_c.Submit(); +matrix_set(matrix_world, matrix_build(-100,0,0, 0,0,0, 100, 100, 100)); +model_a.Submit(); +matrix_set(matrix_world, matrix_build(100,0,0, 0,0,0, 100, 100, 100)); +model_b.Submit(); +matrix_set(matrix_world, matrix_build(-100,-75,0, 0,0,0, 100, 100, 100)); +model_ab.Submit(); +matrix_set(matrix_world, matrix_build(100,-75,0, 0,0,0, 100, 100, 100)); +model_ba.Submit(); +matrix_set(matrix_world, matrix_build(0,-150,0, 0,0,0, 100, 100, 100)); +model_abc.Submit(); + +//Reset draw state +matrix_set(matrix_world , _old_world ); +matrix_set(matrix_view , _old_view ); +matrix_set(matrix_projection, _old_projection); +gpu_set_ztestenable(false); +gpu_set_zwriteenable(false); +gpu_set_cullmode(cull_noculling); +gpu_set_tex_repeat(false); +gpu_set_tex_mip_enable(mip_off); \ No newline at end of file diff --git a/objects/objMergeTest/Draw_64.gml b/objects/objMergeTest/Draw_64.gml new file mode 100644 index 0000000..915b1ed --- /dev/null +++ b/objects/objMergeTest/Draw_64.gml @@ -0,0 +1,27 @@ +if (show_info) +{ + //Display credits + var _string = "dotobj " + __DOTOBJ_VERSION + "\n"; + _string += "@jujuadams " + __DOTOBJ_DATE + "\n"; + _string += "\n"; + _string += "Text by cicadian\n" + _string += "\n"; + _string += "FPS = " + string(fps) + " (" + string(fps_smoothed) + ")\n"; + _string += "\n"; + _string += "WASD/shift/space to move\n"; + _string += "F1 to toggle this panel\n"; + _string += "F3 to toggle mouselook\n"; + _string += "F4 to toggle fullscreen"; + + draw_set_colour(c_black); + draw_set_alpha(0.5); + draw_rectangle(10, 10, 20+string_width(_string), 20+string_height(_string), false); + draw_text(15, 16, _string); + draw_set_alpha(1.0); + draw_text(14, 15, _string); + draw_text(16, 15, _string); + draw_text(15, 14, _string); + draw_text(15, 16, _string); + draw_set_colour(c_white); + draw_text(15, 15, _string); +} \ No newline at end of file diff --git a/objects/objMergeTest/Step_0.gml b/objects/objMergeTest/Step_0.gml new file mode 100644 index 0000000..198b7fc --- /dev/null +++ b/objects/objMergeTest/Step_0.gml @@ -0,0 +1,57 @@ +//Toggle the info panel if we press F1 +if (keyboard_check_released(vk_f1)) show_info = !show_info; + +//Lock the mouse if we press F3 +if (keyboard_check_released(vk_f3)) +{ + mouse_lock = !mouse_lock; + mouse_lock_timer = 0; + + //Hide the mouse if we're locked + window_set_cursor(mouse_lock? cr_none : cr_default); +} + +//Toggle the fullscreen if we press f4 +if (keyboard_check_released(vk_f4)) window_set_fullscreen(!window_get_fullscreen()); + +//If we've got the mouse locked... +if (mouse_lock) +{ + //Figure out where the centre of the window is + var _centre_x = window_get_width()/2; + var _centre_y = window_get_height()/2; + + //Increment a timer. Once that timer reaches 5, start pitching/panning the camera + //There's a little bit of lag between pressing F3 and the mouse actually + //centring in the window - this timer stops the camera freaking out! + ++mouse_lock_timer; + if (mouse_lock_timer > 4) + { + + var _delta_x = window_mouse_get_x() - _centre_x; + var _delta_y = window_mouse_get_y() - _centre_y; + cam_yaw += -0.1*_delta_x; + cam_pitch += 0.1*_delta_y; + + cam_pitch = clamp(cam_pitch + 0.1*_delta_y, -89, 89); //Make sure we can't gimbal lock the camera + } + + //Now move the mouse + window_mouse_set(_centre_x, _centre_y); +} + +//Figure out where the camera is looking +var _cos_pitch = dcos(cam_pitch); +cam_dx = -_cos_pitch*dsin(cam_yaw); +cam_dy = -dsin(cam_pitch); +cam_dz = _cos_pitch*dcos(cam_yaw); + +//Move parallel/perpendicular to the camera +var _para = keyboard_check(ord("W")) - keyboard_check(ord("S")); +var _perp = keyboard_check(ord("A")) - keyboard_check(ord("D")); +cam_x += 5*(cam_dx*_para - cam_dz*_perp); +cam_y += 5*(keyboard_check(vk_space) - keyboard_check(vk_shift)); +cam_z += 5*(cam_dz*_para + cam_dx*_perp); + +//Slightly weird use of lerp() but it works +fps_smoothed = lerp(fps_smoothed, fps_real, 0.1); \ No newline at end of file diff --git a/objects/objMergeTest/objMergeTest.yy b/objects/objMergeTest/objMergeTest.yy new file mode 100644 index 0000000..22af911 --- /dev/null +++ b/objects/objMergeTest/objMergeTest.yy @@ -0,0 +1,36 @@ +{ + "resourceType": "GMObject", + "resourceVersion": "1.0", + "name": "objMergeTest", + "spriteId": null, + "solid": false, + "visible": true, + "managed": true, + "spriteMaskId": null, + "persistent": false, + "parentObjectId": null, + "physicsObject": false, + "physicsSensor": false, + "physicsShape": 1, + "physicsGroup": 0, + "physicsDensity": 0.5, + "physicsRestitution": 0.1, + "physicsLinearDamping": 0.1, + "physicsAngularDamping": 0.1, + "physicsFriction": 0.2, + "physicsStartAwake": true, + "physicsKinematic": false, + "physicsShapePoints": [], + "eventList": [ + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":64,"eventType":8,"collisionObjectId":null,}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "dotobj", + "path": "dotobj.yyp", + }, +} \ No newline at end of file diff --git a/rooms/rmMain/rmMain.yy b/rooms/rmMain/rmMain.yy index b81f2e7..1a3b249 100644 --- a/rooms/rmMain/rmMain.yy +++ b/rooms/rmMain/rmMain.yy @@ -17,15 +17,15 @@ ], "layers": [ {"resourceType":"GMRInstanceLayer","resourceVersion":"1.0","name":"Instances","instances":[ - {"resourceType":"GMRInstance","resourceVersion":"1.0","name":"inst_1F91B6A8","properties":[],"isDnd":false,"objectId":{"name":"objMaskRGBFormat","path":"objects/objMaskRGBFormat/objMaskRGBFormat.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":32.0,"y":32.0,}, - ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, - {"resourceType":"GMRBackgroundLayer","resourceVersion":"1.0","name":"Background","spriteId":null,"colour":4278190080,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, + {"resourceType":"GMRInstance","resourceVersion":"1.0","name":"inst_2275117C","properties":[],"isDnd":false,"objectId":{"name":"objMergeTest","path":"objects/objMergeTest/objMergeTest.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":32.0,"y":32.0,}, + ],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, + {"resourceType":"GMRBackgroundLayer","resourceVersion":"1.0","name":"Background","spriteId":null,"colour":4278190080,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],}, ], "inheritLayers": false, "creationCodeFile": "", "inheritCode": false, "instanceCreationOrder": [ - {"name":"inst_1F91B6A8","path":"rooms/rmMain/rmMain.yy",}, + {"name":"inst_2275117C","path":"rooms/rmMain/rmMain.yy",}, ], "inheritCreationOrder": false, "sequenceId": null, From f9211d6a7530f1cacaf8b4f0b3a18d548973c718 Mon Sep 17 00:00:00 2001 From: Sophie Date: Wed, 30 Oct 2024 19:33:42 -0400 Subject: [PATCH 4/4] fix duplicated models not copying the sourth model's vertex counts --- scripts/DotobjClassMesh/DotobjClassMesh.gml | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/DotobjClassMesh/DotobjClassMesh.gml b/scripts/DotobjClassMesh/DotobjClassMesh.gml index a1540d8..f550762 100644 --- a/scripts/DotobjClassMesh/DotobjClassMesh.gml +++ b/scripts/DotobjClassMesh/DotobjClassMesh.gml @@ -84,6 +84,7 @@ function DotobjClassMesh() constructor has_tangents = other.has_tangents; primitive = other.primitive; vertex_buffer = other.vertex_buffer; + vertex_count = other.vertex_count; frozen = other.frozen; }