diff --git a/.vs/MusicVisuals/v16/.suo b/.vs/MusicVisuals/v16/.suo new file mode 100644 index 000000000..f435460ff Binary files /dev/null and b/.vs/MusicVisuals/v16/.suo differ diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 000000000..6b6114114 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 000000000..0a56c5a4a Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/README.md b/README.md index 19ba88c75..e7da76558 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # Music Visualiser Project -Name: +Names: +Ben Corran -Student Number: +Student Numbers: +C21430484 ## Instructions - Fork this repository and use it a starter project for your assignment diff --git a/java/.classpath b/java/.classpath index 2e063e579..65d0c036f 100644 --- a/java/.classpath +++ b/java/.classpath @@ -22,5 +22,6 @@ + diff --git a/java/.project b/java/.project index 0d5afed93..ea43fe10f 100644 --- a/java/.project +++ b/java/.project @@ -16,12 +16,12 @@ - 1616413840733 + 1682089555290 30 org.eclipse.core.resources.regexFilterMatcher - node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ diff --git a/java/.vs/VSWorkspaceState.json b/java/.vs/VSWorkspaceState.json new file mode 100644 index 000000000..6b6114114 --- /dev/null +++ b/java/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/java/.vs/java/v16/.suo b/java/.vs/java/v16/.suo new file mode 100644 index 000000000..add29003e Binary files /dev/null and b/java/.vs/java/v16/.suo differ diff --git a/java/.vs/slnx.sqlite b/java/.vs/slnx.sqlite new file mode 100644 index 000000000..c8aefa56e Binary files /dev/null and b/java/.vs/slnx.sqlite differ diff --git a/java/data/Genesis.mp3 b/java/data/Genesis.mp3 new file mode 100644 index 000000000..eab57d5ff Binary files /dev/null and b/java/data/Genesis.mp3 differ diff --git a/java/data/cross.obj b/java/data/cross.obj new file mode 100644 index 000000000..6b3ed31fc --- /dev/null +++ b/java/data/cross.obj @@ -0,0 +1,1184 @@ +# Blender 3.4.1 +# www.blender.org +mtllib t.mtl +o Cube.001 +v -29.974388 -31.395954 129.080490 +v -29.974388 -31.395954 119.080482 +v -29.974388 -21.395954 119.080490 +v -29.974388 -21.395956 129.080490 +v -40.133453 -31.395954 129.080490 +v -40.133453 -31.395954 119.080482 +v -40.133453 -21.395954 119.080490 +v -40.133453 -21.395956 129.080490 +v -29.974388 -31.395950 83.970757 +v -29.974388 -21.395948 83.970764 +v -40.133453 -31.395950 83.970757 +v -40.133453 -21.395948 83.970764 +v -29.974388 -31.395947 73.730415 +v -29.974388 -21.395947 73.730423 +v -40.133453 -31.395947 73.730415 +v -40.133453 -21.395947 73.730423 +v -99.624947 -31.395950 83.970757 +v -99.624947 -21.395948 83.970764 +v -99.624947 -31.395947 73.730415 +v -99.624947 -21.395947 73.730423 +v -110.109108 -31.395950 83.970757 +v -110.109108 -21.395948 83.970764 +v -110.109108 -31.395947 73.730415 +v -110.109108 -21.395947 73.730423 +v -99.624947 -31.395935 9.668348 +v -99.624947 -21.395937 9.668350 +v -110.109108 -31.395935 9.668348 +v -110.109108 -21.395937 9.668350 +v -99.624947 -31.395935 -1.526521 +v -99.624947 -21.395935 -1.526520 +v -110.109108 -31.395935 -1.526521 +v -110.109108 -21.395935 -1.526520 +v -42.403431 -31.395935 9.668348 +v -42.403431 -21.395937 9.668350 +v -42.403431 -31.395935 -1.526521 +v -42.403431 -21.395935 -1.526520 +v -40.169380 -31.395935 9.668348 +v -40.169380 -21.395937 9.668350 +v -40.169380 -31.395935 -1.526521 +v -40.169380 -21.395935 -1.526520 +v -30.057344 -31.395935 9.668348 +v -30.057344 -21.395937 9.668350 +v -30.057344 -31.395935 -1.526521 +v -30.057344 -21.395935 -1.526520 +v -40.169380 -31.395905 -191.668976 +v -40.169380 -21.395905 -191.668976 +v -30.057344 -31.395905 -191.668976 +v -30.057344 -21.395905 -191.668976 +v -40.169380 -31.395901 -203.968262 +v -40.169380 -21.395901 -203.968262 +v -30.057344 -31.395901 -203.968262 +v -30.057344 -21.395901 -203.968262 +v 1.372675 -31.395905 -191.668976 +v 1.372675 -21.395905 -191.668976 +v 1.372675 -31.395901 -203.968262 +v 1.372675 -21.395901 -203.968262 +v -29.974388 -21.395964 174.161407 +v -29.974388 -31.395962 174.161407 +v -40.133453 -21.395964 174.161407 +v -40.133453 -31.395962 174.161407 +v -29.974388 -21.395966 183.009064 +v -29.974388 -31.395966 183.009064 +v -40.133453 -21.395966 183.009064 +v -40.133453 -31.395966 183.009064 +v 9.693886 -21.395964 174.161407 +v 9.693886 -31.395962 174.161407 +v 9.693886 -21.395966 183.009064 +v 9.693886 -31.395966 183.009064 +v -30.077564 -31.395954 129.080490 +v -30.077564 -31.395954 119.080482 +v -30.077564 -21.395954 119.080490 +v -30.077564 -21.395956 129.080490 +v -40.114723 -31.395954 129.080490 +v -40.114723 -31.395954 119.080482 +v -40.114723 -21.395954 119.080490 +v -40.114723 -21.395956 129.080490 +v -30.077564 -21.395954 115.795967 +v -30.077564 -31.395954 115.795959 +v -40.114723 -21.395954 115.795967 +v -40.114723 -31.395954 115.795959 +v -29.974388 6.322852 174.161407 +v -40.133453 6.322852 174.161407 +v -29.974388 6.322851 183.009064 +v -40.133453 6.322851 183.009064 +v -29.974388 26.307875 174.161407 +v -40.133453 26.307875 174.161407 +v -29.974388 26.307873 183.009064 +v -40.133453 26.307873 183.009064 +v -29.974388 34.321785 174.161407 +v -40.133453 34.321785 174.161407 +v -29.974388 34.321781 183.009064 +v -40.133453 34.321781 183.009064 +v 12.598539 26.307875 174.161407 +v 12.598539 26.307873 183.009064 +v 12.598539 34.321785 174.161407 +v 12.598539 34.321781 183.009064 +v -29.974388 26.307875 174.161407 +v -40.133453 26.307875 174.161407 +v -29.974388 34.321785 174.161407 +v -40.133453 34.321785 174.161407 +v -40.133453 24.343004 83.970772 +v -29.974388 24.343004 83.970772 +v -40.133453 24.343006 73.730431 +v -29.974388 24.343006 73.730431 +v -29.974388 26.307890 84.037552 +v -40.133453 26.307890 84.037552 +v -29.974388 34.321796 84.037552 +v -40.133453 34.321796 84.037552 +v -29.974388 26.307892 73.878471 +v -40.133453 26.307892 73.878471 +v -29.974388 34.321800 73.878471 +v -40.133453 34.321800 73.878471 +v -99.733398 34.321796 84.037552 +v -99.733398 26.307890 84.037552 +v -99.733398 34.321800 73.878471 +v -99.733398 26.307892 73.878471 +v -110.061798 34.321796 84.037552 +v -110.061798 26.307890 84.037552 +v -110.061798 34.321800 73.878471 +v -110.061798 26.307892 73.878471 +v -99.733398 34.321812 9.537622 +v -99.733398 26.307901 9.537621 +v -110.061798 34.321812 9.537622 +v -110.061798 26.307901 9.537621 +v -99.733398 34.321812 -1.129416 +v -99.733398 26.307903 -1.129417 +v -110.061798 34.321812 -1.129416 +v -110.061798 26.307903 -1.129417 +v -40.189907 34.321812 9.537622 +v -40.189907 26.307901 9.537621 +v -40.189907 34.321812 -1.129416 +v -40.189907 26.307903 -1.129417 +v -30.454124 34.321812 9.537622 +v -30.454124 26.307901 9.537621 +v -30.454124 34.321812 -1.129416 +v -30.454124 26.307903 -1.129417 +v -40.189907 34.321842 -191.471069 +v -40.189907 26.307934 -191.471069 +v -30.454124 34.321842 -191.471069 +v -30.454124 26.307934 -191.471069 +v -40.189907 34.321846 -204.311035 +v -40.189907 26.307938 -204.311035 +v -30.454124 34.321846 -204.311035 +v -30.454124 26.307938 -204.311035 +v 18.540716 34.321842 -191.471069 +v 18.540716 26.307934 -191.471069 +v 18.540716 34.321846 -204.311035 +v 18.540716 26.307938 -204.311035 +v -40.189907 -22.053310 -191.471069 +v -30.454124 -22.053310 -191.471069 +v -40.189907 -22.053307 -204.311035 +v -30.454124 -22.053307 -204.311035 +v -40.189907 -24.937569 9.537613 +v -40.189907 -24.937567 -1.129426 +v -30.454124 -24.937569 9.537613 +v -30.454124 -24.937567 -1.129426 +v -99.733398 -25.410728 9.537613 +v -110.061798 -25.410728 9.537613 +v -99.733398 -25.410727 -1.129426 +v -110.061798 -25.410727 -1.129426 +v -99.733398 -24.563772 73.878456 +v -99.733398 -24.563774 84.037537 +v -110.061798 -24.563772 73.878456 +v -110.061798 -24.563774 84.037537 +v 29.974361 -31.395954 129.080490 +v 29.974361 -31.395954 119.080482 +v 29.974361 -21.395954 119.080490 +v 29.974361 -21.395956 129.080490 +v 40.133430 -31.395954 129.080490 +v 40.133430 -31.395954 119.080482 +v 40.133430 -21.395954 119.080490 +v 40.133430 -21.395956 129.080490 +v 29.974361 -31.395950 83.970757 +v 29.974361 -21.395948 83.970764 +v 40.133430 -31.395950 83.970757 +v 40.133430 -21.395948 83.970764 +v 29.974361 -31.395947 73.730415 +v 29.974361 -21.395947 73.730423 +v 40.133430 -31.395947 73.730415 +v 40.133430 -21.395947 73.730423 +v 99.624931 -31.395950 83.970757 +v 99.624931 -21.395948 83.970764 +v 99.624931 -31.395947 73.730415 +v 99.624931 -21.395947 73.730423 +v 110.109093 -31.395950 83.970757 +v 110.109093 -21.395948 83.970764 +v 110.109093 -31.395947 73.730415 +v 110.109093 -21.395947 73.730423 +v 99.624931 -31.395935 9.668348 +v 99.624931 -21.395937 9.668350 +v 110.109093 -31.395935 9.668348 +v 110.109093 -21.395937 9.668350 +v 99.624931 -31.395935 -1.526521 +v 99.624931 -21.395935 -1.526520 +v 110.109093 -31.395935 -1.526521 +v 110.109093 -21.395935 -1.526520 +v 42.403408 -31.395935 9.668348 +v 42.403408 -21.395937 9.668350 +v 42.403408 -31.395935 -1.526521 +v 42.403408 -21.395935 -1.526520 +v 40.169357 -31.395935 9.668348 +v 40.169357 -21.395937 9.668350 +v 40.169357 -31.395935 -1.526521 +v 40.169357 -21.395935 -1.526520 +v 30.057320 -31.395935 9.668348 +v 30.057320 -21.395937 9.668350 +v 30.057320 -31.395935 -1.526521 +v 30.057320 -21.395935 -1.526520 +v 40.169357 -31.395905 -191.668976 +v 40.169357 -21.395905 -191.668976 +v 30.057320 -31.395905 -191.668976 +v 30.057320 -21.395905 -191.668976 +v 40.169357 -31.395901 -203.968262 +v 40.169357 -21.395901 -203.968262 +v 30.057320 -31.395901 -203.968262 +v 30.057320 -21.395901 -203.968262 +v -1.372695 -31.395905 -191.668976 +v -1.372695 -21.395905 -191.668976 +v -1.372695 -31.395901 -203.968262 +v -1.372695 -21.395901 -203.968262 +v 29.974361 -21.395964 174.161407 +v 29.974361 -31.395962 174.161407 +v 40.133430 -21.395964 174.161407 +v 40.133430 -31.395962 174.161407 +v 29.974361 -21.395966 183.009064 +v 29.974361 -31.395966 183.009064 +v 40.133430 -21.395966 183.009064 +v 40.133430 -31.395966 183.009064 +v -9.693904 -21.395964 174.161407 +v -9.693904 -31.395962 174.161407 +v -9.693904 -21.395966 183.009064 +v -9.693904 -31.395966 183.009064 +v 30.077538 -31.395954 129.080490 +v 30.077538 -31.395954 119.080482 +v 30.077538 -21.395954 119.080490 +v 30.077538 -21.395956 129.080490 +v 40.114700 -31.395954 129.080490 +v 40.114700 -31.395954 119.080482 +v 40.114700 -21.395954 119.080490 +v 40.114700 -21.395956 129.080490 +v 30.077538 -21.395954 115.795967 +v 30.077538 -31.395954 115.795959 +v 40.114700 -21.395954 115.795967 +v 40.114700 -31.395954 115.795959 +v 29.974361 6.322852 174.161407 +v 40.133430 6.322852 174.161407 +v 29.974361 6.322851 183.009064 +v 40.133430 6.322851 183.009064 +v 29.974361 26.307875 174.161407 +v 40.133430 26.307875 174.161407 +v 29.974361 26.307873 183.009064 +v 40.133430 26.307873 183.009064 +v 29.974361 34.321785 174.161407 +v 40.133430 34.321785 174.161407 +v 29.974361 34.321781 183.009064 +v 40.133430 34.321781 183.009064 +v -12.598557 26.307875 174.161407 +v -12.598557 26.307873 183.009064 +v -12.598557 34.321785 174.161407 +v -12.598557 34.321781 183.009064 +v 29.974361 26.307875 174.161407 +v 40.133430 26.307875 174.161407 +v 29.974361 34.321785 174.161407 +v 40.133430 34.321785 174.161407 +v 40.133430 24.343004 83.970772 +v 29.974361 24.343004 83.970772 +v 40.133430 24.343006 73.730431 +v 29.974361 24.343006 73.730431 +v 29.974361 26.307890 84.037552 +v 40.133430 26.307890 84.037552 +v 29.974361 34.321796 84.037552 +v 40.133430 34.321796 84.037552 +v 29.974361 26.307892 73.878471 +v 40.133430 26.307892 73.878471 +v 29.974361 34.321800 73.878471 +v 40.133430 34.321800 73.878471 +v 99.733383 34.321796 84.037552 +v 99.733383 26.307890 84.037552 +v 99.733383 34.321800 73.878471 +v 99.733383 26.307892 73.878471 +v 110.061783 34.321796 84.037552 +v 110.061783 26.307890 84.037552 +v 110.061783 34.321800 73.878471 +v 110.061783 26.307892 73.878471 +v 99.733383 34.321812 9.537622 +v 99.733383 26.307901 9.537621 +v 110.061783 34.321812 9.537622 +v 110.061783 26.307901 9.537621 +v 99.733383 34.321812 -1.129416 +v 99.733383 26.307903 -1.129417 +v 110.061783 34.321812 -1.129416 +v 110.061783 26.307903 -1.129417 +v 40.189884 34.321812 9.537622 +v 40.189884 26.307901 9.537621 +v 40.189884 34.321812 -1.129416 +v 40.189884 26.307903 -1.129417 +v 30.454098 34.321812 9.537622 +v 30.454098 26.307901 9.537621 +v 30.454098 34.321812 -1.129416 +v 30.454098 26.307903 -1.129417 +v 40.189884 34.321842 -191.471069 +v 40.189884 26.307934 -191.471069 +v 30.454098 34.321842 -191.471069 +v 30.454098 26.307934 -191.471069 +v 40.189884 34.321846 -204.311035 +v 40.189884 26.307938 -204.311035 +v 30.454098 34.321846 -204.311035 +v 30.454098 26.307938 -204.311035 +v -18.540743 34.321842 -191.471069 +v -18.540743 26.307934 -191.471069 +v -18.540743 34.321846 -204.311035 +v -18.540743 26.307938 -204.311035 +v 40.189884 -22.053310 -191.471069 +v 30.454098 -22.053310 -191.471069 +v 40.189884 -22.053307 -204.311035 +v 30.454098 -22.053307 -204.311035 +v 40.189884 -24.937569 9.537613 +v 40.189884 -24.937567 -1.129426 +v 30.454098 -24.937569 9.537613 +v 30.454098 -24.937567 -1.129426 +v 99.733383 -25.410728 9.537613 +v 110.061783 -25.410728 9.537613 +v 99.733383 -25.410727 -1.129426 +v 110.061783 -25.410727 -1.129426 +v 99.733383 -24.563772 73.878456 +v 99.733383 -24.563774 84.037537 +v 110.061783 -24.563772 73.878456 +v 110.061783 -24.563774 84.037537 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 0.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 0.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 0.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 0.000000 +vt 0.125000 0.750000 +vt 0.375000 0.000000 +vt 0.875000 0.750000 +vt 0.625000 0.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.375000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.250000 +vt 0.000000 0.000000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 0.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 0.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 0.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 0.000000 +vt 0.125000 0.750000 +vt 0.375000 0.000000 +vt 0.875000 0.750000 +vt 0.625000 0.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.375000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.000000 0.000000 +vt 0.375000 0.250000 +vt 0.000000 0.000000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +s 0 +usemtl Material.001 +f 76/146/1 72/141/1 77/147/1 79/152/1 +f 6/11/2 7/13/2 71/140/2 70/139/2 +f 7/13/3 6/11/3 11/22/3 12/23/3 +f 1/1/1 5/9/1 60/120/1 58/117/1 +f 77/148/2 78/150/2 80/153/2 79/151/2 +f 10/19/2 12/24/2 101/186/2 102/187/2 +f 6/12/1 2/3/1 9/18/1 11/21/1 +f 2/4/4 3/5/4 10/20/4 9/17/4 +f 3/6/5 7/14/5 12/24/5 10/19/5 +f 13/25/6 14/27/6 16/31/6 15/29/6 +f 9/17/4 10/20/4 14/27/4 13/25/4 +f 11/21/1 9/18/1 13/26/1 15/28/1 +f 11/21/1 15/28/1 19/36/1 17/33/1 +f 20/38/5 18/34/5 22/42/5 24/46/5 +f 15/29/6 16/31/6 20/39/6 19/37/6 +f 12/23/2 11/22/2 17/32/2 18/35/2 +f 16/30/5 12/24/5 18/34/5 20/38/5 +f 22/43/3 21/40/3 23/45/3 24/47/3 +f 18/35/2 17/32/2 21/40/2 22/43/2 +f 17/33/1 19/36/1 23/44/1 21/41/1 +f 23/44/1 19/36/1 25/49/1 27/52/1 +f 27/52/1 25/49/1 29/56/1 31/60/1 +f 20/38/5 24/46/5 28/55/5 26/50/5 +f 24/47/3 23/45/3 27/53/3 28/54/3 +f 19/37/4 20/39/4 26/51/4 25/48/4 +f 29/57/6 30/59/6 32/63/6 31/61/6 +f 28/54/3 27/53/3 31/62/3 32/64/3 +f 26/50/5 28/55/5 32/65/5 30/58/5 +f 26/50/5 30/58/5 36/72/5 34/69/5 +f 35/70/1 33/66/1 37/74/1 39/78/1 +f 25/48/2 26/51/2 34/68/2 33/67/2 +f 29/56/1 25/49/1 33/66/1 35/70/1 +f 30/59/6 29/57/6 35/71/6 36/73/6 +f 39/78/1 37/74/1 41/82/1 43/86/1 +f 33/67/2 34/68/2 38/76/2 37/75/2 +f 34/69/5 36/72/5 40/80/5 38/77/5 +f 36/73/6 35/71/6 39/79/6 40/81/6 +f 41/83/4 42/84/4 44/89/4 43/87/4 +f 37/75/2 38/76/2 42/84/2 41/83/2 +f 38/77/5 40/80/5 44/88/5 42/85/5 +f 44/88/5 40/80/5 46/92/5 48/97/5 +f 48/97/5 46/92/5 50/100/5 52/104/5 +f 39/78/1 43/86/1 47/94/1 45/90/1 +f 43/87/4 44/89/4 48/96/4 47/95/4 +f 40/81/3 39/79/3 45/91/3 46/93/3 +f 50/101/6 49/99/6 51/103/6 52/105/6 +f 51/102/1 47/94/1 53/106/1 55/110/1 +f 45/90/1 47/94/1 51/102/1 49/98/1 +f 46/93/3 45/91/3 49/99/3 50/101/3 +f 53/107/4 54/108/4 56/113/4 55/111/4 +f 47/95/2 48/96/2 54/108/2 53/107/2 +f 48/97/5 52/104/5 56/112/5 54/109/5 +f 52/105/6 51/103/6 55/111/6 56/113/6 +f 57/115/4 61/122/4 83/159/4 81/155/4 +f 4/7/4 1/2/4 58/116/4 57/114/4 +f 8/15/5 4/8/5 57/115/5 59/118/5 +f 5/10/3 8/16/3 59/119/3 60/121/3 +f 61/123/2 62/125/2 64/128/2 63/126/2 +f 57/114/6 58/116/6 66/131/6 65/129/6 +f 58/117/1 60/120/1 64/127/1 62/124/1 +f 60/121/3 59/119/3 63/126/3 64/128/3 +f 65/129/4 66/131/4 68/136/4 67/134/4 +f 58/117/1 62/124/1 68/135/1 66/132/1 +f 61/122/5 57/115/5 65/130/5 67/133/5 +f 62/125/2 61/123/2 67/134/2 68/136/2 +f 70/139/6 71/140/6 75/145/6 74/144/6 +f 8/16/6 5/10/6 69/138/6 72/142/6 +f 69/137/5 73/143/5 80/154/5 78/149/5 +f 72/142/3 69/138/3 78/150/3 77/148/3 +f 59/118/6 57/115/6 81/155/6 82/157/6 +f 73/143/4 76/146/4 79/152/4 80/154/4 +f 61/123/2 63/126/2 84/160/2 83/158/2 +f 84/160/3 82/156/3 86/163/3 88/166/3 +f 63/126/3 59/119/3 82/156/3 84/160/3 +f 91/170/5 89/167/5 95/177/5 96/178/5 +f 83/158/2 84/160/2 88/166/2 87/165/2 +f 81/155/4 83/159/4 87/164/4 85/161/4 +f 82/157/6 81/155/6 85/161/6 86/162/6 +f 90/169/5 89/167/5 91/170/5 92/172/5 +f 85/161/1 89/167/2 99/183/1 97/180/2 +f 88/166/3 86/163/3 90/168/3 92/173/3 +f 87/165/2 88/166/2 92/173/2 91/171/2 +f 93/174/4 94/175/4 96/178/4 95/177/4 +f 85/161/1 87/164/1 94/175/1 93/174/1 +f 89/167/6 85/161/6 93/174/6 95/177/6 +f 87/165/2 91/171/2 96/179/2 94/176/2 +f 100/184/3 98/181/3 106/194/3 108/197/3 +f 86/162/1 85/161/2 97/180/1 98/182/2 +f 90/168/1 86/163/2 98/181/1 100/184/2 +f 89/167/1 90/169/2 100/185/1 99/183/2 +f 102/187/5 101/186/5 103/189/5 104/191/5 +f 14/27/4 10/20/4 102/188/4 104/192/4 +f 12/24/3 16/30/3 103/189/3 101/186/3 +f 16/31/6 14/27/6 104/192/6 103/190/6 +f 106/195/1 105/193/1 109/199/1 110/200/1 +f 99/183/5 100/185/5 108/198/5 107/196/5 +f 97/180/4 99/183/4 107/196/4 105/193/4 +f 98/182/1 97/180/1 105/193/1 106/195/1 +f 110/200/6 109/199/6 111/201/6 112/202/6 +f 110/200/6 112/202/6 115/207/6 116/208/6 +f 107/196/5 108/198/5 112/202/5 111/201/5 +f 105/193/4 107/196/4 111/201/4 109/199/4 +f 114/205/4 116/208/4 161/262/4 162/263/4 +f 108/197/2 106/194/2 114/206/2 113/203/2 +f 112/202/5 108/198/5 113/204/5 115/207/5 +f 106/195/1 110/200/1 116/208/1 114/205/1 +f 117/209/3 118/211/3 120/215/3 119/213/3 +f 113/203/2 114/206/2 118/211/2 117/209/2 +f 115/207/5 113/204/5 117/210/5 119/212/5 +f 115/207/5 119/212/5 123/219/5 121/216/5 +f 123/218/3 124/220/3 128/226/3 127/224/3 +f 119/213/3 120/215/3 124/220/3 123/218/3 +f 116/208/4 115/207/4 121/216/4 122/217/4 +f 120/214/1 116/208/1 122/217/1 124/221/1 +f 126/223/6 125/222/6 127/225/6 128/227/6 +f 128/226/3 124/220/3 158/257/3 160/260/3 +f 125/222/6 126/223/6 132/231/6 131/230/6 +f 121/216/5 123/219/5 127/225/5 125/222/5 +f 129/228/5 131/230/5 135/234/5 133/232/5 +f 121/216/5 125/222/5 131/230/5 129/228/5 +f 122/217/2 121/216/2 129/228/2 130/229/2 +f 126/223/1 122/217/1 130/229/1 132/231/1 +f 134/233/4 133/232/4 135/234/4 136/235/4 +f 132/231/1 136/235/1 140/239/1 138/237/1 +f 136/235/6 132/231/6 154/253/6 156/255/6 +f 130/229/2 129/228/2 133/232/2 134/233/2 +f 139/238/5 137/236/5 141/240/5 143/242/5 +f 131/230/3 132/231/3 138/237/3 137/236/3 +f 135/234/5 131/230/5 137/236/5 139/238/5 +f 136/235/4 135/234/4 139/238/4 140/239/4 +f 141/240/6 142/241/6 144/243/6 143/242/6 +f 137/236/3 138/237/3 142/241/3 141/240/3 +f 144/243/6 142/241/6 151/250/6 152/251/6 +f 139/238/5 143/242/5 147/246/5 145/244/5 +f 146/245/4 145/244/4 147/246/4 148/247/4 +f 143/242/6 144/243/6 148/247/6 147/246/6 +f 140/239/2 139/238/2 145/244/2 146/245/2 +f 144/243/1 140/239/1 146/245/1 148/247/1 +f 149/248/1 150/249/1 152/251/1 151/250/1 +f 138/237/2 140/239/2 150/249/2 149/248/2 +f 142/241/3 138/237/3 149/248/3 151/250/3 +f 140/239/4 144/243/4 152/251/4 150/249/4 +f 154/253/1 153/252/1 155/254/1 156/255/1 +f 134/233/4 136/235/4 156/255/4 155/254/4 +f 130/229/2 134/233/2 155/254/2 153/252/2 +f 132/231/3 130/229/3 153/252/3 154/253/3 +f 158/258/1 157/256/1 159/259/1 160/261/1 +f 126/223/6 128/227/6 160/261/6 159/259/6 +f 124/221/2 122/217/2 157/256/2 158/258/2 +f 122/217/4 126/223/4 159/259/4 157/256/4 +f 162/263/1 161/262/1 163/265/1 164/267/1 +f 118/211/2 114/206/2 162/264/2 164/268/2 +f 116/208/6 120/214/6 163/265/6 161/262/6 +f 120/215/3 118/211/3 164/268/3 163/266/3 +f 240/414/1 243/420/1 241/415/1 236/409/1 +f 170/279/2 234/407/2 235/408/2 171/281/2 +f 171/281/4 176/291/4 175/290/4 170/279/4 +f 165/269/1 222/385/1 224/388/1 169/277/1 +f 241/416/2 243/419/2 244/421/2 242/418/2 +f 174/287/2 266/455/2 265/454/2 176/292/2 +f 170/280/1 175/289/1 173/286/1 166/271/1 +f 166/272/3 173/285/3 174/288/3 167/273/3 +f 167/274/5 174/287/5 176/292/5 171/282/5 +f 177/293/6 179/297/6 180/299/6 178/295/6 +f 173/285/3 177/293/3 178/295/3 174/288/3 +f 175/289/1 179/296/1 177/294/1 173/286/1 +f 175/289/1 181/301/1 183/304/1 179/296/1 +f 184/306/5 188/314/5 186/310/5 182/302/5 +f 179/297/6 183/305/6 184/307/6 180/299/6 +f 176/291/2 182/303/2 181/300/2 175/290/2 +f 180/298/5 184/306/5 182/302/5 176/292/5 +f 186/311/4 188/315/4 187/313/4 185/308/4 +f 182/303/2 186/311/2 185/308/2 181/300/2 +f 181/301/1 185/309/1 187/312/1 183/304/1 +f 187/312/1 191/320/1 189/317/1 183/304/1 +f 191/320/1 195/328/1 193/324/1 189/317/1 +f 184/306/5 190/318/5 192/323/5 188/314/5 +f 188/315/4 192/322/4 191/321/4 187/313/4 +f 183/305/3 189/316/3 190/319/3 184/307/3 +f 193/325/6 195/329/6 196/331/6 194/327/6 +f 192/322/4 196/332/4 195/330/4 191/321/4 +f 190/318/5 194/326/5 196/333/5 192/323/5 +f 190/318/5 198/337/5 200/340/5 194/326/5 +f 199/338/1 203/346/1 201/342/1 197/334/1 +f 189/316/2 197/335/2 198/336/2 190/319/2 +f 193/324/1 199/338/1 197/334/1 189/317/1 +f 194/327/6 200/341/6 199/339/6 193/325/6 +f 203/346/1 207/354/1 205/350/1 201/342/1 +f 197/335/2 201/343/2 202/344/2 198/336/2 +f 198/337/5 202/345/5 204/348/5 200/340/5 +f 200/341/6 204/349/6 203/347/6 199/339/6 +f 205/351/3 207/355/3 208/357/3 206/352/3 +f 201/343/2 205/351/2 206/352/2 202/344/2 +f 202/345/5 206/353/5 208/356/5 204/348/5 +f 208/356/5 212/365/5 210/360/5 204/348/5 +f 212/365/5 216/372/5 214/368/5 210/360/5 +f 203/346/1 209/358/1 211/362/1 207/354/1 +f 207/355/3 211/363/3 212/364/3 208/357/3 +f 204/349/4 210/361/4 209/359/4 203/347/4 +f 214/369/6 216/373/6 215/371/6 213/367/6 +f 215/370/1 219/378/1 217/374/1 211/362/1 +f 209/358/1 213/366/1 215/370/1 211/362/1 +f 210/361/4 214/369/4 213/367/4 209/359/4 +f 217/375/3 219/379/3 220/381/3 218/376/3 +f 211/363/2 217/375/2 218/376/2 212/364/2 +f 212/365/5 218/377/5 220/380/5 216/372/5 +f 216/373/6 220/381/6 219/379/6 215/371/6 +f 221/383/3 245/423/3 247/427/3 225/390/3 +f 168/275/3 221/382/3 222/384/3 165/270/3 +f 172/283/5 223/386/5 221/383/5 168/276/5 +f 169/278/4 224/389/4 223/387/4 172/284/4 +f 225/391/2 227/394/2 228/396/2 226/393/2 +f 221/382/6 229/397/6 230/399/6 222/384/6 +f 222/385/1 226/392/1 228/395/1 224/388/1 +f 224/389/4 228/396/4 227/394/4 223/387/4 +f 229/397/3 231/402/3 232/404/3 230/399/3 +f 222/385/1 230/400/1 232/403/1 226/392/1 +f 225/390/5 231/401/5 229/398/5 221/383/5 +f 226/393/2 232/404/2 231/402/2 225/391/2 +f 234/407/6 238/412/6 239/413/6 235/408/6 +f 172/284/6 236/410/6 233/406/6 169/278/6 +f 233/405/5 242/417/5 244/422/5 237/411/5 +f 236/410/4 241/416/4 242/418/4 233/406/4 +f 223/386/6 246/425/6 245/423/6 221/383/6 +f 237/411/3 244/422/3 243/420/3 240/414/3 +f 225/391/2 247/426/2 248/428/2 227/394/2 +f 248/428/4 252/434/4 250/431/4 246/424/4 +f 227/394/4 248/428/4 246/424/4 223/387/4 +f 255/438/5 260/446/5 259/445/5 253/435/5 +f 247/426/2 251/433/2 252/434/2 248/428/2 +f 245/423/3 249/429/3 251/432/3 247/427/3 +f 246/425/6 250/430/6 249/429/6 245/423/6 +f 254/437/5 256/440/5 255/438/5 253/435/5 +f 249/429/2 261/448/1 263/451/2 253/435/1 +f 252/434/4 256/441/4 254/436/4 250/431/4 +f 251/433/2 255/439/2 256/441/2 252/434/2 +f 257/442/3 259/445/3 260/446/3 258/443/3 +f 249/429/1 257/442/1 258/443/1 251/432/1 +f 253/435/6 259/445/6 257/442/6 249/429/6 +f 251/433/2 258/444/2 260/447/2 255/439/2 +f 264/452/4 272/465/4 270/462/4 262/449/4 +f 250/430/2 262/450/1 261/448/2 249/429/1 +f 254/436/2 264/452/1 262/449/2 250/431/1 +f 253/435/2 263/451/1 264/453/2 254/437/1 +f 266/455/5 268/459/5 267/457/5 265/454/5 +f 178/295/3 268/460/3 266/456/3 174/288/3 +f 176/292/4 265/454/4 267/457/4 180/298/4 +f 180/299/6 267/458/6 268/460/6 178/295/6 +f 270/463/1 274/468/1 273/467/1 269/461/1 +f 263/451/5 271/464/5 272/466/5 264/453/5 +f 261/448/3 269/461/3 271/464/3 263/451/3 +f 262/450/1 270/463/1 269/461/1 261/448/1 +f 274/468/6 276/470/6 275/469/6 273/467/6 +f 274/468/6 280/476/6 279/475/6 276/470/6 +f 271/464/5 275/469/5 276/470/5 272/466/5 +f 269/461/3 273/467/3 275/469/3 271/464/3 +f 278/473/3 326/531/3 325/530/3 280/476/3 +f 272/465/2 277/471/2 278/474/2 270/462/2 +f 276/470/5 279/475/5 277/472/5 272/466/5 +f 270/463/1 278/473/1 280/476/1 274/468/1 +f 281/477/4 283/481/4 284/483/4 282/479/4 +f 277/471/2 281/477/2 282/479/2 278/474/2 +f 279/475/5 283/480/5 281/478/5 277/472/5 +f 279/475/5 285/484/5 287/487/5 283/480/5 +f 287/486/4 291/492/4 292/494/4 288/488/4 +f 283/481/4 287/486/4 288/488/4 284/483/4 +f 280/476/3 286/485/3 285/484/3 279/475/3 +f 284/482/1 288/489/1 286/485/1 280/476/1 +f 290/491/6 292/495/6 291/493/6 289/490/6 +f 292/494/4 324/528/4 322/525/4 288/488/4 +f 289/490/6 295/498/6 296/499/6 290/491/6 +f 285/484/5 289/490/5 291/493/5 287/487/5 +f 293/496/5 297/500/5 299/502/5 295/498/5 +f 285/484/5 293/496/5 295/498/5 289/490/5 +f 286/485/2 294/497/2 293/496/2 285/484/2 +f 290/491/1 296/499/1 294/497/1 286/485/1 +f 298/501/3 300/503/3 299/502/3 297/500/3 +f 296/499/1 302/505/1 304/507/1 300/503/1 +f 300/503/6 320/523/6 318/521/6 296/499/6 +f 294/497/2 298/501/2 297/500/2 293/496/2 +f 303/506/5 307/510/5 305/508/5 301/504/5 +f 295/498/4 301/504/4 302/505/4 296/499/4 +f 299/502/5 303/506/5 301/504/5 295/498/5 +f 300/503/3 304/507/3 303/506/3 299/502/3 +f 305/508/6 307/510/6 308/511/6 306/509/6 +f 301/504/4 305/508/4 306/509/4 302/505/4 +f 308/511/6 316/519/6 315/518/6 306/509/6 +f 303/506/5 309/512/5 311/514/5 307/510/5 +f 310/513/3 312/515/3 311/514/3 309/512/3 +f 307/510/6 311/514/6 312/515/6 308/511/6 +f 304/507/2 310/513/2 309/512/2 303/506/2 +f 308/511/1 312/515/1 310/513/1 304/507/1 +f 313/516/1 315/518/1 316/519/1 314/517/1 +f 302/505/2 313/516/2 314/517/2 304/507/2 +f 306/509/4 315/518/4 313/516/4 302/505/4 +f 304/507/3 314/517/3 316/519/3 308/511/3 +f 318/521/1 320/523/1 319/522/1 317/520/1 +f 298/501/3 319/522/3 320/523/3 300/503/3 +f 294/497/2 317/520/2 319/522/2 298/501/2 +f 296/499/4 318/521/4 317/520/4 294/497/4 +f 322/526/1 324/529/1 323/527/1 321/524/1 +f 290/491/6 323/527/6 324/529/6 292/495/6 +f 288/489/2 322/526/2 321/524/2 286/485/2 +f 286/485/3 321/524/3 323/527/3 290/491/3 +f 326/531/1 328/535/1 327/533/1 325/530/1 +f 282/479/2 328/536/2 326/532/2 278/474/2 +f 280/476/6 325/530/6 327/533/6 284/482/6 +f 284/483/4 327/534/4 328/536/4 282/479/4 diff --git a/java/data/innerCross.obj b/java/data/innerCross.obj new file mode 100644 index 000000000..bd58ddae2 --- /dev/null +++ b/java/data/innerCross.obj @@ -0,0 +1,491 @@ +# Blender 3.4.1 +# www.blender.org +mtllib innerCross.mtl +o Cube +v -30.092701 -21.395905 -191.370544 +v -30.092701 -21.395897 -191.370544 +v -20.051289 -21.395905 -191.370544 +v -20.051289 -21.395897 -191.370544 +v -30.092701 -21.395906 -180.065186 +v -30.092701 -21.395899 -180.065186 +v -20.051289 -21.395906 -180.065186 +v -20.051289 -21.395899 -180.065186 +v -30.092701 -31.595104 -191.370544 +v -20.051289 -31.595104 -191.370544 +v -20.051289 -31.595104 -180.065186 +v -30.092701 -31.595104 -180.065186 +v -20.051289 -21.395897 -191.370544 +v -20.051289 -21.395899 -180.065186 +v -20.051289 -31.595104 -191.370544 +v -20.051289 -31.595104 -180.065186 +v 29.746517 -21.395897 -191.370544 +v 29.746517 -21.395899 -180.065186 +v 29.746517 -31.595104 -191.370544 +v 29.746517 -31.595104 -180.065186 +v -20.051298 -21.395931 26.818615 +v -30.092710 -21.395931 26.818613 +v -20.051298 -31.595139 26.818613 +v -30.092710 -31.595139 26.818611 +v -20.051298 -21.395931 26.818615 +v -20.051298 -31.595139 26.818613 +v 29.746508 -21.395931 26.818617 +v 29.746508 -31.595139 26.818615 +v -20.051300 -21.395939 73.920013 +v -30.092712 -21.395939 73.920013 +v -20.051300 -31.595146 73.920006 +v -30.092712 -31.595146 73.920006 +v -20.051300 -21.395939 73.920013 +v -20.051300 -31.595146 73.920006 +v 29.746506 -21.395939 73.920013 +v 29.746506 -31.595146 73.920006 +v -20.051304 -21.395956 174.644531 +v -30.092716 -21.395956 174.644531 +v -20.051304 -31.595161 174.644531 +v -30.092716 -31.595161 174.644531 +v -20.051304 -21.395956 174.644531 +v -20.051304 -31.595161 174.644531 +v 29.746502 -21.395956 174.644531 +v 29.746502 -31.595161 174.644531 +v -99.604095 -31.595139 26.818609 +v -99.604095 -21.395931 26.818611 +v -99.604095 -31.595146 73.919998 +v -99.604095 -21.395939 73.920006 +v -30.092709 -31.595135 9.322457 +v -30.092709 -21.395929 9.322459 +v -99.604095 -31.595135 9.322454 +v -99.604095 -21.395929 9.322456 +v 100.490204 -21.395931 26.818619 +v 100.490204 -31.595139 26.818617 +v 100.490204 -21.395939 73.920021 +v 100.490204 -31.595146 73.920013 +v 29.746510 -21.395929 8.075056 +v 29.746510 -31.595135 8.075054 +v 100.490204 -21.395929 8.075058 +v 100.490204 -31.595135 8.075057 +v -20.051289 34.111061 -191.370544 +v -30.092701 34.111061 -191.370544 +v -20.051289 34.111061 -180.065186 +v -30.092701 34.111061 -180.065186 +v -20.051289 34.111069 -180.065186 +v -30.092701 34.111069 -180.065186 +v -20.051289 34.111069 -191.370544 +v -20.051289 34.111069 -180.065186 +v 29.746517 34.111069 -191.370544 +v 29.746517 34.111069 -180.065186 +v -20.051298 34.111034 26.818624 +v -30.092710 34.111034 26.818623 +v -20.051298 34.111034 26.818624 +v 29.746508 34.111034 26.818626 +v -20.051300 34.111027 73.920021 +v -30.092712 34.111027 73.920021 +v -20.051300 34.111027 73.920021 +v 29.746506 34.111027 73.920021 +v -20.051304 34.111012 174.644531 +v -30.092716 34.111012 174.644531 +v -20.051304 34.111012 174.644531 +v 29.746502 34.111012 174.644531 +v -99.604095 34.111034 26.818621 +v -99.604095 34.111027 73.920013 +v -30.092709 34.111038 9.322469 +v -99.604095 34.111038 9.322466 +v 100.490204 34.111027 73.920029 +v 100.490204 34.111034 26.818628 +v 100.490204 34.111038 8.075068 +v 29.746510 34.111038 8.075065 +v -20.051287 -21.395901 -204.185898 +v -30.092699 -21.395901 -204.185898 +v -20.051287 -21.395893 -204.185898 +v 29.746519 -21.395893 -204.185898 +v -20.051287 34.111065 -204.185898 +v -30.092699 34.111065 -204.185898 +v -20.051287 34.111073 -204.185898 +v 29.746519 34.111073 -204.185898 +v 40.017986 -21.395897 -191.370544 +v 40.017986 -21.395899 -180.065186 +v 40.017979 -21.395931 26.818617 +v 40.017986 34.111069 -191.370544 +v 40.017986 34.111069 -180.065186 +v 40.017979 34.111034 26.818626 +v 29.746510 34.111038 -1.041482 +v 29.746510 -21.395927 -1.041491 +v 100.490204 -21.395927 -1.041488 +v 100.490204 34.111038 -1.041479 +v 109.830750 -21.395929 8.075059 +v 109.830750 34.111038 8.075068 +v 109.830750 -21.395939 73.920021 +v 109.830750 -21.395931 26.818621 +v 109.830750 34.111027 73.920029 +v 109.830750 34.111034 26.818630 +v 100.490204 -21.395941 83.622658 +v 29.746506 -21.395941 83.622650 +v 100.490204 34.111023 83.622665 +v 29.746506 34.111023 83.622658 +v 39.820686 -21.395956 174.644531 +v 39.820690 -21.395939 73.920013 +v 39.820686 34.111012 174.644531 +v 39.820690 34.111027 73.920021 +v -20.051304 34.111008 182.577667 +v -20.051304 -21.395958 182.577667 +v -20.051304 -21.395958 182.577667 +v -30.092716 -21.395958 182.577667 +v 29.746502 -21.395958 182.577667 +v -20.051304 34.111008 182.577667 +v -30.092716 34.111008 182.577667 +v 29.746502 34.111008 182.577667 +v -39.945244 -21.395956 174.644531 +v -39.945240 -21.395939 73.920013 +v -39.945244 34.111012 174.644531 +v -39.945240 34.111027 73.920021 +v -99.604095 -21.395941 83.312431 +v -30.092712 -21.395941 83.312439 +v -99.604095 34.111023 83.312439 +v -30.092712 34.111023 83.312447 +v -109.816071 -21.395929 9.322455 +v -109.816071 34.111038 9.322465 +v -109.816071 -21.395931 26.818611 +v -109.816071 -21.395939 73.920006 +v -109.816071 34.111034 26.818621 +v -109.816071 34.111027 73.920013 +v -99.604095 -21.395927 -0.882932 +v -99.604095 34.111038 -0.882923 +v -30.092709 34.111038 -0.882920 +v -30.092709 -21.395927 -0.882929 +v -39.906361 -21.395905 -191.370544 +v -39.906361 -21.395906 -180.065186 +v -39.906368 -21.395931 26.818613 +v -39.906361 -21.395899 -180.065186 +v -39.906368 34.111034 26.818623 +v -39.906361 34.111061 -191.370544 +v -39.906361 34.111061 -180.065186 +v -39.906361 34.111069 -180.065186 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.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 -0.0000 -1.0000 -0.0000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.875000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.875000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.375000 0.000000 +vt 0.375000 1.000000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 1.000000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +s 0 +f 1/1/1 2/3/1 4/6/1 3/5/1 +f 3/5/2 4/6/2 8/10/2 7/9/2 +f 7/9/3 8/10/3 6/8/3 5/7/3 +f 5/7/4 6/8/4 2/4/4 1/2/4 +f 5/7/5 1/2/5 149/162/5 150/163/5 +f 14/19/2 13/18/2 67/76/2 68/77/2 +f 11/16/5 10/15/5 9/11/5 12/17/5 +f 4/6/3 2/3/3 9/12/3 10/14/3 +f 2/4/2 6/8/2 12/17/2 9/13/2 +f 4/6/5 10/14/5 15/20/5 13/18/5 +f 18/24/4 20/27/4 28/35/4 27/34/4 +f 10/15/5 11/16/5 16/22/5 15/21/5 +f 8/10/5 4/6/5 13/18/5 14/19/5 +f 11/16/5 8/10/5 14/19/5 16/22/5 +f 18/24/4 17/23/4 19/25/4 20/27/4 +f 8/10/4 21/28/4 71/80/4 65/74/4 +f 13/18/3 15/20/3 19/25/3 17/23/3 +f 15/21/5 16/22/5 20/27/5 19/26/5 +f 32/39/5 24/31/5 45/52/5 47/54/5 +f 28/35/5 36/43/5 56/63/5 54/61/5 +f 12/17/2 6/8/2 22/29/2 24/31/2 +f 20/27/5 16/22/5 26/33/5 28/35/5 +f 16/22/2 14/19/2 25/32/2 26/33/2 +f 8/10/4 11/16/4 23/30/4 21/28/4 +f 11/16/5 12/17/5 24/31/5 23/30/5 +f 53/60/5 55/62/5 111/124/5 112/125/5 +f 36/43/5 34/41/5 42/49/5 44/51/5 +f 46/53/5 52/59/5 139/152/5 141/154/5 +f 23/30/5 24/31/5 32/39/5 31/38/5 +f 74/83/6 70/79/6 103/116/6 104/117/6 +f 26/33/2 25/32/2 33/40/2 34/41/2 +f 21/28/4 23/30/4 31/38/4 29/36/4 +f 27/34/2 57/64/2 90/99/2 74/83/2 +f 28/35/5 26/33/5 34/41/5 36/43/5 +f 38/45/1 37/44/1 39/46/1 40/47/1 +f 42/49/1 41/48/1 43/50/1 44/51/1 +f 35/42/4 36/43/4 44/51/4 43/50/4 +f 32/39/2 30/37/2 38/45/2 40/47/2 +f 31/38/5 32/39/5 40/47/5 39/46/5 +f 52/59/3 86/95/3 140/153/3 139/152/3 +f 34/41/2 33/40/2 41/48/2 42/49/2 +f 29/36/4 31/38/4 39/46/4 37/44/4 +f 45/52/2 46/53/2 48/55/2 47/54/2 +f 24/31/4 22/29/4 50/57/4 49/56/4 +f 30/37/1 32/39/1 47/54/1 48/55/1 +f 3/5/4 7/9/4 63/72/4 61/69/4 +f 49/56/3 50/57/3 52/59/3 51/58/3 +f 90/99/2 57/64/2 106/119/2 105/118/2 +f 45/52/5 24/31/5 49/56/5 51/58/5 +f 46/53/2 45/52/2 51/58/2 52/59/2 +f 53/60/4 54/61/4 56/63/4 55/62/4 +f 41/48/2 33/40/2 77/86/2 81/90/2 +f 50/57/4 22/29/4 72/81/4 85/94/4 +f 36/43/1 35/42/1 55/62/1 56/63/1 +f 57/64/3 58/65/3 60/67/3 59/66/3 +f 54/61/4 53/60/4 59/66/4 60/67/4 +f 27/34/2 28/35/2 58/65/2 57/64/2 +f 28/35/5 54/61/5 60/67/5 58/65/5 +f 61/68/6 63/72/6 64/73/6 62/70/6 +f 66/75/6 65/74/6 71/80/6 72/81/6 +f 68/77/6 67/76/6 69/78/6 70/79/6 +f 68/77/6 70/79/6 74/83/6 73/82/6 +f 76/85/6 75/84/6 79/88/6 80/89/6 +f 73/82/6 74/83/6 78/87/6 77/86/6 +f 72/81/6 71/80/6 75/84/6 76/85/6 +f 77/86/6 78/87/6 82/91/6 81/90/6 +f 72/81/6 76/85/6 84/93/6 83/92/6 +f 72/81/6 83/92/6 86/95/6 85/94/6 +f 88/97/6 74/83/6 90/99/6 89/98/6 +f 78/87/6 74/83/6 88/97/6 87/96/6 +f 43/50/5 41/48/5 124/137/5 127/140/5 +f 7/9/1 5/7/1 64/73/1 63/72/1 +f 61/68/6 62/70/6 96/107/6 95/105/6 +f 6/8/3 8/10/3 65/74/3 66/75/3 +f 29/36/4 37/44/4 79/88/4 75/84/4 +f 87/96/6 88/97/6 114/127/6 113/126/6 +f 25/32/2 14/19/2 68/77/2 73/82/2 +f 76/85/6 80/89/6 133/146/6 134/147/6 +f 6/8/3 66/75/3 156/170/3 152/165/3 +f 48/55/2 84/93/2 137/150/2 135/148/2 +f 33/40/2 25/32/2 73/82/2 77/86/2 +f 78/87/3 35/42/3 120/133/3 122/135/3 +f 35/42/2 78/87/2 118/131/2 116/129/2 +f 21/28/4 29/36/4 75/84/4 71/80/4 +f 67/76/2 13/18/2 93/103/2 97/110/2 +f 38/45/2 80/89/2 129/142/2 126/139/2 +f 86/95/2 52/59/2 145/158/2 146/159/2 +f 17/23/5 18/24/5 100/113/5 99/112/5 +f 93/103/3 94/104/3 98/111/3 97/110/3 +f 92/101/3 91/100/3 95/106/3 96/108/3 +f 17/23/4 69/78/4 98/111/4 94/104/4 +f 1/1/5 3/5/5 91/100/5 92/101/5 +f 62/71/2 1/2/2 92/102/2 96/109/2 +f 69/78/6 67/76/6 97/110/6 98/111/6 +f 3/5/4 61/69/4 95/106/4 91/100/4 +f 13/18/5 17/23/5 94/104/5 93/103/5 +f 100/113/4 101/114/4 104/117/4 103/116/4 +f 99/112/4 100/113/4 103/116/4 102/115/4 +f 69/78/3 17/23/3 99/112/3 102/115/3 +f 27/34/1 74/83/1 104/117/1 101/114/1 +f 18/24/5 27/34/5 101/114/5 100/113/5 +f 70/79/6 69/78/6 102/115/6 103/116/6 +f 106/119/3 107/120/3 108/121/3 105/118/3 +f 89/98/6 90/99/6 105/118/6 108/121/6 +f 59/66/4 89/98/4 108/121/4 107/120/4 +f 57/64/5 59/66/5 107/120/5 106/119/5 +f 109/122/4 112/125/4 114/127/4 110/123/4 +f 112/125/4 111/124/4 113/126/4 114/127/4 +f 88/97/6 89/98/6 110/123/6 114/127/6 +f 55/62/1 87/96/1 113/126/1 111/124/1 +f 89/98/3 59/66/3 109/122/3 110/123/3 +f 59/66/5 53/60/5 112/125/5 109/122/5 +f 115/128/1 116/129/1 118/131/1 117/130/1 +f 55/62/5 35/42/5 116/129/5 115/128/5 +f 78/87/6 87/96/6 117/130/6 118/131/6 +f 87/96/4 55/62/4 115/128/4 117/130/4 +f 120/133/4 119/132/4 121/134/4 122/135/4 +f 43/50/1 82/91/1 121/134/1 119/132/1 +f 82/91/6 78/87/6 122/135/6 121/134/6 +f 35/42/5 43/50/5 119/132/5 120/133/5 +f 127/140/1 124/137/1 123/136/1 130/143/1 +f 125/138/1 126/139/1 129/142/1 128/141/1 +f 81/90/6 82/91/6 130/143/6 123/136/6 +f 41/48/2 81/90/2 123/136/2 124/137/2 +f 37/44/5 38/45/5 126/139/5 125/138/5 +f 82/91/4 43/50/4 127/140/4 130/143/4 +f 80/89/6 79/88/6 128/141/6 129/142/6 +f 79/88/4 37/44/4 125/138/4 128/141/4 +f 131/144/2 132/145/2 134/147/2 133/146/2 +f 80/89/1 38/45/1 131/144/1 133/146/1 +f 38/45/5 30/37/5 132/145/5 131/144/5 +f 30/37/3 76/85/3 134/147/3 132/145/3 +f 136/149/1 135/148/1 137/150/1 138/151/1 +f 84/93/6 76/85/6 138/151/6 137/150/6 +f 76/85/4 30/37/4 136/149/4 138/151/4 +f 30/37/5 48/55/5 135/148/5 136/149/5 +f 142/155/2 141/154/2 143/156/2 144/157/2 +f 141/154/2 139/152/2 140/153/2 143/156/2 +f 84/93/1 48/55/1 142/155/1 144/157/1 +f 83/92/6 84/93/6 144/157/6 143/156/6 +f 48/55/5 46/53/5 141/154/5 142/155/5 +f 86/95/6 83/92/6 143/156/6 140/153/6 +f 145/158/3 148/161/3 147/160/3 146/159/3 +f 50/57/4 85/94/4 147/160/4 148/161/4 +f 52/59/5 50/57/5 148/161/5 145/158/5 +f 85/94/6 86/95/6 146/159/6 147/160/6 +f 151/164/2 152/165/2 156/170/2 153/166/2 +f 150/163/2 149/162/2 154/168/2 155/169/2 +f 62/70/6 64/73/6 155/169/6 154/167/6 +f 66/75/6 72/81/6 153/166/6 156/170/6 +f 1/2/3 62/71/3 154/168/3 149/162/3 +f 72/81/1 22/29/1 151/164/1 153/166/1 +f 22/29/5 6/8/5 152/165/5 151/164/5 +f 64/73/1 5/7/1 150/163/1 155/169/1 diff --git a/java/data/justice.png b/java/data/justice.png new file mode 100644 index 000000000..38452ca52 Binary files /dev/null and b/java/data/justice.png differ diff --git a/java/data/segments/End.mp3 b/java/data/segments/End.mp3 new file mode 100644 index 000000000..dc4a0de89 Binary files /dev/null and b/java/data/segments/End.mp3 differ diff --git a/java/data/segments/First-Background-zaps.mp3 b/java/data/segments/First-Background-zaps.mp3 new file mode 100644 index 000000000..478552c2d Binary files /dev/null and b/java/data/segments/First-Background-zaps.mp3 differ diff --git a/java/data/segments/First-drop.mp3 b/java/data/segments/First-drop.mp3 new file mode 100644 index 000000000..ddaa65326 Binary files /dev/null and b/java/data/segments/First-drop.mp3 differ diff --git a/java/data/segments/First-dubstep-break.mp3 b/java/data/segments/First-dubstep-break.mp3 new file mode 100644 index 000000000..67bc6f619 Binary files /dev/null and b/java/data/segments/First-dubstep-break.mp3 differ diff --git a/java/data/segments/Intro.mp3 b/java/data/segments/Intro.mp3 new file mode 100644 index 000000000..1d9c54a15 Binary files /dev/null and b/java/data/segments/Intro.mp3 differ diff --git a/java/data/segments/Piano-buildup.mp3 b/java/data/segments/Piano-buildup.mp3 new file mode 100644 index 000000000..8d1b5aee0 Binary files /dev/null and b/java/data/segments/Piano-buildup.mp3 differ diff --git a/java/data/segments/Second-background-zaps.mp3 b/java/data/segments/Second-background-zaps.mp3 new file mode 100644 index 000000000..6a49e2fce Binary files /dev/null and b/java/data/segments/Second-background-zaps.mp3 differ diff --git a/java/data/segments/Second-drop.mp3 b/java/data/segments/Second-drop.mp3 new file mode 100644 index 000000000..ab569205f Binary files /dev/null and b/java/data/segments/Second-drop.mp3 differ diff --git a/java/data/segments/Third-background-zaps.mp3 b/java/data/segments/Third-background-zaps.mp3 new file mode 100644 index 000000000..56b61c39a Binary files /dev/null and b/java/data/segments/Third-background-zaps.mp3 differ diff --git a/java/data/segments/zaps-and-whine.mp3 b/java/data/segments/zaps-and-whine.mp3 new file mode 100644 index 000000000..3af3d78df Binary files /dev/null and b/java/data/segments/zaps-and-whine.mp3 differ diff --git a/java/lib/OBJLoader.jar b/java/lib/OBJLoader.jar new file mode 100644 index 000000000..fd912e0a9 Binary files /dev/null and b/java/lib/OBJLoader.jar differ diff --git a/java/src/c123456/BryansVisual.java b/java/src/c123456/BryansVisual.java deleted file mode 100644 index e69de29bb..000000000 diff --git a/java/src/c21430484/AudioBandsVisual.java b/java/src/c21430484/AudioBandsVisual.java new file mode 100644 index 000000000..59305930f --- /dev/null +++ b/java/src/c21430484/AudioBandsVisual.java @@ -0,0 +1,39 @@ +package c21430484; + +// This is an example of a visual that uses the audio bands +public class AudioBandsVisual +{ + BensVisual mv; + + public AudioBandsVisual(BensVisual mv) + { + this.mv = mv; + } + + public void render(int phase) + { + if(phase == 1) + { + float gap = mv.width / (float) mv.getBands().length; + float testGap = mv.height / (float) mv.getBands().length; + + // float brightness = 60 / (float) mv.getBands().length; + + mv.noStroke(); + for(int i = 0 ; i < mv.getBands().length ; i ++) + { + mv.fill(208, 152, 3, 40 + 100 - (i * 10)); + + // mv.rect(i * gap, mv.height, gap,-mv.getSmoothedBands()[i] * 0.2f); + // mv.rect(i * gap, 0, gap, mv.getSmoothedBands()[i] * 0.2f); + + mv.rect(0, i * testGap, +mv.getSmoothedBands()[i] * 0.2f, testGap); + mv.rect(mv.width, i * testGap, -mv.getSmoothedBands()[i] * 0.2f, testGap); + } + } + else if(phase == 2) + { + + } + } +} \ No newline at end of file diff --git a/java/src/c21430484/BensVisual.java b/java/src/c21430484/BensVisual.java new file mode 100644 index 000000000..c3784bf51 --- /dev/null +++ b/java/src/c21430484/BensVisual.java @@ -0,0 +1,156 @@ +package c21430484; + +import ddf.minim.AudioBuffer; +import ie.tudublin.*; +import processing.core.PImage; +import processing.core.PShape; + +import example.*; + + + +public class BensVisual extends Visual +{ + WaveForm wf; + CrossVisual cv; + AudioBandsVisual abv; + TrumpetBandVisual tbv; + CircularWaveVisual cbv; + + PImage justice; + AudioBuffer ab; + + long startTime; + long currentTime; + + public void settings() + { + size(1024, 700, P3D); + + // Use this to make fullscreen + //fullScreen(); + + // Use this to make fullscreen and use P3D for 3D graphics + //fullScreen(P3D, SPAN); + } + + public void setup() + { + startMinim(); + // colorMode(HSB); + + // Call loadAudio to load an audio file to process + loadAudio("Genesis.mp3"); + + + // Call this instead to read audio from the microphone + // startListening(); + + wf = new WaveForm(this); + abv = new AudioBandsVisual(this); + tbv = new TrumpetBandVisual(this); + cv = new CrossVisual(this); + cbv = new CircularWaveVisual(this); + + justice = loadImage("justice.png"); + + startTime = -1; + + background(0); + } + + public void keyPressed() + { + if (key == ' ') + { + getAudioPlayer().cue(0); + getAudioPlayer().play(); + startTime = System.currentTimeMillis(); + } + } + + boolean drawBackground = true; + + public void draw() + { + currentTime = System.currentTimeMillis(); + + if(startTime != -1) + { + if((timeElapsed() > 124060 && timeElapsed() < 137500) || (timeElapsed() > 181500 && timeElapsed() < 186500)) + drawBackground = false; + else + drawBackground = true; + } + + if(drawBackground) + background(0); + + + try + { + // Call this if you want to use FFT data + calculateFFT(); + } + catch(VisualException e) + { + e.printStackTrace(); + } + // Call this is you want to use frequency bands + calculateFrequencyBands(); + + // Call this is you want to get the average amplitude + calculateAverageAmplitude(); + + + + if(startTime != -1) + { + if(timeElapsed() > 137500 && timeElapsed() < 186500) + renderPhase2(); + else + renderPhase1(); + } + else + renderPhase1(); + + // renderPhase2(); + } + + + + public void renderPhase1() + { + translate(-width/2, -height/2, 0); + + + if(timeElapsed() < 187000) + tbv.render(1); + else + tbv.render(2); + + wf.render(); + + cv.render(1); + } + + public void renderPhase2() + { + translate(-width/2, -height/2, 0); + cbv.render(); + popMatrix(); + + abv.render(1); + + + cv.render(2); + } + + public long timeElapsed() + { + if(startTime == -1) + return 0; + + return currentTime - startTime; + } +} \ No newline at end of file diff --git a/java/src/c21430484/CircularWaveVisual.java b/java/src/c21430484/CircularWaveVisual.java new file mode 100644 index 000000000..3678c428e --- /dev/null +++ b/java/src/c21430484/CircularWaveVisual.java @@ -0,0 +1,32 @@ +package c21430484; + +import processing.core.*; + +public class CircularWaveVisual +{ + BensVisual mv; + float cy = 0; + + public CircularWaveVisual(BensVisual mv) + { + this.mv = mv; + this.mv = mv; + cy = this.mv.height / 2; + } + + public void render() + { + mv.stroke(208, 152, 3); + + mv.pushMatrix(); + mv.translate(mv.width/2, mv.height/2); + mv.rotate(PApplet.radians(mv.frameCount % 360 * 2)); + + for(int j = 0; j < 360; j++) + { + mv.line(PApplet.cos(j)*245, PApplet.sin(j)*245, PApplet.cos(j)*PApplet.abs(mv.getAudioBuffer().get(j))*200 + PApplet.cos(j)*245, PApplet.sin(j)*PApplet.abs(mv.getAudioBuffer().get(j))*200 + PApplet.sin(j)*245); + } + + + } +} diff --git a/java/src/c21430484/CrossVisual.java b/java/src/c21430484/CrossVisual.java new file mode 100644 index 000000000..6b0eea3cc --- /dev/null +++ b/java/src/c21430484/CrossVisual.java @@ -0,0 +1,148 @@ +package c21430484; + +import processing.core.PApplet; +import processing.core.PShape; +import java.util.*; + +public class CrossVisual +{ + BensVisual mv; + + PShape cross; + PShape innerCross; + + float objScale; + float scaler; + float abScale; + + long currentTime; + + public CrossVisual(BensVisual mv) + { + this.mv = mv; + innerCross = mv.loadShape("innerCross.obj"); + cross = mv.loadShape("cross.obj"); + // cross.translate(mv.width / 2, mv.height / 2); + objScale = 0.8f; + + cross.rotateX(+260); + cross.scale(objScale); + + innerCross.rotateX(+260); + innerCross.scale(objScale); + } + + + public void changeScale() + { + float scaler = 0.8f; + + abScale = (mv.getSmoothedBands()[0] * 0.8f); + abScale = PApplet.map(abScale, 0f, 40f, 0.8f, 1.1f); + scaler = PApplet.lerp(scaler, abScale, 0.85f); + + if(objScale > scaler) + { + while(objScale > scaler) + { + objScale = objScale * 0.999f; + cross.scale(0.999f); + innerCross.scale(0.999f); + } + } + else + { + while(objScale < scaler) + { + objScale = objScale * 1.001f; + cross.scale(1.001f); + innerCross.scale(1.001f); + } + } + } + + + public void render(int phase) + { + cross.setFill(mv.color(208, 152, 3)); + mv.camera(0f, 0f, mv.height * .86602f, 0f, 0f, 0f, 0f, 1f, 0f); + mv.lights(); + mv.shape(cross); + + innerCross.setFill(mv.color(0)); + mv.shape(innerCross); + + // currentTime = System.currentTimeMillis(); + // cross.rotateX(0.005f); + + if(phase == 1) + renderPhase1(); + else if(phase == 2) + renderPhase2(); + } + + public void renderPhase1() + { + if(mv.timeElapsed() > 5000) + { + cross.rotateY(0.005f); + cross.rotateZ(0.005f); + + innerCross.rotateY(0.005f); + innerCross.rotateZ(0.005f); + } + + if(mv.timeElapsed() > 38700) + { + changeScale(); + + cross.rotateX(-0.0005f); + innerCross.rotateX(-0.0005f); + } + + if(mv.timeElapsed() > 125000 && mv.timeElapsed() < 137500) + { + if(mv.timeElapsed() < 131250) + { + cross.rotateY(0.02f); + cross.rotateZ(0.02f); + + innerCross.rotateY(0.02f); + innerCross.rotateZ(0.02f); + + cross.rotateX(-0.02f); + innerCross.rotateX(-0.02f); + } + else + { + cross.rotateY(-0.02f); + cross.rotateZ(-0.02f); + + innerCross.rotateY(-0.02f); + innerCross.rotateZ(-0.02f); + + cross.rotateX(0.07f); + innerCross.rotateX(0.07f); + } + } + } + + public void renderPhase2() + { + cross.rotateZ(0.01f); + innerCross.rotateZ(0.01f); + + if(mv.timeElapsed() > 170000 && mv.timeElapsed() < 187000) + { + cross.rotateY(0.035f); + innerCross.rotateY(0.035f); + + cross.rotateZ(0.045f); + innerCross.rotateZ(0.045f); + + cross.rotateX(-0.02f); + innerCross.rotateX(-0.02f); + } + } +} + diff --git a/java/src/c21430484/TrumpetBandVisual.java b/java/src/c21430484/TrumpetBandVisual.java new file mode 100644 index 000000000..d4e9c288e --- /dev/null +++ b/java/src/c21430484/TrumpetBandVisual.java @@ -0,0 +1,98 @@ +package c21430484; + +import processing.core.*; + +// This is an example of a visual that uses the audio bands +public class TrumpetBandVisual +{ + BensVisual mv; + int noCircles; + long lastIncrement = 0; + + public TrumpetBandVisual(BensVisual mv) + { + this.mv = mv; + this.noCircles = 1; + this.lastIncrement = 0; + } + + public void render(int phase) + { + + if(mv.timeElapsed() > 235000) + return; + + float gap = mv.width / (float) mv.getBands().length; + + mv.noStroke(); + + + // mv.fill(PApplet.map(6, 0, mv.getBands().length, 255, 0), 255, 255); + mv.fill(208, 152, 3); + + mv.rect(0, mv.height, 75, -mv.getSmoothedBands()[6] * 0.75f); + mv.rect(mv.width - 75, mv.height, 75,-mv.getSmoothedBands()[6] * 0.75f); + + + if(phase == 2) + { + mv.translate(0, 0, -200f); + for(int i = 0 ; i < mv.getBands().length ; i ++) + { + mv.translate(0, 0, -90f); + mv.fill(69, 50, 1); + mv.rect(i * gap, mv.height + 165, gap,-mv.getSmoothedBands()[i] * 0.4f); + mv.translate(0, 0, 90f); + + mv.translate(0, 0, -70f); + mv.fill(115, 84, 1); + mv.rect(i * gap, mv.height + 165, gap,-mv.getSmoothedBands()[i] * 0.3f); + mv.translate(0, 0, 70f); + + mv.fill(163, 120, 3); + mv.rect(i * gap, mv.height + 125, gap,-mv.getSmoothedBands()[i] * 0.2f); + } + mv.translate(0, 0, +200f); + } + + mv.noFill(); + mv.stroke(208, 152, 3); + mv.translate(0, +30, 0); + + if((mv.timeElapsed() > 63500 && mv.timeElapsed() < 71000) || + (mv.timeElapsed() > 104400 && mv.timeElapsed() < 120000)) + { + if(lastIncrement == 0) + lastIncrement = (mv.timeElapsed() + 5) / 10 * 5; + + + if(mv.currentTime - lastIncrement > 500) + { + noCircles += 2; + lastIncrement = mv.currentTime; + } + } + + if((mv.timeElapsed() > 71000 && mv.timeElapsed() < 104400 ) || + mv.timeElapsed() > 120000) + { + if(noCircles > 1) + { + if(mv.currentTime - lastIncrement > 100) + { + noCircles--; + lastIncrement = mv.currentTime; + } + } + } + + mv.translate(0, 0, -175f); + for(int i = 0; i < noCircles; i++) + { + mv.circle(mv.width / 2, mv.height / 2, 380 + (mv.getSmoothedBands()[6] * (0.45f - (0.07f * i)))); + } + + mv.image(mv.justice, (mv.width/2) - 125, -100); + mv.translate(0, -30, 175); + } +} \ No newline at end of file diff --git a/java/src/c21430484/WaveForm.java b/java/src/c21430484/WaveForm.java new file mode 100644 index 000000000..613a0d2e2 --- /dev/null +++ b/java/src/c21430484/WaveForm.java @@ -0,0 +1,33 @@ +package c21430484; + +import processing.core.*; + +// This is an example of a visual that renders the waveform +public class WaveForm +{ + BensVisual mv; + float cy = 0; + + public WaveForm(BensVisual mv) + { + this.mv = mv; + cy = this.mv.height / 2; + cy = cy + 350; + } + + public void render() + { + // mv.colorMode(PApplet.HSB); + for(int i = 0 ; i < mv.getAudioBuffer().size() ; i ++) + { + mv.stroke(208, 152, 3); + // mv.stroke + // ( + // PApplet.map(i, 0, mv.getAudioBuffer().size(), 0, 255), 255, 255 + // ); + + mv.line(i, cy, i, cy + mv.getAudioBuffer().get(i) * 100); + } + } +} + diff --git a/java/src/example/CubeVisual.java b/java/src/example/CubeVisual.java index ff8e58798..85758d581 100644 --- a/java/src/example/CubeVisual.java +++ b/java/src/example/CubeVisual.java @@ -31,12 +31,12 @@ public void keyPressed() public void setup() { colorMode(HSB); - noCursor(); + // noCursor(); setFrameSize(256); startMinim(); - loadAudio("heroplanet.mp3"); + loadAudio("Genesis.mp3"); //getAp().play(); //startListening(); @@ -54,7 +54,7 @@ public void draw() camera(0, 0, 0, 0, 0, -1, 0, 1, 0); translate(0, 0, -250); - float boxSize = 50 + (getAmplitude() * 300);//map(average, 0, 1, 100, 400); + float boxSize = 25 + (getAmplitude() * 300);//map(average, 0, 1, 100, 400); smoothedBoxSize = lerp(smoothedBoxSize, boxSize, 0.2f); if (twocubes) { @@ -77,7 +77,7 @@ public void draw() else { rotateY(angle); - rotateX(angle); + rotateX(angle * 2); //strokeWeight(1); //sphere(smoothedBoxSize/ 2); strokeWeight(5); diff --git a/java/src/example/AudioBandsVisual.java b/java/src/example/ExampleAudioBandsVisual.java similarity index 73% rename from java/src/example/AudioBandsVisual.java rename to java/src/example/ExampleAudioBandsVisual.java index b6b99d6e5..3a4a45600 100644 --- a/java/src/example/AudioBandsVisual.java +++ b/java/src/example/ExampleAudioBandsVisual.java @@ -1,25 +1,26 @@ -package example; - -import processing.core.*; - -// This is an example of a visual that uses the audio bands -public class AudioBandsVisual -{ - MyVisual mv; - - public AudioBandsVisual(MyVisual mv) - { - this.mv = mv; - } - - public void render() - { - float gap = mv.width / (float) mv.getBands().length; - mv.noStroke(); - for(int i = 0 ; i < mv.getBands().length ; i ++) - { - mv.fill(PApplet.map(i, 0, mv.getBands().length, 255, 0), 255, 255); - mv.rect(i * gap, mv.height, gap,-mv.getSmoothedBands()[i] * 0.2f); - } - } +package example; + +import c21430484.BensVisual; +import processing.core.*; + +// This is an example of a visual that uses the audio bands +public class ExampleAudioBandsVisual +{ + BensVisual mv; + + public ExampleAudioBandsVisual(BensVisual bensVisual) + { + this.mv = bensVisual; + } + + public void render() + { + float gap = mv.width / (float) mv.getBands().length; + mv.noStroke(); + for(int i = 0 ; i < mv.getBands().length ; i ++) + { + mv.fill(PApplet.map(i, 0, mv.getBands().length, 255, 0), 255, 255); + mv.rect(i * gap, mv.height, gap,-mv.getSmoothedBands()[i] * 0.2f); + } + } } \ No newline at end of file diff --git a/java/src/example/RotatingAudioBands.java b/java/src/example/ExampleRotatingAudioBands.java similarity index 92% rename from java/src/example/RotatingAudioBands.java rename to java/src/example/ExampleRotatingAudioBands.java index 72fd7a223..98831017b 100644 --- a/java/src/example/RotatingAudioBands.java +++ b/java/src/example/ExampleRotatingAudioBands.java @@ -1,89 +1,89 @@ -package example; - -import ie.tudublin.Visual; -import ie.tudublin.VisualException; - -public class RotatingAudioBands extends Visual { - - - public void settings() - { - size(800, 800, P3D); - println("CWD: " + System.getProperty("user.dir")); - //fullScreen(P3D, SPAN); - } - - public void keyPressed() - { - if (key == ' ') - { - getAudioPlayer().cue(0); - getAudioPlayer().play(); - - } - - } - - public void setup() - { - colorMode(HSB); - noCursor(); - - setFrameSize(256); - - startMinim(); - loadAudio("heroplanet.mp3"); - getAudioPlayer().play(); - //startListening(); - - } - - float radius = 200; - - float smoothedBoxSize = 0; - - float rot = 0; - - public void draw() - { - calculateAverageAmplitude(); - try - { - calculateFFT(); - } - catch(VisualException e) - { - e.printStackTrace(); - } - calculateFrequencyBands(); - background(0); - noFill(); - stroke(255); - lights(); - stroke(map(getSmoothedAmplitude(), 0, 1, 0, 255), 255, 255); - camera(0, -500, 500, 0, 0, 0, 0, 1, 0); - //translate(0, 0, -250); - - rot += getAmplitude() / 8.0f; - - rotateY(rot); - float[] bands = getSmoothedBands(); - for(int i = 0 ; i < bands.length ; i ++) - { - float theta = map(i, 0, bands.length, 0, TWO_PI); - - stroke(map(i, 0, bands.length, 0, 255), 255, 255); - float x = sin(theta) * radius; - float z = cos(theta) * radius; - float h = bands[i]; - pushMatrix(); - translate(x, - h / 2 , z); - rotateY(theta); - box(50, h, 50); - popMatrix(); - } - - } - float angle = 0; - +package example; + +import ie.tudublin.Visual; +import ie.tudublin.VisualException; + +public class ExampleRotatingAudioBands extends Visual { + + + public void settings() + { + size(800, 800, P3D); + println("CWD: " + System.getProperty("user.dir")); + //fullScreen(P3D, SPAN); + } + + public void keyPressed() + { + if (key == ' ') + { + getAudioPlayer().cue(0); + getAudioPlayer().play(); + + } + + } + + public void setup() + { + colorMode(HSB); + noCursor(); + + setFrameSize(256); + + startMinim(); + loadAudio("heroplanet.mp3"); + getAudioPlayer().play(); + //startListening(); + + } + + float radius = 200; + + float smoothedBoxSize = 0; + + float rot = 0; + + public void draw() + { + calculateAverageAmplitude(); + try + { + calculateFFT(); + } + catch(VisualException e) + { + e.printStackTrace(); + } + calculateFrequencyBands(); + background(0); + noFill(); + stroke(255); + lights(); + stroke(map(getSmoothedAmplitude(), 0, 1, 0, 255), 255, 255); + camera(0, -500, 500, 0, 0, 0, 0, 1, 0); + //translate(0, 0, -250); + + rot += getAmplitude() / 8.0f; + + rotateY(rot); + float[] bands = getSmoothedBands(); + for(int i = 0 ; i < bands.length ; i ++) + { + float theta = map(i, 0, bands.length, 0, TWO_PI); + + stroke(map(i, 0, bands.length, 0, 255), 255, 255); + float x = sin(theta) * radius; + float z = cos(theta) * radius; + float h = bands[i]; + pushMatrix(); + translate(x, - h / 2 , z); + rotateY(theta); + box(50, h, 50); + popMatrix(); + } + + } + float angle = 0; + } \ No newline at end of file diff --git a/java/src/example/WaveForm.java b/java/src/example/ExampleWaveForm.java similarity index 87% rename from java/src/example/WaveForm.java rename to java/src/example/ExampleWaveForm.java index 5d38aa700..30e095571 100644 --- a/java/src/example/WaveForm.java +++ b/java/src/example/ExampleWaveForm.java @@ -1,31 +1,31 @@ -package example; - -import processing.core.*; - -// This is an example of a visual that renders the waveform -public class WaveForm -{ - MyVisual mv; - float cy = 0; - - public WaveForm(MyVisual mv) - { - this.mv = mv; - cy = this.mv.height / 2; - } - - public void render() - { - mv.colorMode(PApplet.HSB); - for(int i = 0 ; i < mv.getAudioBuffer().size() ; i ++) - { - mv.stroke( - PApplet.map(i, 0, mv.getAudioBuffer().size(), 0, 255) - , 255 - , 255 - ); - - mv.line(i, cy, i, cy + cy * mv.getAudioBuffer().get(i)); - } - } +package example; + +import processing.core.*; + +// This is an example of a visual that renders the waveform +public class ExampleWaveForm +{ + MyVisual mv; + float cy = 0; + + public ExampleWaveForm(MyVisual mv) + { + this.mv = mv; + cy = this.mv.height / 2; + } + + public void render() + { + mv.colorMode(PApplet.HSB); + for(int i = 0 ; i < mv.getAudioBuffer().size() ; i ++) + { + mv.stroke( + PApplet.map(i, 0, mv.getAudioBuffer().size(), 0, 255) + , 255 + , 255 + ); + + mv.line(i, cy, i, cy + cy * mv.getAudioBuffer().get(i)); + } + } } \ No newline at end of file diff --git a/java/src/example/MyVisual.java b/java/src/example/MyVisual.java index 849e71bc2..5846ef876 100644 --- a/java/src/example/MyVisual.java +++ b/java/src/example/MyVisual.java @@ -4,8 +4,8 @@ public class MyVisual extends Visual { - WaveForm wf; - AudioBandsVisual abv; + ExampleWaveForm wf; + ExampleAudioBandsVisual abv; public void settings() { @@ -29,8 +29,8 @@ public void setup() // Call this instead to read audio from the microphone startListening(); - wf = new WaveForm(this); - abv = new AudioBandsVisual(this); + wf = new ExampleWaveForm(this); + abv = new ExampleAudioBandsVisual(this); } public void keyPressed() diff --git a/java/src/example/test.java b/java/src/example/test.java new file mode 100644 index 000000000..955958732 --- /dev/null +++ b/java/src/example/test.java @@ -0,0 +1,229 @@ +package example; + + +import ddf.minim.Minim; +import ddf.minim.analysis.FFT; +import ddf.minim.AudioBuffer; +import ddf.minim.AudioInput; +import ddf.minim.AudioPlayer; +import ie.tudublin.Visual; +import ie.tudublin.VisualException; +import processing.core.PShape; + + +public class test extends Visual +{ + Minim minim; + AudioInput ai; + AudioBuffer ab; + AudioBuffer abRight; + AudioBuffer abLeft; + AudioPlayer ap; + FFT fft; + PShape cube; + + int frameSize = 1024; + + public void settings() + { + size(512 , 512, P3D); + // fullScreen(P3D, SPAN); + } + + public void setup() + { + colorMode(HSB); + background(0); + + + smooth(); + minim = new Minim(this); + ai = minim.getLineIn(Minim.MONO, frameSize, 44100, 16); + + ap = minim.loadFile("Genesis.mp3", 512); + + + ab = ap.mix; + abRight = ap.right; + abLeft = ap.left; + + ap.play(); + fft = new FFT(width, 44100); + + cube = loadShape("t.obj"); + cube.width = 1000; + cube.height = 1000; + // cube.translate(width/2, height/2, 0); + + cube.rotateX(radians(+140)); + + // cube.translate(width/2, height/2, 0); + cube.rotateX(radians(10)); + // cube.setFill(color(46, 100, 50)); + + System.out.println(cube.width + " " + cube.height); + + } + + float lerpedBuffer[] = new float[512]; + float zAxis = 1; + int test = 1; + float average; + float cubeScale = 1; + + public void grow() + { + if(cubeScale >= 1.1) + return; + + cubeScale = cubeScale * 1.1f; + cube.scale(1.1f); + } + + public void shrink() + { + if(cubeScale <= 0.9) + return; + + cubeScale = cubeScale * 0.9f; + cube.scale(0.9f); + } + + boolean polarity = true; + public void pulse() + { + if(polarity) + { + polarity = !polarity; + while(cubeScale < 1.1) + grow(); + } + else + { + polarity = !polarity; + while(cubeScale > 1) + shrink(); + + } + } + + float radius = 200; + + float smoothedBoxSize = 0; + + float rot = 0; + + + public void draw() + { + + + + float[] bands = getSmoothedBands(); + for(int i = 0 ; i < bands.length ; i ++) + { + float theta = map(i, 0, bands.length, 0, TWO_PI); + + stroke(map(i, 0, bands.length, 0, 255), 255, 255); + float x = sin(theta) * radius; + float z = cos(theta) * radius; + float h = bands[i]; + pushMatrix(); + translate(x, - h / 2 , z); + rotateY(theta); + box(50, h, 50); + popMatrix(); + } + + smooth(); + + background(0); + lights(); + shape(cube); + lights(); + + + + camera(0f, 0f, height * .86602f, 0f, 0f, 0f, 0f, 1f, 0f); + // cube.translate(0, 0, 10); + cube.rotateX(radians(0.5f)); + // cube.rotateY(radians(0.25f)); + // cube.translate(0, 0, -1f); + + + // float cgap = 255 / (float)ab.size(); + // float half = height/2; + + // float sum = 0; + + // for(int i = 0; i < ab.size(); i++) + // { + // // if(ab.get(i) < 0.1 && ab.get(i) > -0.1) + // // lerpedBuffer[i] = lerp(lerpedBuffer[i], ab.get(i), 0.05f); + // // else + // lerpedBuffer[i] = lerp(lerpedBuffer[i], ab.get(i), 0.25f); + // sum += ab.get(i); + // } + + // average = lerp(average, sum / ab.size(), 0.05f); + + + // for(int i = 0; i < ab.size(); i++) + // { + + // stroke(cgap * i, 255, 255); + // float f = lerpedBuffer[i] * half * (1 + (i / 100)); + + // line(i - ab.size() / 2, half + f, i - ab.size() / 2, half - f); + + // sum += abs(ab.get(i)); + + // // line(i / 4, half / 2, half / 2 + test, i / 2); + // // line(width-(i / 4), half / 2, half / 2 + test, i / 2); + + + // } + + // int heighestIndex = 0; + // fft.forward(ab); + // for(int i = 0; i < fft.specSize(); i++) + // { + // line(i, height, i, height - fft.getBand(i)); + + // if(fft.getBand(i) > fft.getBand(heighestIndex)) + // heighestIndex = i; + + // } + + + // float freq = fft.indexToFreq(heighestIndex); + // fill(255); + // text("Freq: " + freq, 10, 50); + // if(freq > 200) + // pulse(); + + + + + // fill(100); + // if(freq < 50 + // ) + // circle(100, 100, 100); + + + // float average = sum / ab.size(); + // // System.out.printf("%.2f\n", average); + + // noFill(); + + // float radius = average * 1000; + // float lerpedR = 100; + // lerpedR = lerp(lerpedR, radius, 0.25f); + + // circle(width / 2, half, lerpedR); + + + + + } +} \ No newline at end of file diff --git a/java/src/ie/tudublin/Main.java b/java/src/ie/tudublin/Main.java index 27489f824..814f939f2 100644 --- a/java/src/ie/tudublin/Main.java +++ b/java/src/ie/tudublin/Main.java @@ -2,7 +2,9 @@ import example.CubeVisual; import example.MyVisual; -import example.RotatingAudioBands; +import example.ExampleRotatingAudioBands; +import example.test; +import c21430484.*; public class Main { @@ -10,7 +12,7 @@ public class Main public void startUI() { String[] a = {"MAIN"}; - processing.core.PApplet.runSketch( a, new MyVisual()); + processing.core.PApplet.runSketch( a, new BensVisual()); } public static void main(String[] args) diff --git a/java/src/ie/tudublin/Visual.java b/java/src/ie/tudublin/Visual.java index 927fe57b1..27a119e1a 100644 --- a/java/src/ie/tudublin/Visual.java +++ b/java/src/ie/tudublin/Visual.java @@ -6,7 +6,7 @@ public abstract class Visual extends PApplet { - private int frameSize = 512; + private int frameSize = 1024; private int sampleRate = 44100; private float[] bands; @@ -75,7 +75,7 @@ protected void calculateFrequencyBands() { } average /= (float) w; bands[i] = average * 5.0f; - smoothedBands[i] = lerp(smoothedBands[i], bands[i], 0.05f); + smoothedBands[i] = lerp(smoothedBands[i], bands[i], 0.03f); } } diff --git a/test.txt b/test.txt new file mode 100644 index 000000000..9daeafb98 --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +test