diff options
author | jjesswan <jessica_wan@brown.edu> | 2024-05-10 01:52:52 -0400 |
---|---|---|
committer | jjesswan <jessica_wan@brown.edu> | 2024-05-10 01:52:52 -0400 |
commit | c93b28613dd9c33de29152f987aeec3ca8340f8d (patch) | |
tree | b3f7e39cdc0de827bac057f1a9e08f5f74f5bf84 | |
parent | d2f792c6fee2a6e78dcf2fff77f43ef036c58877 (diff) | |
parent | 6aab43ffd2c29a66f71b0684974abd5b2685341c (diff) |
merge with new foam fixes
-rw-r--r-- | cmake-build-debug/.ninja_deps | bin | 855144 -> 909176 bytes | |||
-rw-r--r-- | cmake-build-debug/.ninja_log | 112 | ||||
-rwxr-xr-x | cmake-build-debug/.rcc/Resources.qrc | 2 | ||||
-rw-r--r-- | cmake-build-debug/.rcc/qrc_Resources.cpp | 785 | ||||
-rw-r--r-- | cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt | 8 | ||||
-rw-r--r-- | cmake-build-debug/Testing/Temporary/LastTest.log | 4 | ||||
-rw-r--r-- | cmake-build-debug/build.ninja | 6 | ||||
-rwxr-xr-x | cmake-build-debug/ocean | bin | 15452792 -> 15454648 bytes | |||
-rw-r--r-- | resources/shaders/caustics.frag | 2 | ||||
-rw-r--r-- | resources/shaders/caustics.vert | 2 | ||||
-rw-r--r-- | resources/shaders/foam.frag | 4 | ||||
-rwxr-xr-x | resources/shaders/shader.frag | 4 | ||||
-rw-r--r-- | src/arap.cpp | 6 | ||||
-rwxr-xr-x | src/glwidget.cpp | 2 | ||||
-rw-r--r-- | src/graphics/shape.cpp | 2 | ||||
-rw-r--r-- | src/graphics/simpleshape.cpp | 272 | ||||
-rw-r--r-- | src/graphics/simpleshape.h | 89 | ||||
-rw-r--r-- | src/ocean/ocean_alt.cpp | 133 |
18 files changed, 1000 insertions, 433 deletions
diff --git a/cmake-build-debug/.ninja_deps b/cmake-build-debug/.ninja_deps Binary files differindex b2e3617..7b8d140 100644 --- a/cmake-build-debug/.ninja_deps +++ b/cmake-build-debug/.ninja_deps diff --git a/cmake-build-debug/.ninja_log b/cmake-build-debug/.ninja_log index bd31acf..4892ed8 100644 --- a/cmake-build-debug/.ninja_log +++ b/cmake-build-debug/.ninja_log @@ -1,65 +1,63 @@ # ninja log v5 -13 38 1715274665230530986 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/timestamp dc143b4497306125 -1512 4844 1715297344718772169 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 -78 110 1712645727876186134 CMakeFiles/StaticGLEW.dir/StaticGLEW_autogen/mocs_compilation.cpp.o cf14dd1335b34a8d -1521 4165 1715297344049177658 CMakeFiles/ocean.dir/src/graphics/shape.cpp.o fad1395b11fceaa7 -4734 7910 1715274673090001677 CMakeFiles/ocean.dir/cmake-build-debug/.rcc/qrc_Resources.cpp.o 5414beaf8d128308 -1741 1862 1715297428643492070 ocean 90ea6245b9d0c531 -1515 4798 1715297344682105484 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd -1520 5532 1715297345415079003 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -439 519 1715274665712161000 libStaticGLEW.a 8b4a852037c57830 -2043 2947 1715274668133653802 CMakeFiles/ocean.dir/src/graphics/graphicsdebug.cpp.o bf7241321ed3a409 -13 38 1715274665230530986 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 -13 38 1715274665230530986 StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 -1904 5414 1712645733171665244 CMakeFiles/ocean.dir/src/graphics/meshloader.cpp.o 64961778db90f56 -13 38 1715274665230530986 StaticGLEW_autogen/timestamp dc143b4497306125 -0 312 1715299334699502267 build.ninja dbd6bd50c232cbc4 -13 50 1715297426833568293 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -1848 2039 1715274667230803612 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp e023bb8377457e1b -39 439 1715274665627645867 CMakeFiles/StaticGLEW.dir/glew/src/glew.c.o 4784775df883673d -13 50 1715297426833568293 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -1899 4665 1712645732404853458 CMakeFiles/ocean.dir/src/graphics/camera.cpp.o d624ce2b01ab1415 -13 50 1715297426833568293 ocean_autogen/timestamp 43dd0284b7c480b9 -1511 4736 1715297344619832271 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 -2046 4734 1715274669919280047 CMakeFiles/ocean.dir/src/graphics/shader.cpp.o 267b6ae673a33204 -13 50 1715297426833568293 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -54 1741 1715297428517242555 CMakeFiles/ocean.dir/src/arap.cpp.o 46f485071c8cb61b -1521 3259 1715297343146557713 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a -1848 2039 1715274667230803612 .rcc/qrc_Resources.cpp e023bb8377457e1b -2947 4344 1715274669529296463 CMakeFiles/ocean.dir/src/ocean/ocean.cpp.o 960e422714c6a8ba -0 202 1715299334699502267 build.ninja dbd6bd50c232cbc4 -16 41 1715299334767160542 StaticGLEW_autogen/timestamp dc143b4497306125 -16 41 1715299334767160542 StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 -16 41 1715299334767160542 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/timestamp dc143b4497306125 -16 41 1715299334767160542 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 -42 1503 1715299336190038000 ocean_autogen/timestamp 43dd0284b7c480b9 -42 1503 1715299336190038000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -42 1503 1715299336190038000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -42 1503 1715299336190038000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -1504 2098 1715299336821491711 .rcc/qrc_Resources.cpp e023bb8377457e1b -1504 2098 1715299336821491711 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp e023bb8377457e1b -2111 3635 1715299338351273532 CMakeFiles/ocean.dir/src/ocean/ocean.cpp.o 960e422714c6a8ba -2109 4451 1715299339164062954 CMakeFiles/ocean.dir/src/graphics/shader.cpp.o 267b6ae673a33204 4451 4739 1715299339459105768 CMakeFiles/ocean.dir/src/ocean/halftone.cpp.o 8d9394826e07b034 -2109 4740 1715299339455807689 CMakeFiles/ocean.dir/src/graphics/shape.cpp.o fad1395b11fceaa7 -2100 5069 1715299339783217955 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd -2098 5083 1715299339796086686 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 -2102 5230 1715299339942367011 CMakeFiles/ocean.dir/src/arap.cpp.o 46f485071c8cb61b -2100 5231 1715299339945623548 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 +2111 3635 1715299338351273532 CMakeFiles/ocean.dir/src/ocean/ocean.cpp.o 960e422714c6a8ba +1504 2098 1715299336821491711 .rcc/qrc_Resources.cpp e023bb8377457e1b 3635 5248 1715299339962106274 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a -2108 6174 1715299340885755991 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 -4739 6955 1715299341667690334 CMakeFiles/ocean.dir/src/skybox.cpp.o 8709c3292b10899e -4740 11934 1715299346643530390 CMakeFiles/ocean.dir/cmake-build-debug/.rcc/qrc_Resources.cpp.o 5414beaf8d128308 -11935 12104 1715299346825220163 ocean c2cf90dc856044f7 -11 46 1715299397167741527 ocean_autogen/timestamp 43dd0284b7c480b9 -11 46 1715299397167741527 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -11 46 1715299397167741527 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -11 46 1715299397167741527 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 50 1893 1715299399006050516 CMakeFiles/ocean.dir/src/arap.cpp.o 46f485071c8cb61b -1893 2017 1715299399135323075 ocean c2cf90dc856044f7 +13 50 1715299482878485573 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +2109 4451 1715299339164062954 CMakeFiles/ocean.dir/src/graphics/shader.cpp.o 267b6ae673a33204 +2098 5083 1715299339796086686 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 13 50 1715299482878485573 ocean_autogen/timestamp 43dd0284b7c480b9 +1899 4665 1712645732404853458 CMakeFiles/ocean.dir/src/graphics/camera.cpp.o d624ce2b01ab1415 +1504 2098 1715299336821491711 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp e023bb8377457e1b +0 202 1715319063189176377 build.ninja dbd6bd50c232cbc4 13 50 1715299482878485573 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 13 50 1715299482878485573 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 -13 50 1715299482878485573 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 -54 2364 1715299485182775081 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 +39 439 1715274665627645867 CMakeFiles/StaticGLEW.dir/glew/src/glew.c.o 4784775df883673d +16 41 1715299334767160542 StaticGLEW_autogen/timestamp dc143b4497306125 +1904 5414 1712645733171665244 CMakeFiles/ocean.dir/src/graphics/meshloader.cpp.o 64961778db90f56 +16 41 1715299334767160542 StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 +16 41 1715299334767160542 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 +2043 2947 1715274668133653802 CMakeFiles/ocean.dir/src/graphics/graphicsdebug.cpp.o bf7241321ed3a409 +439 519 1715274665712161000 libStaticGLEW.a 8b4a852037c57830 2365 2480 1715299485305538441 ocean c2cf90dc856044f7 +4740 11934 1715299346643530390 CMakeFiles/ocean.dir/cmake-build-debug/.rcc/qrc_Resources.cpp.o 5414beaf8d128308 +54 2364 1715299485182775081 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 +2100 5069 1715299339783217955 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd +2109 4740 1715299339455807689 CMakeFiles/ocean.dir/src/graphics/shape.cpp.o fad1395b11fceaa7 +78 110 1712645727876186134 CMakeFiles/StaticGLEW.dir/StaticGLEW_autogen/mocs_compilation.cpp.o cf14dd1335b34a8d +4739 6955 1715299341667690334 CMakeFiles/ocean.dir/src/skybox.cpp.o 8709c3292b10899e +2100 5231 1715299339945623548 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 +16 41 1715299334767160542 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/timestamp dc143b4497306125 +1 195 1715319063189176377 build.ninja dbd6bd50c232cbc4 +14 38 1715319063246327152 StaticGLEW_autogen/timestamp dc143b4497306125 +14 38 1715319063246327152 StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 +14 38 1715319063246327152 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/timestamp dc143b4497306125 +14 38 1715319063246327152 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/StaticGLEW_autogen/mocs_compilation.cpp dc143b4497306125 +39 1444 1715319064641778000 ocean_autogen/timestamp 43dd0284b7c480b9 +39 1444 1715319064641778000 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +39 1444 1715319064641778000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 +39 1444 1715319064641778000 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +1444 1842 1715319065048935174 .rcc/qrc_Resources.cpp e023bb8377457e1b +1444 1842 1715319065048935174 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp e023bb8377457e1b +1844 3456 1715319066653540928 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a +3457 3729 1715319066933526801 CMakeFiles/ocean.dir/src/ocean/halftone.cpp.o 8d9394826e07b034 +1843 3902 1715319067102221754 CMakeFiles/ocean.dir/src/graphics/shader.cpp.o 267b6ae673a33204 +1844 4269 1715319067463004166 CMakeFiles/ocean.dir/src/graphics/shape.cpp.o fad1395b11fceaa7 +1842 4631 1715319067821603995 CMakeFiles/ocean.dir/src/mainwindow.cpp.o b8eab0029b0c2d42 +1842 4647 1715319067840407818 CMakeFiles/ocean.dir/src/main.cpp.o 11d1d3bb5133c4bd +1842 4648 1715319067843660902 CMakeFiles/ocean.dir/ocean_autogen/mocs_compilation.cpp.o a0b6000c88b7e2e0 +1843 4809 1715319068008006118 CMakeFiles/ocean.dir/src/arap.cpp.o 46f485071c8cb61b +1843 5317 1715319068514704971 CMakeFiles/ocean.dir/src/glwidget.cpp.o b59369eca2fe4e32 +3730 5443 1715319068639410125 CMakeFiles/ocean.dir/src/skybox.cpp.o 8709c3292b10899e +3902 10445 1715319073630041669 CMakeFiles/ocean.dir/cmake-build-debug/.rcc/qrc_Resources.cpp.o 5414beaf8d128308 +10445 10579 1715319073784385910 ocean c2cf90dc856044f7 +13 54 1715319210303070417 ocean_autogen/timestamp 43dd0284b7c480b9 +13 54 1715319210303070417 ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +13 54 1715319210303070417 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/timestamp 43dd0284b7c480b9 +13 54 1715319210303070417 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/ocean_autogen/mocs_compilation.cpp 43dd0284b7c480b9 +59 480 1715319210726649643 .rcc/qrc_Resources.cpp e023bb8377457e1b +59 480 1715319210726649643 /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp e023bb8377457e1b +480 1756 1715319211998723321 CMakeFiles/ocean.dir/src/ocean/ocean_alt.cpp.o ad7112753002ff6a +480 7301 1715319217532844427 CMakeFiles/ocean.dir/cmake-build-debug/.rcc/qrc_Resources.cpp.o 5414beaf8d128308 +7301 7424 1715319217670141294 ocean c2cf90dc856044f7 diff --git a/cmake-build-debug/.rcc/Resources.qrc b/cmake-build-debug/.rcc/Resources.qrc index ab6c069..9910dfb 100755 --- a/cmake-build-debug/.rcc/Resources.qrc +++ b/cmake-build-debug/.rcc/Resources.qrc @@ -30,6 +30,8 @@ <file alias="resources/images/cupertin-lake_ft.png">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_ft.png</file> <file alias="resources/images/halftone.png">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/halftone.png</file> <file alias="resources/images/foam3.png">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/foam3.png</file> + <file alias="resources/shaders/caustics.vert">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/caustics.vert</file> + <file alias="resources/shaders/caustics.frag">/Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/caustics.frag</file> </qresource> </RCC> diff --git a/cmake-build-debug/.rcc/qrc_Resources.cpp b/cmake-build-debug/.rcc/qrc_Resources.cpp index bd1c87e..a13082c 100644 --- a/cmake-build-debug/.rcc/qrc_Resources.cpp +++ b/cmake-build-debug/.rcc/qrc_Resources.cpp @@ -8,7 +8,7 @@ static const unsigned char qt_resource_data[] = { // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.vert - 0x0,0x0,0xc,0xf2, + 0x0,0x0,0xd,0x1b, 0x23, 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x20,0x63,0x6f,0x72,0x65, 0xa,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, @@ -24,7 +24,7 @@ static const unsigned char qt_resource_data[] = { 0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x73,0x3b,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e, 0x6f,0x72,0x6d,0x61,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72, 0x74,0x65,0x78,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x33,0x30,0x30,0x30, + 0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x31,0x30,0x30,0x30, 0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x73,0x6b,0x79,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x35,0x30, 0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x6d,0x61,0x74, @@ -216,8 +216,10 @@ static const unsigned char qt_resource_data[] = { 0x28,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x65,0x64,0x50,0x6f,0x73,0x69,0x74,0x69, 0x6f,0x6e,0x41,0x6e,0x64,0x50,0x72,0x6f,0x62,0x29,0x29,0x3b,0xa,0x20,0x20,0x20, 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x7d, - 0xa, + 0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20, + 0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d, + 0x20,0x76,0x65,0x63,0x34,0x28,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x46,0x6c,0x61,0x74, + 0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/foam.vert 0x0,0x0,0x6,0x8, 0x23, @@ -319,7 +321,7 @@ static const unsigned char qt_resource_data[] = { 0x54,0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, 0x6e,0x29,0x3b,0xa,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.frag - 0x0,0x0,0x5,0x40, + 0x0,0x0,0x5,0x78, 0x23, 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x20,0x63,0x6f,0x72,0x65, 0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x43,0x6f, @@ -339,21 +341,21 @@ static const unsigned char qt_resource_data[] = { 0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x69,0x6e,0x74,0x45,0x78,0x70,0x20,0x3d,0x20,0x30,0x2e,0x35,0x66,0x3b,0xa, 0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x73,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31,0x2e,0x66,0x3b,0xa,0xa,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x6c,0x74, - 0x69,0x70,0x6c,0x69,0x65,0x72,0x20,0x3d,0x20,0x2e,0x39,0x66,0x3b,0xa,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x6e,0x74, - 0x72,0x61,0x73,0x74,0x20,0x3d,0x20,0x32,0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69, - 0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x74,0x45,0x78, - 0x70,0x20,0x3d,0x20,0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31, - 0x2e,0x66,0x3b,0xa,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x20, - 0x3d,0x20,0x2e,0x35,0x66,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x20, - 0x3d,0x20,0x31,0x2e,0x35,0x66,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72, - 0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x74,0x45,0x78,0x70,0x20,0x3d, - 0x20,0x30,0x2e,0x66,0x3b,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, + 0x73,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31,0x2e,0x66,0x3b,0xa,0xa,0x2f,0x2f, + 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75, + 0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x20,0x3d,0x20,0x2e,0x39,0x66,0x3b,0xa, + 0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x20,0x3d,0x20,0x32,0x30,0x2e,0x66,0x3b, + 0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x69,0x6e,0x74,0x45,0x78,0x70,0x20,0x3d,0x20,0x30,0x2e,0x66,0x3b,0xa,0x2f, + 0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73, + 0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31,0x2e,0x66,0x3b,0xa,0xa,0x75,0x6e,0x69, + 0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x6c,0x74,0x69, + 0x70,0x6c,0x69,0x65,0x72,0x20,0x3d,0x20,0x2e,0x35,0x66,0x3b,0xa,0x75,0x6e,0x69, + 0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x6e,0x74,0x72, + 0x61,0x73,0x74,0x20,0x3d,0x20,0x31,0x2e,0x35,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66, + 0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x74,0x45,0x78,0x70, + 0x20,0x3d,0x20,0x30,0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x63,0x61,0x6c,0x65,0x20,0x3d,0x20,0x31,0x2e, 0x66,0x3b,0xa,0xa,0x2f,0x2f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65, 0x63,0x34,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x76,0x65, @@ -404,7 +406,11 @@ static const unsigned char qt_resource_data[] = { 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76, 0x65,0x63,0x33,0x28,0x31,0x29,0x2c,0x20,0x70,0x6f,0x77,0x28,0x6f,0x6c,0x64,0x41, 0x72,0x65,0x61,0x20,0x2f,0x20,0x6e,0x65,0x77,0x41,0x72,0x65,0x61,0x20,0x2a,0x20, - 0x2e,0x32,0x66,0x2c,0x20,0x31,0x2e,0x35,0x66,0x29,0x29,0x3b,0xa,0x7d,0xa, + 0x2e,0x32,0x66,0x2c,0x20,0x31,0x2e,0x35,0x66,0x29,0x29,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63, + 0x34,0x28,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53, + 0x70,0x61,0x63,0x65,0x20,0x2b,0x20,0x31,0x29,0x20,0x2f,0x20,0x32,0x2c,0x20,0x31, + 0x2e,0x66,0x29,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/skybox.vert 0x0,0x0,0x2,0xe, 0x23, @@ -470,7 +476,7 @@ static const unsigned char qt_resource_data[] = { 0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x31, 0x2e,0x30,0x29,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/foam.frag - 0x0,0x0,0x4,0xce, + 0x0,0x0,0x4,0xfc, 0x23, 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x20,0x63,0x6f,0x72,0x65, 0xa,0xa,0x69,0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61, @@ -519,7 +525,7 @@ static const unsigned char qt_resource_data[] = { 0x74,0x73,0x5b,0x30,0x5d,0x29,0x3b,0xa,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, 0x6d,0x5f,0x75,0x76,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x68, 0x61,0x6c,0x66,0x74,0x6f,0x6e,0x65,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c, - 0x20,0x74,0x65,0x78,0x2a,0x32,0x29,0x3b,0xa,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x20,0x74,0x65,0x78,0x2a,0x31,0x29,0x3b,0xa,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x6d,0x5f,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x20,0x3d,0x20, 0x28,0x6d,0x5f,0x75,0x76,0x2e,0x72,0x20,0x2b,0x20,0x6d,0x5f,0x75,0x76,0x2e,0x67, 0x20,0x2b,0x20,0x6d,0x5f,0x75,0x76,0x2e,0x62,0x29,0x20,0x2f,0x20,0x33,0x3b,0xa, @@ -548,7 +554,130 @@ static const unsigned char qt_resource_data[] = { 0x64,0x29,0x20,0x6a,0x20,0x3d,0x20,0x67,0x2a,0x66,0x6f,0x61,0x6d,0x2a,0x31,0x2e, 0x38,0x3b,0xa,0xa,0xa,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f, 0x72,0x20,0x3d,0x20,0x6a,0x3b,0x20,0x2f,0x2f,0x76,0x65,0x63,0x34,0x28,0x76,0x65, - 0x63,0x33,0x28,0x67,0x29,0x2c,0x20,0x31,0x29,0x3b,0xa,0x7d,0xa, + 0x63,0x33,0x28,0x67,0x29,0x2c,0x20,0x31,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x2f, + 0x2f,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x34,0x28,0x76,0x65,0x63,0x33,0x28,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69, + 0x6f,0x6e,0x29,0x2c,0x20,0x31,0x29,0x3b,0xa,0x7d,0xa, + // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/caustics.vert + 0x0,0x0,0x7,0x4d, + 0x23, + 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x20,0x63,0x6f,0x72,0x65, + 0xa,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x74, + 0x65,0x78,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x72, + 0x6d,0x61,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x74,0x65, + 0x78,0xa,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x74, + 0x65,0x78,0x43,0x6f,0x6f,0x72,0x64,0x73,0x3b,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e, + 0x6f,0x72,0x6d,0x61,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72, + 0x74,0x65,0x78,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x2d,0x31,0x30,0x30,0x30, + 0x2e,0x66,0x3b,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x73,0x6b,0x79,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x35,0x30, + 0x30,0x2e,0x66,0x3b,0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x6e,0x6f,0x72,0x6d,0x53,0x61,0x6d,0x70, + 0x3b,0xa,0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x6f, + 0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x3b,0xa,0x6f,0x75,0x74, + 0x20,0x76,0x65,0x63,0x33,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x3b,0xa,0x6f,0x75, + 0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x3b,0xa,0x6f,0x75,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x50,0x72,0x6f, + 0x62,0x3b,0xa,0xa,0x76,0x65,0x63,0x34,0x20,0x72,0x65,0x66,0x72,0x61,0x63,0x74, + 0x54,0x6f,0x46,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x65,0x63,0x33,0x20,0x6c,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x20,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x6e,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x2f, + 0x2f,0x20,0x52,0x65,0x66,0x72,0x61,0x63,0x74,0x73,0x20,0x69,0x6e,0x63,0x6f,0x6d, + 0x69,0x6e,0x67,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74, + 0x69,0x6f,0x6e,0x20,0x6c,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x20,0x6e,0x20,0x61,0x74,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20, + 0x70,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x68,0x69,0x74,0x73,0x20,0x66,0x6c,0x6f, + 0x6f,0x72,0x20,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x64,0xa,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x5f,0x6f,0x20,0x3d,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6c,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69, + 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x2d,0x77,0x5f,0x6f,0x2c,0x20,0x6e,0x29,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x5f,0x69,0x20,0x3d, + 0x20,0x31,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6e,0x5f, + 0x74,0x20,0x3d,0x20,0x31,0x2e,0x33,0x33,0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74, + 0x20,0x3d,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20,0x28,0x70,0x6f,0x77,0x28,0x28,0x6e, + 0x5f,0x69,0x20,0x2f,0x20,0x6e,0x5f,0x74,0x29,0x2c,0x20,0x32,0x2e,0x66,0x29,0x20, + 0x2a,0x20,0x28,0x31,0x2e,0x66,0x20,0x2d,0x20,0x70,0x6f,0x77,0x28,0x63,0x6f,0x73, + 0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x2c,0x20,0x32,0x2e,0x66,0x29,0x29,0x29, + 0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x30,0x20, + 0x3d,0x20,0x70,0x6f,0x77,0x28,0x28,0x6e,0x5f,0x69,0x20,0x2d,0x20,0x6e,0x5f,0x74, + 0x29,0x20,0x2f,0x20,0x28,0x6e,0x5f,0x69,0x20,0x2b,0x20,0x6e,0x5f,0x74,0x29,0x2c, + 0x20,0x32,0x2e,0x66,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x76,0x61,0x72,0x69,0x61,0x62, + 0x6c,0x65,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x74,0x6f,0x20,0x63, + 0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69, + 0x6c,0x69,0x74,0x79,0x20,0x6f,0x66,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69, + 0x6f,0x6e,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x72,0x6f, + 0x62,0x5f,0x74,0x6f,0x5f,0x72,0x65,0x66,0x6c,0x20,0x3d,0x20,0x72,0x30,0x20,0x2b, + 0x20,0x28,0x28,0x31,0x20,0x2d,0x20,0x72,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, + 0x28,0x28,0x31,0x20,0x2d,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f, + 0x69,0x29,0x2c,0x20,0x35,0x2e,0x66,0x29,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x20, + 0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x5f,0x74,0x68,0x65,0x74,0x61,0x5f, + 0x74,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x64,0x65,0x74,0x65,0x72,0x6d,0x69, + 0x6e,0x61,0x6e,0x74,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x77,0x5f,0x74,0x20,0x3d,0x20,0x28,0x6e,0x5f,0x69,0x20,0x2f, + 0x20,0x6e,0x5f,0x74,0x29,0x20,0x2a,0x20,0x77,0x5f,0x6f,0x20,0x2b,0x20,0x28,0x28, + 0x6e,0x5f,0x69,0x20,0x2f,0x20,0x6e,0x5f,0x74,0x29,0x20,0x2a,0x20,0x63,0x6f,0x73, + 0x5f,0x74,0x68,0x65,0x74,0x61,0x5f,0x69,0x20,0x2d,0x20,0x63,0x6f,0x73,0x5f,0x74, + 0x68,0x65,0x74,0x61,0x5f,0x74,0x29,0x20,0x2a,0x20,0x6e,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x20, + 0x3d,0x20,0x70,0x2e,0x7a,0x20,0x2d,0x20,0x64,0x3b,0xa,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x53,0x63, + 0x61,0x6c,0x65,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x20,0x2f,0x20,0x77,0x5f,0x74, + 0x2e,0x7a,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74, + 0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d,0x20,0x2d,0x28,0x77,0x5f,0x74,0x20,0x2a,0x20, + 0x64,0x65,0x70,0x74,0x68,0x53,0x63,0x61,0x6c,0x65,0x29,0x20,0x2b,0x20,0x70,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x67,0x72, + 0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e,0x74, + 0x20,0x3d,0x20,0x28,0x77,0x5f,0x74,0x20,0x2a,0x20,0x64,0x65,0x70,0x74,0x68,0x53, + 0x63,0x61,0x6c,0x65,0x29,0x20,0x2b,0x20,0x70,0x3b,0xa,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x67, + 0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6e,0x74,0x61,0x63,0x74,0x50,0x6f,0x69,0x6e, + 0x74,0x2c,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20,0x70,0x72,0x6f,0x62,0x5f,0x74,0x6f, + 0x5f,0x72,0x65,0x66,0x6c,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c, + 0x73,0x65,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30, + 0x2c,0x20,0x30,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x7d,0xa,0x7d,0xa,0xa,0x76, + 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x20,0x7b,0xa,0x20,0x20,0x20, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61, + 0x63,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x64,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x28,0x6e,0x6f,0x72,0x6d,0x53,0x61,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32, + 0x28,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x20,0x2f,0x20,0x32,0x29,0x29, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x4e,0x6f,0x72, + 0x6d,0x61,0x6c,0x20,0x3d,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x4e,0x6f, + 0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x32,0x2e,0x66,0x29,0x20,0x2d,0x20,0x31,0x2e, + 0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x64,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x34,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x41,0x6e,0x64,0x50,0x72, + 0x6f,0x62,0x20,0x3d,0x20,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x54,0x6f,0x46,0x6c, + 0x6f,0x6f,0x72,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x31, + 0x29,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, + 0x65,0x28,0x76,0x65,0x63,0x33,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x4e,0x6f, + 0x72,0x6d,0x61,0x6c,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x30,0x35,0x66,0x29,0x3b, + 0xa,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x33,0x28,0x6e,0x65,0x77,0x50,0x6f,0x73,0x41,0x6e,0x64,0x50,0x72,0x6f,0x62, + 0x5b,0x30,0x5d,0x2c,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x41,0x6e,0x64,0x50,0x72, + 0x6f,0x62,0x5b,0x31,0x5d,0x2c,0x20,0x30,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20, + 0x20,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x50,0x72,0x6f,0x62,0x20,0x3d,0x20,0x6e, + 0x65,0x77,0x50,0x6f,0x73,0x41,0x6e,0x64,0x50,0x72,0x6f,0x62,0x5b,0x33,0x5d,0x3b, + 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x20,0x3d,0x20, + 0x70,0x6f,0x73,0x3b,0xa,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69, + 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6e,0x65,0x77,0x50, + 0x6f,0x73,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.frag 0x0,0x0,0x0,0x82, 0x23, @@ -713,6 +842,51 @@ static const unsigned char qt_resource_data[] = { 0x72,0x3b,0xa,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43, 0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20,0x3d,0x20,0x31,0x3b,0xa,0x20,0x20,0x20,0x20, 0x7d,0xa,0x7d,0xa, + // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/caustics.frag + 0x0,0x0,0x2,0x97, + 0x23, + 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x20,0x63,0x6f,0x72,0x65, + 0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x43,0x6f, + 0x6c,0x6f,0x72,0x3b,0xa,0xa,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b, + 0xa,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x3b,0xa,0x69,0x6e, + 0x20,0x76,0x65,0x63,0x33,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x3b,0xa,0x69,0x6e, + 0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x3b,0xa,0x69,0x6e,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x72,0x65,0x66,0x72,0x61,0x63,0x74,0x50,0x72,0x6f,0x62,0x3b, + 0xa,0xa,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x32,0x44,0x20,0x6e,0x6f,0x72,0x6d,0x53,0x61,0x6d,0x70,0x3b,0xa,0xa,0x76, + 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x20,0x7b,0xa,0x2f,0x2f,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x34,0x28,0x76,0x65,0x63,0x33,0x28,0x28,0x70,0x6f,0x73,0x5b,0x30,0x5d, + 0x20,0x2b,0x20,0x31,0x29,0x20,0x2f,0x20,0x32,0x2c,0x20,0x28,0x70,0x6f,0x73,0x5b, + 0x31,0x5d,0x20,0x2b,0x20,0x31,0x29,0x20,0x2f,0x20,0x32,0x2c,0x20,0x30,0x2e,0x66, + 0x29,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x6f,0x6c,0x64,0x41,0x72,0x65,0x61,0x20,0x3d,0x20,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x28,0x64,0x46,0x64,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x70,0x6f, + 0x73,0x5b,0x30,0x5d,0x2c,0x20,0x70,0x6f,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x70,0x6f, + 0x73,0x5b,0x31,0x5d,0x29,0x29,0x29,0x20,0x2a,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68, + 0x28,0x64,0x46,0x64,0x79,0x28,0x76,0x65,0x63,0x33,0x28,0x70,0x6f,0x73,0x5b,0x30, + 0x5d,0x2c,0x20,0x70,0x6f,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x70,0x6f,0x73,0x5b,0x31, + 0x5d,0x29,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x6e,0x65,0x77,0x41,0x72,0x65,0x61,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68, + 0x28,0x64,0x46,0x64,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x6e,0x65,0x77,0x50,0x6f, + 0x73,0x5b,0x30,0x5d,0x2c,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x5b,0x32,0x5d,0x2c, + 0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x5b,0x31,0x5d,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x64,0x46,0x64,0x79,0x28,0x76,0x65,0x63,0x33, + 0x28,0x6e,0x65,0x77,0x50,0x6f,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x6e,0x65,0x77,0x50, + 0x6f,0x73,0x5b,0x32,0x5d,0x2c,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x5b,0x31,0x5d, + 0x29,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61, + 0x72,0x65,0x61,0x52,0x61,0x74,0x69,0x6f,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x41,0x72, + 0x65,0x61,0x20,0x2f,0x20,0x6e,0x65,0x77,0x41,0x72,0x65,0x61,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x20,0x3d,0x20,0x70,0x6f,0x77,0x28,0x61,0x72,0x65,0x61,0x52,0x61,0x74,0x69, + 0x6f,0x20,0x2a,0x20,0x31,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x35,0x66,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x39,0x38,0x2c,0x20,0x31,0x2c,0x20,0x2e,0x37, + 0x38,0x2c,0x20,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x2a,0x20,0x72, + 0x65,0x66,0x72,0x61,0x63,0x74,0x50,0x72,0x6f,0x62,0x29,0x3b,0xa,0x2f,0x2f,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63, + 0x6f,0x6c,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.vert 0x0,0x0,0xd,0x9a, 0x23, @@ -935,7 +1109,7 @@ static const unsigned char qt_resource_data[] = { 0x6c,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, 0x6e,0x2c,0x20,0x31,0x29,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.frag - 0x0,0x0,0x12,0xa6, + 0x0,0x0,0x13,0x0, 0x23, 0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x20,0x63,0x6f,0x72,0x65, 0xa,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x43,0x6f, @@ -1005,237 +1179,242 @@ static const unsigned char qt_resource_data[] = { 0x6f,0x69,0x6e,0x74,0x28,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x69,0x6e,0x74,0x29, 0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x75,0x20,0x3d, 0x20,0x28,0x70,0x6f,0x69,0x6e,0x74,0x2e,0x78,0x20,0x2d,0x20,0x77,0x69,0x64,0x74, - 0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29,0x20,0x2f,0x20,0x28,0x77, - 0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d,0x20,0x2d,0x20, - 0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29,0x3b, - 0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x20,0x3d,0x20,0x28, - 0x70,0x6f,0x69,0x6e,0x74,0x2e,0x7a,0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68, - 0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29,0x20,0x2f,0x20,0x28,0x6c,0x65, - 0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31,0x5d,0x20,0x2d,0x20, - 0x6c,0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63, - 0x32,0x28,0x75,0x2c,0x20,0x76,0x29,0x3b,0xa,0x7d,0xa,0xa,0x76,0x6f,0x69,0x64, - 0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f, - 0x20,0x44,0x6f,0x20,0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x20, - 0x63,0x61,0x6d,0x65,0x72,0x61,0x20,0x73,0x70,0x61,0x63,0x65,0xa,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x20,0x3d, - 0x20,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x76,0x65,0x63,0x33, - 0x28,0x31,0x2c,0x20,0x2d,0x31,0x2c,0x20,0x31,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20, - 0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x20,0x3d,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x66, - 0x2c,0x20,0x33,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x29,0x20,0x2d,0x20,0x70,0x6f, - 0x73,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x64,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x6f,0x74,0x28,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65,0x72,0x61,0x53,0x70,0x61,0x63,0x65, - 0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x29,0x2c,0x20,0x30,0x2c,0x20, - 0x31,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20, + 0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2a,0x20,0x35,0x30,0x29, + 0x20,0x2f,0x20,0x28,0x77,0x69,0x64,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b, + 0x31,0x5d,0x20,0x2a,0x20,0x35,0x30,0x20,0x2d,0x20,0x77,0x69,0x64,0x74,0x68,0x42, + 0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2a,0x20,0x35,0x30,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x20,0x3d,0x20,0x28,0x70, + 0x6f,0x69,0x6e,0x74,0x2e,0x7a,0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x42, + 0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2a,0x20,0x35,0x30,0x29,0x20,0x2f, + 0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x31, + 0x5d,0x20,0x2a,0x20,0x35,0x30,0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x42, + 0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2a,0x20,0x35,0x30,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28, + 0x75,0x2c,0x20,0x76,0x29,0x3b,0xa,0x7d,0xa,0xa,0x76,0x6f,0x69,0x64,0x20,0x6d, + 0x61,0x69,0x6e,0x28,0x29,0x20,0x7b,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44, + 0x6f,0x20,0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x20,0x63,0x61, + 0x6d,0x65,0x72,0x61,0x20,0x73,0x70,0x61,0x63,0x65,0xa,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x20,0x3d,0x20,0x2d, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x76,0x65,0x63,0x33,0x28,0x31, + 0x2c,0x20,0x2d,0x31,0x2c,0x20,0x31,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x69,0x7a,0x65,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x66,0x2c,0x20, + 0x33,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x29,0x20,0x2d,0x20,0x70,0x6f,0x73,0x29, + 0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20, 0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x2c,0x20,0x6c, - 0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x29,0x2c,0x20,0x30,0x2c,0x20,0x31,0x29,0x3b, - 0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x6c,0x65,0x63, - 0x74,0x65,0x64,0x4c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x44,0x69,0x72,0x20,0x2d,0x20,0x32,0x20,0x2a,0x20,0x64,0x6f,0x74,0x28,0x6c,0x69, - 0x67,0x68,0x74,0x44,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77, - 0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x29,0x20,0x2a,0x20,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x54,0x6f,0x43,0x61, - 0x6d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61, - 0x6d,0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x20, - 0x2d,0x20,0x70,0x6f,0x73,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x73,0x70,0x65,0x63,0x20,0x3d,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x64,0x6f,0x74,0x28,0x70,0x6f,0x73,0x54,0x6f,0x43,0x61,0x6d,0x2c, - 0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x4c,0x69,0x67,0x68,0x74,0x29, - 0x2c,0x20,0x30,0x2c,0x20,0x31,0x29,0x2c,0x20,0x32,0x2e,0x66,0x29,0x3b,0xa,0xa, - 0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64, - 0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e, - 0x35,0x66,0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x34,0x28,0x61,0x62,0x73,0x28,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2f,0x20,0x31, - 0x36,0x30,0x2e,0x66,0x29,0x2c,0x20,0x70,0x6f,0x73,0x2e,0x79,0x2c,0x20,0x30,0x2e, - 0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, - 0x75,0x76,0x2e,0x79,0x2c,0x20,0x75,0x76,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x66,0x2c, - 0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x63,0x61, - 0x6d,0x65,0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x2e, - 0x78,0x20,0x2d,0x20,0x70,0x6f,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x63,0x61,0x6d,0x65, - 0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x2e,0x79,0x20, - 0x2d,0x20,0x70,0x6f,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x70,0x6f,0x73,0x5b,0x32,0x5d, - 0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x2d, - 0x20,0x70,0x6f,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e, - 0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, - 0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x77,0x69,0x64,0x74, - 0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2c,0x20,0x6c, - 0x65,0x6e,0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29,0x29, - 0x20,0x2f,0x20,0x35,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f, + 0x61,0x6c,0x5f,0x63,0x61,0x6d,0x65,0x72,0x61,0x53,0x70,0x61,0x63,0x65,0x2c,0x20, + 0x6c,0x69,0x67,0x68,0x74,0x44,0x69,0x72,0x29,0x2c,0x20,0x30,0x2c,0x20,0x31,0x29, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x6f,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x2c,0x20,0x6c,0x69,0x67, + 0x68,0x74,0x44,0x69,0x72,0x29,0x2c,0x20,0x30,0x2c,0x20,0x31,0x29,0x3b,0xa,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x65, + 0x64,0x4c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x6c,0x69,0x67,0x68,0x74,0x44,0x69, + 0x72,0x20,0x2d,0x20,0x32,0x20,0x2a,0x20,0x64,0x6f,0x74,0x28,0x6c,0x69,0x67,0x68, + 0x74,0x44,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72, + 0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x29,0x20,0x2a,0x20,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x3b,0xa,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x6f,0x73,0x54,0x6f,0x43,0x61,0x6d,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x65, + 0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x20,0x2d,0x20, + 0x70,0x6f,0x73,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x73,0x70,0x65,0x63,0x20,0x3d,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x64,0x6f,0x74,0x28,0x70,0x6f,0x73,0x54,0x6f,0x43,0x61,0x6d,0x2c,0x20,0x72, + 0x65,0x66,0x6c,0x65,0x63,0x74,0x65,0x64,0x4c,0x69,0x67,0x68,0x74,0x29,0x2c,0x20, + 0x30,0x2c,0x20,0x31,0x29,0x2c,0x20,0x32,0x2e,0x66,0x29,0x3b,0xa,0xa,0x2f,0x2f, 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x34,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2e,0x78, - 0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72, - 0x2e,0x7a,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x66, + 0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20, 0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, - 0x28,0x74,0x65,0x73,0x74,0x2c,0x20,0x74,0x65,0x73,0x74,0x2c,0x20,0x74,0x65,0x73, - 0x74,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x32,0x20,0x72,0x65,0x66,0x72,0x55,0x56,0x20,0x3d,0x20,0x75,0x76,0x46,0x72,0x6f, - 0x6d,0x57,0x6f,0x72,0x6c,0x64,0x50,0x6f,0x69,0x6e,0x74,0x28,0x72,0x65,0x66,0x72, - 0x50,0x6f,0x73,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x72, - 0x65,0x66,0x6c,0x55,0x56,0x20,0x3d,0x20,0x75,0x76,0x46,0x72,0x6f,0x6d,0x57,0x6f, - 0x72,0x6c,0x64,0x50,0x6f,0x69,0x6e,0x74,0x28,0x72,0x65,0x66,0x6c,0x50,0x6f,0x73, - 0x29,0x3b,0xa,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d, - 0x20,0x30,0x2e,0x30,0x30,0x32,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f, - 0x3a,0x20,0x4d,0x61,0x6b,0x65,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20, + 0x28,0x61,0x62,0x73,0x28,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2f,0x20,0x31,0x36,0x30, + 0x2e,0x66,0x29,0x2c,0x20,0x70,0x6f,0x73,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x66,0x2c, + 0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x75,0x76, + 0x2e,0x79,0x2c,0x20,0x75,0x76,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31, + 0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43, + 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x63,0x61,0x6d,0x65, + 0x72,0x61,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x2e,0x78,0x20, + 0x2d,0x20,0x70,0x6f,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x63,0x61,0x6d,0x65,0x72,0x61, + 0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x2e,0x79,0x20,0x2d,0x20, + 0x70,0x6f,0x73,0x5b,0x31,0x5d,0x2c,0x20,0x70,0x6f,0x73,0x5b,0x32,0x5d,0x2c,0x20, + 0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, + 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x2d,0x20,0x70, + 0x6f,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c, + 0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x70, + 0x6f,0x73,0x20,0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x77,0x69,0x64,0x74,0x68,0x42, + 0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2c,0x20,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x42,0x6f,0x75,0x6e,0x64,0x73,0x5b,0x30,0x5d,0x29,0x29,0x20,0x2f, + 0x20,0x35,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x34,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x2c,0x20, + 0x30,0x2e,0x66,0x2c,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2e,0x7a, + 0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x74, + 0x65,0x73,0x74,0x2c,0x20,0x74,0x65,0x73,0x74,0x2c,0x20,0x74,0x65,0x73,0x74,0x2c, + 0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20, + 0x72,0x65,0x66,0x72,0x55,0x56,0x20,0x3d,0x20,0x75,0x76,0x46,0x72,0x6f,0x6d,0x57, + 0x6f,0x72,0x6c,0x64,0x50,0x6f,0x69,0x6e,0x74,0x28,0x72,0x65,0x66,0x72,0x50,0x6f, + 0x73,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x72,0x65,0x66, + 0x6c,0x55,0x56,0x20,0x3d,0x20,0x75,0x76,0x46,0x72,0x6f,0x6d,0x57,0x6f,0x72,0x6c, + 0x64,0x50,0x6f,0x69,0x6e,0x74,0x28,0x72,0x65,0x66,0x6c,0x50,0x6f,0x73,0x29,0x3b, + 0xa,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x61, + 0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30, + 0x2e,0x30,0x30,0x32,0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20, + 0x4d,0x61,0x6b,0x65,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x2f,0x2f,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75, 0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x30,0x30,0x35, 0x66,0x3b,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x4d,0x61,0x6b,0x65, - 0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x72,0x65,0x64,0x20,0x2a,0x20, - 0x30,0x2e,0x31,0x66,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20,0x2a,0x20,0x30,0x2e, - 0x32,0x66,0x2c,0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20,0x30,0x2e,0x32,0x66,0x29, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x72,0x6b, - 0x44,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x3d,0x20,0x30,0x2e,0x33,0x66,0x3b,0xa, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x72,0x6b,0x41,0x6d, - 0x62,0x69,0x65,0x6e,0x74,0x20,0x3d,0x20,0x30,0x2e,0x38,0x66,0x3b,0xa,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x20, - 0x3d,0x20,0x65,0x78,0x70,0x28,0x2d,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x28,0x70, - 0x6f,0x73,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x6f,0x73,0x29,0x29,0x20,0x2a, - 0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x29, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x58,0x50,0x4c,0x41,0x4e,0x41, - 0x54,0x49,0x4f,0x4e,0x3a,0x20,0x57,0x48,0x45,0x4e,0x20,0x54,0x48,0x45,0x20,0x57, - 0x41,0x54,0x45,0x52,0x20,0x49,0x53,0x20,0x4e,0x4f,0x54,0x20,0x50,0x45,0x52,0x46, - 0x45,0x43,0x54,0x4c,0x59,0x20,0x43,0x4c,0x45,0x41,0x52,0x2c,0x20,0x49,0x54,0x20, - 0x57,0x49,0x4c,0x4c,0x20,0x48,0x41,0x56,0x45,0x20,0x53,0x54,0x55,0x46,0x46,0x20, - 0x53,0x43,0x41,0x54,0x54,0x45,0x52,0x49,0x4e,0x47,0x20,0x4c,0x49,0x47,0x48,0x54, - 0x20,0x55,0x4e,0x44,0x45,0x52,0x4e,0x45,0x41,0x54,0x48,0x20,0x54,0x48,0x45,0x20, - 0x53,0x55,0x52,0x46,0x41,0x43,0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53, - 0x4f,0x4d,0x45,0x20,0x4f,0x46,0x20,0x49,0x54,0x20,0x57,0x49,0x4c,0x4c,0x20,0x42, - 0x45,0x20,0x44,0x49,0x46,0x46,0x55,0x53,0x45,0x4c,0x59,0x20,0x4c,0x49,0x54,0x2c, - 0x20,0x42,0x55,0x54,0x20,0x54,0x48,0x45,0x52,0x45,0x20,0x57,0x49,0x4c,0x4c,0x20, - 0x42,0x45,0x20,0x53,0x55,0x42,0x53,0x55,0x52,0x46,0x41,0x43,0x45,0x20,0x53,0x43, - 0x41,0x54,0x54,0x45,0x52,0x49,0x4e,0x47,0x2c,0x20,0x45,0x53,0x54,0x49,0x4d,0x41, - 0x54,0x45,0x44,0x20,0x42,0x59,0x20,0x54,0x48,0x45,0x20,0x41,0x4d,0x42,0x49,0x45, - 0x4e,0x54,0x20,0x54,0x45,0x52,0x4d,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x34,0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, - 0x28,0x72,0x65,0x64,0x20,0x2a,0x20,0x64,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20, - 0x2a,0x20,0x64,0x2c,0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20,0x64,0x2c,0x20,0x31, - 0x2e,0x30,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x73, - 0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x31, - 0x2c,0x20,0x31,0x2c,0x20,0x31,0x2c,0x20,0x31,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, - 0x28,0x73,0x70,0x65,0x63,0x2c,0x20,0x31,0x30,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d,0x69, - 0x73,0x73,0x69,0x76,0x65,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x65,0x63, - 0x33,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x2c,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20, - 0x72,0x65,0x66,0x72,0x55,0x56,0x2e,0x79,0x29,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b, - 0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x61,0x74,0x65,0x72, - 0x42,0x6c,0x75,0x72,0x72,0x69,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x66, - 0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x72,0x65,0x66,0x72,0x55, - 0x56,0x42,0x6c,0x75,0x72,0x72,0x79,0x20,0x3d,0x20,0x28,0x31,0x20,0x2d,0x20,0x62, - 0x65,0x65,0x72,0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x72, - 0x61,0x6e,0x64,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x29,0x2c,0x20,0x72,0x61,0x6e, - 0x64,0x28,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x73,0x2c,0x20,0x64,0x29,0x29,0x29, - 0x20,0x2a,0x20,0x77,0x61,0x74,0x65,0x72,0x42,0x6c,0x75,0x72,0x72,0x69,0x6e,0x65, - 0x73,0x73,0x20,0x2b,0x20,0x72,0x65,0x66,0x72,0x55,0x56,0x3b,0xa,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69, - 0x76,0x65,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72,0x6f, - 0x75,0x6e,0x64,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32, - 0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x42,0x6c,0x75,0x72,0x72,0x79,0x29,0x29,0x3b, - 0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x6d,0x75,0x72,0x6b,0x20,0x3d, - 0x20,0x28,0x76,0x65,0x63,0x34,0x28,0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75, - 0x6d,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x64,0x20,0x2a,0x20,0x6d,0x75, - 0x72,0x6b,0x44,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x2b,0x20,0x77,0x61,0x74,0x65, - 0x72,0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d, - 0x75,0x72,0x6b,0x41,0x6d,0x62,0x69,0x65,0x6e,0x74,0x2c,0x20,0x31,0x2e,0x30,0x66, - 0x29,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x6b, - 0x79,0x52,0x65,0x66,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x73,0x6b,0x79,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32, - 0x28,0x72,0x65,0x66,0x6c,0x55,0x56,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20, - 0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x3d,0x20,0x62,0x65,0x65, - 0x72,0x41,0x74,0x74,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43, - 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x30,0x2e,0x37,0x35,0x66,0x20,0x2a,0x20,0x64, - 0x69,0x66,0x66,0x75,0x73,0x65,0x3b,0x20,0x2f,0x2f,0x20,0x44,0x69,0x66,0x66,0x75, - 0x73,0x65,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20, - 0x30,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, - 0x2e,0x39,0x66,0x2c,0x31,0x2e,0x66,0x2c,0x31,0x2e,0x66,0x2c,0x30,0x29,0x3b,0xa, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x64,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x20, - 0x67,0x72,0x65,0x65,0x6e,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x20,0x62,0x6c,0x75, - 0x65,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b,0x3d,0x20,0x31, - 0x2e,0x66,0x20,0x2a,0x20,0x73,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x3b,0x20,0x2f, - 0x2f,0x20,0x53,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x20,0x54,0x4f,0x44,0x4f,0x3a, - 0x20,0x50,0x61,0x73,0x73,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x63,0x61, - 0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x73,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, - 0x73,0x2e,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72, + 0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x77,0x61,0x74,0x65,0x72,0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73, + 0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x30,0x30,0x35,0x66,0x3b,0x20,0x2f,0x2f,0x20, + 0x54,0x4f,0x44,0x4f,0x3a,0x20,0x4d,0x61,0x6b,0x65,0x20,0x75,0x6e,0x69,0x66,0x6f, + 0x72,0x6d,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x77,0x61,0x74,0x65, + 0x72,0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x33,0x28,0x72,0x65,0x64,0x20,0x2a,0x20,0x30,0x2e,0x31,0x66,0x2c,0x20, + 0x67,0x72,0x65,0x65,0x6e,0x20,0x2a,0x20,0x30,0x2e,0x32,0x66,0x2c,0x20,0x62,0x6c, + 0x75,0x65,0x20,0x2a,0x20,0x30,0x2e,0x32,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x75,0x72,0x6b,0x44,0x69,0x66,0x66,0x75,0x73, + 0x65,0x20,0x3d,0x20,0x30,0x2e,0x33,0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x6d,0x75,0x72,0x6b,0x41,0x6d,0x62,0x69,0x65,0x6e,0x74,0x20, + 0x3d,0x20,0x30,0x2e,0x38,0x66,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x20,0x3d,0x20,0x65,0x78,0x70,0x28, + 0x2d,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x72, + 0x65,0x66,0x72,0x50,0x6f,0x73,0x29,0x29,0x20,0x2a,0x20,0x77,0x61,0x74,0x65,0x72, + 0x4d,0x75,0x72,0x6b,0x69,0x6e,0x65,0x73,0x73,0x29,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x2f,0x2f,0x20,0x45,0x58,0x50,0x4c,0x41,0x4e,0x41,0x54,0x49,0x4f,0x4e,0x3a,0x20, + 0x57,0x48,0x45,0x4e,0x20,0x54,0x48,0x45,0x20,0x57,0x41,0x54,0x45,0x52,0x20,0x49, + 0x53,0x20,0x4e,0x4f,0x54,0x20,0x50,0x45,0x52,0x46,0x45,0x43,0x54,0x4c,0x59,0x20, + 0x43,0x4c,0x45,0x41,0x52,0x2c,0x20,0x49,0x54,0x20,0x57,0x49,0x4c,0x4c,0x20,0x48, + 0x41,0x56,0x45,0x20,0x53,0x54,0x55,0x46,0x46,0x20,0x53,0x43,0x41,0x54,0x54,0x45, + 0x52,0x49,0x4e,0x47,0x20,0x4c,0x49,0x47,0x48,0x54,0x20,0x55,0x4e,0x44,0x45,0x52, + 0x4e,0x45,0x41,0x54,0x48,0x20,0x54,0x48,0x45,0x20,0x53,0x55,0x52,0x46,0x41,0x43, + 0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x4f,0x4d,0x45,0x20,0x4f,0x46, + 0x20,0x49,0x54,0x20,0x57,0x49,0x4c,0x4c,0x20,0x42,0x45,0x20,0x44,0x49,0x46,0x46, + 0x55,0x53,0x45,0x4c,0x59,0x20,0x4c,0x49,0x54,0x2c,0x20,0x42,0x55,0x54,0x20,0x54, + 0x48,0x45,0x52,0x45,0x20,0x57,0x49,0x4c,0x4c,0x20,0x42,0x45,0x20,0x53,0x55,0x42, + 0x53,0x55,0x52,0x46,0x41,0x43,0x45,0x20,0x53,0x43,0x41,0x54,0x54,0x45,0x52,0x49, + 0x4e,0x47,0x2c,0x20,0x45,0x53,0x54,0x49,0x4d,0x41,0x54,0x45,0x44,0x20,0x42,0x59, + 0x20,0x54,0x48,0x45,0x20,0x41,0x4d,0x42,0x49,0x45,0x4e,0x54,0x20,0x54,0x45,0x52, + 0x4d,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x64,0x69,0x66,0x66, + 0x75,0x73,0x65,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x64,0x20,0x2a, + 0x20,0x64,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20,0x2a,0x20,0x64,0x2c,0x20,0x62, + 0x6c,0x75,0x65,0x20,0x2a,0x20,0x64,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0xa, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x70,0x65,0x63,0x75,0x6c,0x61, + 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x31,0x2c,0x20,0x31,0x2c,0x20,0x31, + 0x2c,0x20,0x31,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x73,0x70,0x65,0x63,0x2c, + 0x20,0x31,0x30,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x34,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x65,0x63,0x33,0x28,0x72,0x65,0x66,0x72, + 0x55,0x56,0x2c,0x20,0x31,0x2e,0x66,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x55,0x56, + 0x2e,0x79,0x29,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x77,0x61,0x74,0x65,0x72,0x42,0x6c,0x75,0x72,0x72,0x69, + 0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x66,0x3b,0xa,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x32,0x20,0x72,0x65,0x66,0x72,0x55,0x56,0x42,0x6c,0x75,0x72,0x72, + 0x79,0x20,0x3d,0x20,0x28,0x31,0x20,0x2d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74, + 0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x72,0x61,0x6e,0x64,0x28,0x72,0x65, + 0x66,0x72,0x55,0x56,0x29,0x2c,0x20,0x72,0x61,0x6e,0x64,0x28,0x76,0x65,0x63,0x34, + 0x28,0x70,0x6f,0x73,0x2c,0x20,0x64,0x29,0x29,0x29,0x20,0x2a,0x20,0x77,0x61,0x74, + 0x65,0x72,0x42,0x6c,0x75,0x72,0x72,0x69,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x72, + 0x65,0x66,0x72,0x55,0x56,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, + 0x74,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20,0x3d,0x20,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x72,0x65,0x66,0x72,0x55, + 0x56,0x42,0x6c,0x75,0x72,0x72,0x79,0x29,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x6d,0x75,0x72,0x6b,0x20,0x3d,0x20,0x28,0x76,0x65,0x63,0x34, + 0x28,0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75,0x6d,0x65,0x43,0x6f,0x6c,0x6f, + 0x72,0x20,0x2a,0x20,0x64,0x20,0x2a,0x20,0x6d,0x75,0x72,0x6b,0x44,0x69,0x66,0x66, + 0x75,0x73,0x65,0x20,0x2b,0x20,0x77,0x61,0x74,0x65,0x72,0x56,0x6f,0x6c,0x75,0x6d, + 0x65,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x75,0x72,0x6b,0x41,0x6d,0x62, + 0x69,0x65,0x6e,0x74,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0xa,0xa,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x6b,0x79,0x52,0x65,0x66,0x6c,0x20, + 0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x6b,0x79,0x53,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x72,0x65,0x66,0x6c,0x55, + 0x56,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x50, + 0x72,0x6f,0x62,0x20,0x2a,0x3d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x3b,0xa, + 0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d, + 0x20,0x30,0x2e,0x37,0x35,0x66,0x20,0x2a,0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65, + 0x3b,0x20,0x2f,0x2f,0x20,0x44,0x69,0x66,0x66,0x75,0x73,0x65,0xa,0x2f,0x2f,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x34,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x31,0x2e,0x66, + 0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x2e,0x39,0x66,0x2c,0x31,0x2e, + 0x66,0x2c,0x31,0x2e,0x66,0x2c,0x30,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x72, + 0x65,0x64,0x20,0x2a,0x20,0x2e,0x32,0x66,0x2c,0x20,0x67,0x72,0x65,0x65,0x6e,0x20, + 0x2a,0x20,0x2e,0x32,0x66,0x2c,0x20,0x62,0x6c,0x75,0x65,0x20,0x2a,0x20,0x2e,0x32, + 0x66,0x2c,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, + 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b,0x3d,0x20,0x31,0x2e,0x66,0x20,0x2a,0x20,0x73, + 0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x3b,0x20,0x2f,0x2f,0x20,0x53,0x70,0x65,0x63, + 0x75,0x6c,0x61,0x72,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x50,0x61,0x73,0x73,0x20, + 0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20, + 0x61,0x73,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x2e,0xa,0x20,0x20,0x20, + 0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x30,0x2e, + 0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x61,0x6d, + 0x70,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20, + 0x2b,0x3d,0x20,0x30,0x2e,0x33,0x66,0x20,0x2a,0x20,0x73,0x6b,0x79,0x52,0x65,0x66, + 0x6c,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72, 0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, 0x6f,0x72,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0x20,0x2f, - 0x2f,0x20,0x43,0x6c,0x61,0x6d,0x70,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, - 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b,0x3d,0x20,0x30,0x2e,0x33,0x66,0x20,0x2a,0x20, - 0x73,0x6b,0x79,0x52,0x65,0x66,0x6c,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x66, - 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31, - 0x2e,0x66,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x61,0x6d,0x70,0xa,0xa,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x3d,0x20, - 0x20,0x28,0x28,0x31,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x29, - 0x20,0x2f,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x34,0x20,0x76,0x6f,0x6c,0x75,0x6d,0x65,0x74,0x72,0x69,0x63,0x20,0x3d,0x20, - 0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x20,0x2a,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d, - 0x69,0x73,0x73,0x69,0x76,0x65,0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x6f,0x6c,0x75, - 0x6d,0x65,0x74,0x72,0x69,0x63,0x20,0x2b,0x3d,0x20,0x28,0x31,0x20,0x2d,0x20,0x62, - 0x65,0x65,0x72,0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x6d,0x75,0x72,0x6b,0x3b,0xa, - 0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b, - 0x3d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x20,0x76,0x6f,0x6c, - 0x75,0x6d,0x65,0x74,0x72,0x69,0x63,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73, - 0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20,0x2a,0x20,0x72,0x65,0x66,0x72,0x50,0x72, - 0x6f,0x62,0x3b,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f, - 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x65,0x63,0x33,0x28,0x66,0x72, - 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa, - 0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x76,0x69,0x64,0x69,0x6e,0x67,0x20, - 0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x62,0x79,0x20,0x32,0x20,0x6a,0x75, - 0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x68,0x65,0x75,0x72,0x69,0x73,0x74,0x69,0x63, - 0x2e,0x20,0x57,0x61,0x6e,0x74,0x20,0x6d,0x6f,0x72,0x65,0x20,0x70,0x68,0x6f,0x6e, - 0x67,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x72,0x6f,0x75,0x67, - 0x68,0x2e,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x66,0x72,0x61,0x67,0x43, - 0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b, - 0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62, - 0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29, - 0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20, - 0x41,0x43,0x54,0x55,0x41,0x4c,0x20,0x4c,0x49,0x47,0x48,0x54,0x49,0x4e,0x47,0x20, - 0x4d,0x4f,0x44,0x45,0x4c,0x20,0x53,0x48,0x4f,0x55,0x4c,0x44,0x20,0x42,0x45,0x20, - 0x53,0x4f,0x4d,0x45,0x54,0x48,0x49,0x4e,0x47,0x20,0x4c,0x49,0x4b,0x45,0xa,0x20, - 0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x45,0x4c,0x4f,0x43,0x49,0x54,0x59,0x20,0x2a, - 0x20,0x44,0x49,0x46,0x46,0x55,0x53,0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20, - 0x28,0x31,0x20,0x2d,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x29,0x20,0x2a, - 0x20,0x53,0x50,0x45,0x43,0x55,0x4c,0x41,0x52,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f, - 0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x20,0x2a,0x20,0x28,0x42,0x45,0x45, - 0x52,0x20,0x2a,0x20,0x54,0x52,0x41,0x4e,0x53,0x4d,0x49,0x53,0x53,0x49,0x56,0x45, - 0x20,0x2b,0x20,0x28,0x31,0x20,0x2d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x29, - 0x20,0x2a,0x20,0x56,0x4f,0x4c,0x55,0x4d,0x45,0x20,0x28,0x77,0x68,0x69,0x63,0x68, - 0x20,0x69,0x73,0x20,0x73,0x6f,0x6d,0x65,0x77,0x68,0x61,0x74,0x20,0x64,0x69,0x66, - 0x66,0x75,0x73,0x65,0x20,0x74,0x6f,0x6f,0x3f,0x29,0x29,0xa,0x20,0x20,0x20,0x20, - 0x2f,0x2f,0x20,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20, - 0x73,0x68,0x6f,0x75,0x6c,0x64,0x6e,0x27,0x74,0x20,0x6a,0x75,0x73,0x74,0x20,0x67, - 0x65,0x74,0x20,0x64,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x62,0x75,0x74,0x20,0x62, - 0x6c,0x75,0x72,0x72,0x69,0x65,0x72,0x20,0x61,0x73,0x20,0x62,0x65,0x65,0x72,0x20, - 0x61,0x74,0x74,0x65,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x77,0x65, - 0x72,0x73,0x2e,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72, - 0x6f,0x75,0x6e,0x64,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63, - 0x32,0x28,0x72,0x65,0x66,0x72,0x55,0x56,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20, + 0x2f,0x20,0x43,0x6c,0x61,0x6d,0x70,0xa,0xa,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x3d,0x20,0x20,0x28,0x28,0x31,0x20,0x2d, + 0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x29,0x20,0x2f,0x20,0x31,0x2e,0x66, + 0x29,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x6f,0x6c, + 0x75,0x6d,0x65,0x74,0x72,0x69,0x63,0x20,0x3d,0x20,0x62,0x65,0x65,0x72,0x41,0x74, + 0x74,0x20,0x2a,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65, + 0x3b,0xa,0x20,0x20,0x20,0x20,0x76,0x6f,0x6c,0x75,0x6d,0x65,0x74,0x72,0x69,0x63, + 0x20,0x2b,0x3d,0x20,0x28,0x31,0x20,0x2d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74, + 0x29,0x20,0x2a,0x20,0x6d,0x75,0x72,0x6b,0x3b,0xa,0xa,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2b,0x3d,0x20,0x72,0x65,0x66,0x72, + 0x50,0x72,0x6f,0x62,0x20,0x2a,0x20,0x76,0x6f,0x6c,0x75,0x6d,0x65,0x74,0x72,0x69, + 0x63,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76, + 0x65,0x20,0x2a,0x20,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x3b,0xa,0x20,0x20, 0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x34,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53, - 0x70,0x61,0x63,0x65,0x5b,0x30,0x5d,0x2c,0x20,0x30,0x2c,0x20,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x5b,0x31,0x5d, - 0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x75,0x73, - 0x65,0x3b,0xa,0x7d,0xa, + 0x63,0x34,0x28,0x76,0x65,0x63,0x33,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f, + 0x72,0x29,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f, + 0x20,0x44,0x69,0x76,0x69,0x64,0x69,0x6e,0x67,0x20,0x72,0x65,0x66,0x72,0x50,0x72, + 0x6f,0x62,0x20,0x62,0x79,0x20,0x32,0x20,0x6a,0x75,0x73,0x74,0x20,0x66,0x6f,0x72, + 0x20,0x68,0x65,0x75,0x72,0x69,0x73,0x74,0x69,0x63,0x2e,0x20,0x57,0x61,0x6e,0x74, + 0x20,0x6d,0x6f,0x72,0x65,0x20,0x70,0x68,0x6f,0x6e,0x67,0x20,0x74,0x6f,0x20,0x73, + 0x68,0x6f,0x77,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x2e,0xa,0x2f,0x2f,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20, + 0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20, + 0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63, + 0x34,0x28,0x72,0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x2c,0x20,0x30,0x2e,0x66,0x2c, + 0x20,0x30,0x2e,0x66,0x2c,0x20,0x31,0x2e,0x66,0x29,0x3b,0xa,0xa,0x20,0x20,0x20, + 0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x41,0x43,0x54,0x55,0x41,0x4c, + 0x20,0x4c,0x49,0x47,0x48,0x54,0x49,0x4e,0x47,0x20,0x4d,0x4f,0x44,0x45,0x4c,0x20, + 0x53,0x48,0x4f,0x55,0x4c,0x44,0x20,0x42,0x45,0x20,0x53,0x4f,0x4d,0x45,0x54,0x48, + 0x49,0x4e,0x47,0x20,0x4c,0x49,0x4b,0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20, + 0x56,0x45,0x4c,0x4f,0x43,0x49,0x54,0x59,0x20,0x2a,0x20,0x44,0x49,0x46,0x46,0x55, + 0x53,0x45,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x31,0x20,0x2d,0x20,0x72, + 0x65,0x66,0x72,0x50,0x72,0x6f,0x62,0x29,0x20,0x2a,0x20,0x53,0x50,0x45,0x43,0x55, + 0x4c,0x41,0x52,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x66,0x72,0x50, + 0x72,0x6f,0x62,0x20,0x2a,0x20,0x28,0x42,0x45,0x45,0x52,0x20,0x2a,0x20,0x54,0x52, + 0x41,0x4e,0x53,0x4d,0x49,0x53,0x53,0x49,0x56,0x45,0x20,0x2b,0x20,0x28,0x31,0x20, + 0x2d,0x20,0x62,0x65,0x65,0x72,0x41,0x74,0x74,0x29,0x20,0x2a,0x20,0x56,0x4f,0x4c, + 0x55,0x4d,0x45,0x20,0x28,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x73,0x6f, + 0x6d,0x65,0x77,0x68,0x61,0x74,0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x20,0x74, + 0x6f,0x6f,0x3f,0x29,0x29,0xa,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x61, + 0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64, + 0x6e,0x27,0x74,0x20,0x6a,0x75,0x73,0x74,0x20,0x67,0x65,0x74,0x20,0x64,0x61,0x72, + 0x6b,0x65,0x72,0x2c,0x20,0x62,0x75,0x74,0x20,0x62,0x6c,0x75,0x72,0x72,0x69,0x65, + 0x72,0x20,0x61,0x73,0x20,0x62,0x65,0x65,0x72,0x20,0x61,0x74,0x74,0x65,0x6e,0x75, + 0x61,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x77,0x65,0x72,0x73,0x2e,0xa,0x2f,0x2f, + 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x72,0x65,0x66,0x72, + 0x55,0x56,0x29,0x29,0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, + 0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x5b,0x30, + 0x5d,0x2c,0x20,0x30,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x77,0x6f,0x72, + 0x6c,0x64,0x53,0x70,0x61,0x63,0x65,0x5b,0x31,0x5d,0x2c,0x20,0x31,0x2e,0x66,0x29, + 0x3b,0xa,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x43,0x6f,0x6c,0x6f, + 0x72,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x3b,0xa,0x7d,0xa, // /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_bk.png 0x0,0x5,0x16,0x26, 0x89, @@ -688588,6 +688767,11 @@ static const unsigned char qt_resource_name[] = { 0x8,0x4,0x2,0xd7, 0x0,0x66, 0x0,0x6f,0x0,0x61,0x0,0x6d,0x0,0x2e,0x0,0x66,0x0,0x72,0x0,0x61,0x0,0x67, + // caustics.vert + 0x0,0xd, + 0x9,0x7c,0x98,0xd4, + 0x0,0x63, + 0x0,0x61,0x0,0x75,0x0,0x73,0x0,0x74,0x0,0x69,0x0,0x63,0x0,0x73,0x0,0x2e,0x0,0x76,0x0,0x65,0x0,0x72,0x0,0x74, // anchorPoint.frag 0x0,0x10, 0xb,0xa0,0x21,0x97, @@ -688613,6 +688797,11 @@ static const unsigned char qt_resource_name[] = { 0x7,0x5d,0x2f,0xf7, 0x0,0x74, 0x0,0x65,0x0,0x78,0x0,0x74,0x0,0x75,0x0,0x72,0x0,0x65,0x0,0x2e,0x0,0x66,0x0,0x72,0x0,0x61,0x0,0x67, + // caustics.frag + 0x0,0xd, + 0x9,0x7d,0x8c,0x37, + 0x0,0x63, + 0x0,0x61,0x0,0x75,0x0,0x73,0x0,0x74,0x0,0x69,0x0,0x63,0x0,0x73,0x0,0x2e,0x0,0x66,0x0,0x72,0x0,0x61,0x0,0x67, // shader.vert 0x0,0xb, 0xc,0xa6,0x3,0xd4, @@ -688721,100 +688910,106 @@ static const unsigned char qt_resource_struct[] = { 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, // :/resources/images - 0x0,0x0,0x0,0x18,0x0,0x2,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x11, + 0x0,0x0,0x0,0x18,0x0,0x2,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x13, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, // :/resources/shaders - 0x0,0x0,0x0,0x2a,0x0,0x2,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0x4, + 0x0,0x0,0x0,0x2a,0x0,0x2,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x4, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, // :/resources/shaders/skybox.frag - 0x0,0x0,0x1,0x28,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x24,0x6e, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xf1, + 0x0,0x0,0x1,0x48,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x2c,0x4e, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd7,0x2a, // :/resources/shaders/skybox.vert - 0x0,0x0,0x0,0x8a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x18,0x46, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xf1, + 0x0,0x0,0x0,0x8a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x18,0xa7, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd7,0x2a, // :/resources/shaders/color.vert 0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x7f,0x39, +0x0,0x0,0x1,0x8f,0x60,0xd7,0xa9,0x6b, // :/resources/shaders/color.frag - 0x0,0x0,0x0,0x70,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x13,0x2, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x7f,0x37, + 0x0,0x0,0x0,0x70,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x13,0x2b, +0x0,0x0,0x1,0x8f,0x60,0xd7,0xa9,0x6b, // :/resources/shaders/texture.vert - 0x0,0x0,0x0,0xa6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1a,0x58, + 0x0,0x0,0x0,0xa6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1a,0xb9, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xf1, // :/resources/shaders/texture.frag - 0x0,0x0,0x1,0x6a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x27,0xcc, + 0x0,0x0,0x1,0x8a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x2f,0xac, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xf1, // :/resources/shaders/foam.frag - 0x0,0x0,0x0,0xc4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1b,0xe4, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xf0, + 0x0,0x0,0x0,0xc4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1c,0x45, +0x0,0x0,0x1,0x8f,0x60,0xfc,0x68,0x40, // :/resources/shaders/foam.vert - 0x0,0x0,0x0,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xc,0xf6, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xf0, + 0x0,0x0,0x0,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xd,0x1f, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd7,0x2a, + // :/resources/shaders/caustics.vert + 0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x21,0x45, +0x0,0x0,0x1,0x8f,0x60,0xd7,0xc6,0x24, + // :/resources/shaders/caustics.frag + 0x0,0x0,0x1,0xa8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x31,0xd5, +0x0,0x0,0x1,0x8f,0x60,0xd7,0xc6,0x24, // :/resources/shaders/anchorPoint.frag - 0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x20,0xb6, + 0x0,0x0,0x0,0xfc,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x28,0x96, 0x0,0x0,0x1,0x8e,0xa4,0xf3,0xf5,0x48, // :/resources/shaders/anchorPoint.geom - 0x0,0x0,0x1,0x2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x21,0x3c, + 0x0,0x0,0x1,0x22,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x29,0x1c, 0x0,0x0,0x1,0x8f,0xd,0xe3,0x6f,0xf0, // :/resources/shaders/anchorPoint.vert - 0x0,0x0,0x1,0x44,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x26,0x78, + 0x0,0x0,0x1,0x64,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x2e,0x58, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xef, // :/resources/shaders/shader.vert - 0x0,0x0,0x1,0x88,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x29,0xf5, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x7f,0x3a, + 0x0,0x0,0x1,0xc8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x34,0x70, +0x0,0x0,0x1,0x8f,0x60,0xec,0xcd,0x60, // :/resources/shaders/shader.frag - 0x0,0x0,0x1,0xa4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x37,0x93, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x7f,0x39, + 0x0,0x0,0x1,0xe4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x42,0xe, +0x0,0x0,0x1,0x8f,0x60,0xf2,0x1d,0xc5, // :/resources/images/cupertin-lake_dn.png - 0x0,0x0,0x2,0xec,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x83,0x82,0xa9, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x91, + 0x0,0x0,0x3,0x2c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x83,0x8d,0x7e, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd6,0xfa, // :/resources/images/cupertin-lake_bk.png - 0x0,0x0,0x1,0xc0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x4a,0x3d, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x90, + 0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x55,0x12, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd6,0xf9, // :/resources/images/cupertin-lake_ft.png - 0x0,0x0,0x3,0x3a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x88,0x61,0xbf, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x92, + 0x0,0x0,0x3,0x7a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x88,0x6c,0x94, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd6,0xfc, // :/resources/images/cupertin-lake_lf.png - 0x0,0x0,0x2,0x60,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x23,0xe6,0xac, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x93, + 0x0,0x0,0x2,0xa0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x23,0xf1,0x81, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd6,0xfc, // :/resources/images/caustic_sample.jpg - 0x0,0x0,0x2,0x1c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xa,0x17,0xd3, + 0x0,0x0,0x2,0x5c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xa,0x22,0xa8, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x8f, // :/resources/images/cupertin-lake_rt.png - 0x0,0x0,0x1,0xee,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x5,0x60,0x67, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x94, + 0x0,0x0,0x2,0x2e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x5,0x6b,0x3c, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd6,0xfd, // :/resources/images/cupertin-lake_up.png - 0x0,0x0,0x3,0x68,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x8d,0x93,0x93, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x94, + 0x0,0x0,0x3,0xa8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x8d,0x9e,0x68, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd6,0xfd, // :/resources/images/hello.png - 0x0,0x0,0x2,0xd4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7c,0x79,0x4b, + 0x0,0x0,0x3,0x14,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7c,0x84,0x20, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xe6, // :/resources/images/anamorphic.jpg - 0x0,0x0,0x3,0x96,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x91,0xdc,0x3f, + 0x0,0x0,0x3,0xd6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x91,0xe7,0x14, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x8e, // :/resources/images/foam3.png - 0x0,0x0,0x2,0xa8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x3e,0xb4,0x7c, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xaa, + 0x0,0x0,0x2,0xe8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x3e,0xbf,0x51, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd7,0x2, // :/resources/images/kitten.png - 0x0,0x0,0x2,0x46,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xb,0x6d,0x8c, + 0x0,0x0,0x2,0x86,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xb,0x78,0x61, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xea, // :/resources/images/halftone.png - 0x0,0x0,0x3,0xda,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xa1,0x62,0xec, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xe5, + 0x0,0x0,0x4,0x1a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xa1,0x6d,0xc1, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd7,0x29, // :/resources/images/halftone.png - 0x0,0x0,0x3,0xda,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xa4,0xbb,0x14, -0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xe5, + 0x0,0x0,0x4,0x1a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0xa4,0xc5,0xe9, +0x0,0x0,0x1,0x8f,0x60,0x13,0xd7,0x29, // :/resources/images/uv1.png - 0x0,0x0,0x2,0xc0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7b,0xbd,0xb3, + 0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x7b,0xc8,0x88, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xee, // :/resources/images/sky_clouds.png - 0x0,0x0,0x3,0xb8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x92,0x51,0x41, + 0x0,0x0,0x3,0xf8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x92,0x5c,0x16, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xed, // :/resources/images/daniel.jpg - 0x0,0x0,0x2,0x8e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x28,0xf1,0xe7, + 0x0,0x0,0x2,0xce,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x28,0xfc,0xbc, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0x9b, // :/resources/images/sand_text.jpg - 0x0,0x0,0x3,0x1a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x88,0x7,0x4d, + 0x0,0x0,0x3,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x88,0x12,0x22, 0x0,0x0,0x1,0x8f,0x5f,0xb8,0x2b,0xea, }; diff --git a/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt b/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt index 997b05f..da9275a 100644 --- a/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt +++ b/cmake-build-debug/CMakeFiles/ocean_autogen.dir/ParseCache.txt @@ -1,16 +1,14 @@ # Generated by CMake. Changes will be overwritten. /Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shape.h -/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/meshloader.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/meshloader.h +/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/meshloader.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/arap.h /Users/sotech117/Documents/final/adv/ocean-simulation/src/arap.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/main.cpp -/Users/sotech117/Documents/final/adv/ocean-simulation/src/ocean/halftone.cpp -/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shader.h /Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/camera.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/ocean/ocean.h -/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shape.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/skybox.cpp +/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shape.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/glwidget.h mmc:Q_OBJECT mdp:/Users/sotech117/Documents/final/adv/ocean-simulation/src/glwidget.h @@ -1398,6 +1396,8 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qwidget.h /Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/camera.h /Users/sotech117/Documents/final/adv/ocean-simulation/util/tiny_obj_loader.h +/Users/sotech117/Documents/final/adv/ocean-simulation/src/graphics/shader.h +/Users/sotech117/Documents/final/adv/ocean-simulation/src/ocean/halftone.cpp /Users/sotech117/Documents/final/adv/ocean-simulation/src/skybox.h /Users/sotech117/Documents/final/adv/ocean-simulation/src/mainwindow.h mmc:Q_OBJECT diff --git a/cmake-build-debug/Testing/Temporary/LastTest.log b/cmake-build-debug/Testing/Temporary/LastTest.log index 713f100..7e0b29b 100644 --- a/cmake-build-debug/Testing/Temporary/LastTest.log +++ b/cmake-build-debug/Testing/Temporary/LastTest.log @@ -1,3 +1,3 @@ -Start testing: May 09 20:05 EDT +Start testing: May 10 01:33 EDT ---------------------------------------------------------- -End testing: May 09 20:05 EDT +End testing: May 10 01:33 EDT diff --git a/cmake-build-debug/build.ninja b/cmake-build-debug/build.ninja index ad268b9..3eee179 100644 --- a/cmake-build-debug/build.ninja +++ b/cmake-build-debug/build.ninja @@ -284,7 +284,7 @@ build StaticGLEW_autogen: phony CMakeFiles/StaticGLEW_autogen StaticGLEW_autogen ############################################# # Custom command for .rcc/qrc_Resources.cpp -build .rcc/qrc_Resources.cpp | ${cmake_ninja_workdir}.rcc/qrc_Resources.cpp: CUSTOM_COMMAND /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/uv1.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/kitten.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/hello.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sand_text.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/caustic_sample.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/anamorphic.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/daniel.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sky_clouds.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/halftone.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.geom /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/foam.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/foam.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/skybox.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/skybox.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_rt.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_lf.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_up.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_dn.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_bk.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_ft.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/halftone.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/foam3.png .rcc/Resources.qrc /Users/sotech117/Qt/6.5.2/macos/./libexec/rcc || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a ocean_autogen ocean_autogen_timestamp_deps +build .rcc/qrc_Resources.cpp | ${cmake_ninja_workdir}.rcc/qrc_Resources.cpp: CUSTOM_COMMAND /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/uv1.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/kitten.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/hello.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sand_text.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/caustic_sample.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/anamorphic.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/daniel.jpg /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/sky_clouds.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/halftone.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/shader.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.geom /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/anchorPoint.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/texture.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/color.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/foam.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/foam.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/skybox.frag /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/skybox.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_rt.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_lf.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_up.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_dn.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_bk.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/cupertin-lake_ft.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/halftone.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/images/foam3.png /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/caustics.vert /Users/sotech117/Documents/final/adv/ocean-simulation/resources/shaders/caustics.frag .rcc/Resources.qrc /Users/sotech117/Qt/6.5.2/macos/./libexec/rcc || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a ocean_autogen ocean_autogen_timestamp_deps COMMAND = cd /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug && /Users/sotech117/Qt/6.5.2/macos/./libexec/rcc --output /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/qrc_Resources.cpp --name Resources /Users/sotech117/Documents/final/adv/ocean-simulation/cmake-build-debug/.rcc/Resources.qrc --no-zstd DESC = Running rcc for resource Resources restat = 1 @@ -313,7 +313,7 @@ build StaticGLEW_autogen/timestamp StaticGLEW_autogen/mocs_compilation.cpp | ${c ############################################# # Phony custom command for CMakeFiles/ocean_autogen_timestamp_deps -build CMakeFiles/ocean_autogen_timestamp_deps | ${cmake_ninja_workdir}CMakeFiles/ocean_autogen_timestamp_deps: phony libStaticGLEW.a /Users/sotech117/Qt/6.5.2/macos/./libexec/uic /Users/sotech117/Qt/6.5.2/macos/./libexec/moc || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a +build CMakeFiles/ocean_autogen_timestamp_deps | ${cmake_ninja_workdir}CMakeFiles/ocean_autogen_timestamp_deps: phony /Users/sotech117/Qt/6.5.2/macos/./libexec/moc /Users/sotech117/Qt/6.5.2/macos/./libexec/uic libStaticGLEW.a || StaticGLEW_autogen StaticGLEW_autogen_timestamp_deps libStaticGLEW.a ############################################# @@ -325,7 +325,7 @@ build CMakeFiles/ocean_autogen | ${cmake_ninja_workdir}CMakeFiles/ocean_autogen: ############################################# # Phony custom command for CMakeFiles/StaticGLEW_autogen_timestamp_deps -build CMakeFiles/StaticGLEW_autogen_timestamp_deps | ${cmake_ninja_workdir}CMakeFiles/StaticGLEW_autogen_timestamp_deps: phony /Users/sotech117/Qt/6.5.2/macos/./libexec/uic /Users/sotech117/Qt/6.5.2/macos/./libexec/moc +build CMakeFiles/StaticGLEW_autogen_timestamp_deps | ${cmake_ninja_workdir}CMakeFiles/StaticGLEW_autogen_timestamp_deps: phony /Users/sotech117/Qt/6.5.2/macos/./libexec/moc /Users/sotech117/Qt/6.5.2/macos/./libexec/uic ############################################# diff --git a/cmake-build-debug/ocean b/cmake-build-debug/ocean Binary files differindex cb58db3..7fc8cbb 100755 --- a/cmake-build-debug/ocean +++ b/cmake-build-debug/ocean diff --git a/resources/shaders/caustics.frag b/resources/shaders/caustics.frag index f746896..5d2569d 100644 --- a/resources/shaders/caustics.frag +++ b/resources/shaders/caustics.frag @@ -14,7 +14,7 @@ void main() { float oldArea = length(dFdx(vec3(pos[0], pos[2], pos[1]))) * length(dFdy(vec3(pos[0], pos[2], pos[1]))); float newArea = length(dFdx(vec3(newPos[0], newPos[2], newPos[1]))) * length(dFdy(vec3(newPos[0], newPos[2], newPos[1]))); float areaRatio = oldArea / newArea; - float intensity = pow(areaRatio * .3f, 1.5f); + float intensity = pow(areaRatio * 1.f, 1.5f); fragColor = vec4(0.98, 1, .78, intensity * refractProb); // fragColor = col; } diff --git a/resources/shaders/caustics.vert b/resources/shaders/caustics.vert index 298f5e1..f1e80be 100644 --- a/resources/shaders/caustics.vert +++ b/resources/shaders/caustics.vert @@ -45,7 +45,7 @@ void main() { vec4 sampledNormal = texture(normSamp, vec2((pos + 1) / 2)); sampledNormal = (sampledNormal * 2.f) - 1.f; col = sampledNormal; - vec4 newPosAndProb = refractToFloor(vec3(0, 0, 1), pos, normalize(vec3(sampledNormal)), 0.01f); + vec4 newPosAndProb = refractToFloor(vec3(0, 0, 1), pos, normalize(vec3(sampledNormal)), 0.005f); newPos = vec3(newPosAndProb[0], newPosAndProb[1], 0.f); refractProb = newPosAndProb[3]; // newPos = pos; diff --git a/resources/shaders/foam.frag b/resources/shaders/foam.frag index 8d0d9bf..d534ccd 100644 --- a/resources/shaders/foam.frag +++ b/resources/shaders/foam.frag @@ -49,5 +49,7 @@ void main() { if (saturation > m_threshold) j = g*foam*1.8; - fragColor = j; //vec4(vec3(g), 1); + fragColor = j; + // fragColor = vec4(vec3(g), 1); + // fragColor = vec4(vec3(saturation), 1); } diff --git a/resources/shaders/shader.frag b/resources/shaders/shader.frag index 1b73b96..7fc82ed 100755 --- a/resources/shaders/shader.frag +++ b/resources/shaders/shader.frag @@ -44,8 +44,8 @@ float rand(vec4 n) { } vec2 uvFromWorldPoint(vec3 point) { - float u = (point.x - widthBounds[0]) / (widthBounds[1] - widthBounds[0]); - float v = (point.z - lengthBounds[0]) / (lengthBounds[1] - lengthBounds[0]); + float u = (point.x - widthBounds[0] * 50) / (widthBounds[1] * 50 - widthBounds[0] * 50); + float v = (point.z - lengthBounds[0] * 50) / (lengthBounds[1] * 50 - lengthBounds[0] * 50); return vec2(u, v); } diff --git a/src/arap.cpp b/src/arap.cpp index 670f06e..2d952ae 100644 --- a/src/arap.cpp +++ b/src/arap.cpp @@ -66,7 +66,7 @@ void ARAP::init // minCorner = Vector3f(-1.0f, -1.0f, -1.0f); // maxCorner = Vector3f(1.0f, 1.0f, 1.0f); - initCausticsShape(10); + initCausticsShape(1000); } void ARAP::update(double seconds) @@ -85,7 +85,7 @@ void ARAP::update(double seconds) m_ocean.fft_prime(m_time); m_ocean.update_ocean(); m_shape.setVertices_and_Normals(m_ocean.get_vertices(), m_ocean.getNormals()); - // m_shape.setVertices(m_ocean.get_vertices()); +// m_shape.setVertices(m_ocean.get_vertices()); // auto tmp = m_ocean.get_vertices(); // print the min and max of the vertices @@ -94,7 +94,7 @@ void ARAP::update(double seconds) // for (int i = 0; i < tmp.size(); i++) { // min = min.cwiseMin(tmp[i]); // max = max.cwiseMax(tmp[i]); -// } +// }w // std::cout << "min: " << min << std::endl; //std::cout << "max: " << max << std::endl; diff --git a/src/glwidget.cpp b/src/glwidget.cpp index 8f3c0c1..f8547a6 100755 --- a/src/glwidget.cpp +++ b/src/glwidget.cpp @@ -250,7 +250,7 @@ void GLWidget::paintCaustics() { // glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glBindFramebuffer(GL_FRAMEBUFFER, m_fbo_texture); + glBindFramebuffer(GL_FRAMEBUFFER, m_fbo); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable( GL_BLEND ); diff --git a/src/graphics/shape.cpp b/src/graphics/shape.cpp index 1baa233..7073a7f 100644 --- a/src/graphics/shape.cpp +++ b/src/graphics/shape.cpp @@ -336,7 +336,7 @@ void Shape::updateMesh(const std::vector<Eigen::Vector3i> &faces, Vector3f n = getNormal(face); for (auto& v: {face[0], face[1], face[2]}) { - normals.push_back(Eigen::Vector3f(1,1,1)); + normals.push_back(n); verts.push_back(vertices[v]); if (m_anchors.find(v) == m_anchors.end()) { diff --git a/src/graphics/simpleshape.cpp b/src/graphics/simpleshape.cpp new file mode 100644 index 0000000..567dab3 --- /dev/null +++ b/src/graphics/simpleshape.cpp @@ -0,0 +1,272 @@ +#include "simpleshape.h" + +#include <iostream> +#include "graphics/shader.h" + +using namespace Eigen; +using namespace std; + +// ================== Constructor + +SimpleShape::SimpleShape() : + m_surfaceVao(), + m_surfaceVbo(), + m_surfaceIbo(), + m_numSurfaceVertices(), + m_verticesSize(), + m_red(), + m_blue(), + m_green(), + m_alpha(), + m_faces(), + m_vertices(), + m_anchors(), + m_modelMatrix(Matrix4f::Identity()), + lastSelected(-1) +{} + +// ================== Initialization and Updating + +void SimpleShape::init(const vector<Vector3f> &vertices, const vector<Vector3i> &triangles) +{ + m_vertices.clear(); + copy(vertices.begin(), vertices.end(), back_inserter(m_vertices)); + + vector<Vector3f> verts; + vector<Vector3f> normals; + vector<Vector3f> colors; + vector<Vector3i> faces; + faces.reserve(triangles.size()); + + for (int s = 0; s < triangles.size() * 3; s+=3) faces.push_back(Vector3i(s, s + 1, s + 2)); + updateMesh(triangles, vertices, verts, normals, colors); + + glGenBuffers(1, &m_surfaceVbo); + glGenBuffers(1, &m_surfaceIbo); + glGenVertexArrays(1, &m_surfaceVao); + + glBindBuffer(GL_ARRAY_BUFFER, m_surfaceVbo); + glBufferData(GL_ARRAY_BUFFER, sizeof(float) * ((verts.size() * 3) + (normals.size() * 3) + (colors.size() * 3)), nullptr, GL_DYNAMIC_DRAW); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float) * verts.size() * 3, static_cast<const void *>(verts.data())); + glBufferSubData(GL_ARRAY_BUFFER, sizeof(float) * verts.size() * 3, sizeof(float) * normals.size() * 3, static_cast<const void *>(normals.data())); + glBufferSubData(GL_ARRAY_BUFFER, sizeof(float) * ((verts.size() * 3) + (normals.size() * 3)), sizeof(float) * colors.size() * 3, static_cast<const void *>(colors.data())); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_surfaceIbo); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(int) * 3 * faces.size(), static_cast<const void *>(faces.data()), GL_STATIC_DRAW); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + glBindVertexArray(m_surfaceVao); + glBindBuffer(GL_ARRAY_BUFFER, m_surfaceVbo); + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, static_cast<GLvoid *>(0)); + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, reinterpret_cast<GLvoid *>(sizeof(float) * verts.size() * 3)); + glEnableVertexAttribArray(2); + glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, 0, reinterpret_cast<GLvoid *>(sizeof(float) * (verts.size() * 3 + colors.size() * 3))); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_surfaceIbo); + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + m_numSurfaceVertices = faces.size() * 3; + m_verticesSize = vertices.size(); + m_faces = triangles; + m_red = 0.5f + 0.5f * rand() / ((float) RAND_MAX); + m_blue = 0.5f + 0.5f * rand() / ((float) RAND_MAX); + m_green = 0.5f + 0.5f * rand() / ((float) RAND_MAX); + m_alpha = 1.0f; +} + +void SimpleShape::setVertices(const vector<Vector3f> &vertices) +{ + m_vertices.clear(); + copy(vertices.begin(), vertices.end(), back_inserter(m_vertices)); + + vector<Vector3f> verts; + vector<Vector3f> normals; + vector<Vector3f> colors; + + updateMesh(m_faces, vertices, verts, normals, colors); + + glBindBuffer(GL_ARRAY_BUFFER, m_surfaceVbo); + glBufferData(GL_ARRAY_BUFFER, sizeof(float) * ((verts.size() * 3) + (normals.size() * 3) + (colors.size() * 3)), nullptr, GL_DYNAMIC_DRAW); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float) * verts.size() * 3, static_cast<const void *>(verts.data())); + glBufferSubData(GL_ARRAY_BUFFER, sizeof(float) * verts.size() * 3, sizeof(float) * normals.size() * 3, static_cast<const void *>(normals.data())); + glBufferSubData(GL_ARRAY_BUFFER, sizeof(float) * ((verts.size() * 3) + (normals.size() * 3)), sizeof(float) * colors.size() * 3, static_cast<const void *>(colors.data())); + glBindBuffer(GL_ARRAY_BUFFER, 0); +} + +// ================== Model Matrix + +void SimpleShape::setModelMatrix(const Affine3f &model) { m_modelMatrix = model.matrix(); } + +// ================== General Graphics Stuff + +void SimpleShape::draw(Shader *shader, GLenum mode) +{ + Eigen::Matrix3f m3 = m_modelMatrix.topLeftCorner(3, 3); + Eigen::Matrix3f inverseTransposeModel = m3.inverse().transpose(); + + switch(mode) { + case GL_TRIANGLES: + { + shader->setUniform("wire", 0); + shader->setUniform("model", m_modelMatrix); + shader->setUniform("inverseTransposeModel", inverseTransposeModel); + shader->setUniform("red", m_red); + shader->setUniform("green", m_green); + shader->setUniform("blue", m_blue); + shader->setUniform("alpha", m_alpha); + glBindVertexArray(m_surfaceVao); + glDrawElements(mode, m_numSurfaceVertices, GL_UNSIGNED_INT, reinterpret_cast<GLvoid *>(0)); + glBindVertexArray(0); + break; + } + case GL_POINTS: + { + shader->setUniform("model", m_modelMatrix); + shader->setUniform("inverseTransposeModel", inverseTransposeModel); + glBindVertexArray(m_surfaceVao); + glDrawElements(mode, m_numSurfaceVertices, GL_UNSIGNED_INT, reinterpret_cast<GLvoid *>(0)); + glBindVertexArray(0); + break; + } + } +} + +SelectMode SimpleShape::select(Shader *shader, int closest_vertex) +{ + if (closest_vertex == -1) return SelectMode::None; + + bool vertexIsNowSelected = m_anchors.find(closest_vertex) == m_anchors.end(); + + if (vertexIsNowSelected) { + m_anchors.insert(closest_vertex); + } else { + m_anchors.erase(closest_vertex); + } + + selectHelper(); + + return vertexIsNowSelected ? SelectMode::Anchor : SelectMode::Unanchor; +} + +bool SimpleShape::selectWithSpecifiedMode(Shader *shader, int closest_vertex, SelectMode mode) +{ + switch (mode) { + case SelectMode::None: { + return false; + } + case SelectMode::Anchor: { + if (m_anchors.find(closest_vertex) != m_anchors.end()) return false; + m_anchors.insert(closest_vertex); + break; + } + case SelectMode::Unanchor: { + if (m_anchors.find(closest_vertex) == m_anchors.end()) return false; + m_anchors.erase(closest_vertex); + break; + } + } + + selectHelper(); + + return true; +} + +int SimpleShape::getClosestVertex(Vector3f start, Vector3f ray, float threshold) +{ + int closest_vertex = -1; + int i = 0; + float dist = numeric_limits<float>::max(); + ParametrizedLine line = ParametrizedLine<float, 3>::Through(start, start + ray); + + for (const Vector3f &v : m_vertices) { + float d = line.distance(v); + if (d<dist) { + dist = d; + closest_vertex = i; + } + ++i; + } + + if (dist >= threshold) closest_vertex = -1; + + return closest_vertex; +} + +bool SimpleShape::getAnchorPos(int lastSelected, + Eigen::Vector3f& pos, + Eigen::Vector3f ray, + Eigen::Vector3f start) +{ + bool isAnchor = m_anchors.find(lastSelected) != m_anchors.end(); + if (isAnchor) { + Eigen::Vector3f oldPos = m_vertices[lastSelected]; + Eigen::ParametrizedLine line = ParametrizedLine<float, 3>::Through(start, start+ray); + pos = line.projection(oldPos); + } + return isAnchor; +} + +// ================== Accessors + +const vector<Vector3f> &SimpleShape::getVertices() { return m_vertices; } +const vector<Vector3i> &SimpleShape::getFaces() { return m_faces; } +const unordered_set<int> &SimpleShape::getAnchors() { return m_anchors; } + +// ================== Helpers + +void SimpleShape::selectHelper() +{ + vector<Vector3f> verts; + vector<Vector3f> normals; + vector<Vector3f> colors; + updateMesh(m_faces, m_vertices, verts, normals, colors); + + glBindBuffer(GL_ARRAY_BUFFER, m_surfaceVbo); + glBufferData(GL_ARRAY_BUFFER, sizeof(float) * ((verts.size() * 3) + (normals.size() * 3) + (colors.size() * 3)), nullptr, GL_DYNAMIC_DRAW); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float) * verts.size() * 3, static_cast<const void *>(verts.data())); + glBufferSubData(GL_ARRAY_BUFFER, sizeof(float) * verts.size() * 3, sizeof(float) * normals.size() * 3, static_cast<const void *>(normals.data())); + glBufferSubData(GL_ARRAY_BUFFER, sizeof(float) * ((verts.size() * 3) + (normals.size() * 3)), sizeof(float) * colors.size() * 3, static_cast<const void *>(colors.data())); + glBindBuffer(GL_ARRAY_BUFFER, 0); +} + +Vector3f SimpleShape::getNormal(const Vector3i& face) +{ + Vector3f& v1 = m_vertices[face[0]]; + Vector3f& v2 = m_vertices[face[1]]; + Vector3f& v3 = m_vertices[face[2]]; + Vector3f e1 = v2 - v1; + Vector3f e2 = v3 - v1; + Vector3f n = e1.cross(e2); + return n.normalized(); +} + +void SimpleShape::updateMesh(const std::vector<Eigen::Vector3i> &faces, + const std::vector<Eigen::Vector3f> &vertices, + std::vector<Eigen::Vector3f>& verts, + std::vector<Eigen::Vector3f>& normals, + std::vector<Eigen::Vector3f>& colors) +{ + verts.reserve(faces.size() * 3); + normals.reserve(faces.size() * 3); + + for (const Eigen::Vector3i& face : faces) { + Vector3f n = getNormal(face); + + for (auto& v: {face[0], face[1], face[2]}) { + normals.push_back(n); + verts.push_back(vertices[v]); + + if (m_anchors.find(v) == m_anchors.end()) { + colors.push_back(Vector3f(1,0,0)); + } else { + colors.push_back(Vector3f(0, 1 - m_green, 1 - m_blue)); + } + } + } +} + diff --git a/src/graphics/simpleshape.h b/src/graphics/simpleshape.h new file mode 100644 index 0000000..03db726 --- /dev/null +++ b/src/graphics/simpleshape.h @@ -0,0 +1,89 @@ +#pragma once + +#include <GL/glew.h> +#include <set> +#include <vector> +#include <unordered_set> + +#define EIGEN_DONT_VECTORIZE +#define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT +//#include "Eigen/StdVector" +//EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(Eigen::Matrix2f) +//EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(Eigen::Matrix3f) +//EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(Eigen::Matrix3i) +#include "Eigen/Dense" + +enum SelectMode +{ + None = 0, + Anchor = 1, + Unanchor = 2 +}; + + + + +struct Edge{ + std::pair<int, int> ij; + float weight = 0.f; + std::set<int> opposite_two; +}; + +struct Cell{ + int center_index = 0; // this is i + std::set<int> neighbor_js; // this is neighboring j's + std::set<int> edge_ids; // this is ids if ij edges in edge vector +}; + + +class Shader; + +class SimpleShape +{ +public: + SimpleShape(); + + void init(const std::vector<Eigen::Vector3f> &vertices, const std::vector<Eigen::Vector3i> &triangles); + void setVertices(const std::vector<Eigen::Vector3f> &vertices); + + void setModelMatrix(const Eigen::Affine3f &model); + + void draw(Shader *shader, GLenum mode); + SelectMode select(Shader *shader, int vertex); + bool selectWithSpecifiedMode(Shader *shader, int vertex, SelectMode mode); + int getClosestVertex(Eigen::Vector3f start, Eigen::Vector3f ray, float threshold); + bool getAnchorPos(int lastSelected, Eigen::Vector3f& pos, Eigen::Vector3f ray, Eigen::Vector3f start); + + const std::vector<Eigen::Vector3f>& getVertices(); + const std::vector<Eigen::Vector3i>& getFaces(); + const std::unordered_set<int>& getAnchors(); + +private: + GLuint m_surfaceVao; + GLuint m_surfaceVbo; + GLuint m_surfaceIbo; + + unsigned int m_numSurfaceVertices; + unsigned int m_verticesSize; + float m_red; + float m_blue; + float m_green; + float m_alpha; + + std::vector<Eigen::Vector3i> m_faces; + std::vector<Eigen::Vector3f> m_vertices; + std::unordered_set<int> m_anchors; + + Eigen::Matrix4f m_modelMatrix; + int lastSelected = -1; + + // Helpers + + void selectHelper(); + Eigen::Vector3f getNormal(const Eigen::Vector3i& face); + void updateMesh(const std::vector<Eigen::Vector3i> &triangles, + const std::vector<Eigen::Vector3f> &vertices, + std::vector<Eigen::Vector3f>& verts, + std::vector<Eigen::Vector3f>& normals, + std::vector<Eigen::Vector3f>& colors); +}; diff --git a/src/ocean/ocean_alt.cpp b/src/ocean/ocean_alt.cpp index 58e76f8..1c9306b 100644 --- a/src/ocean/ocean_alt.cpp +++ b/src/ocean/ocean_alt.cpp @@ -316,17 +316,6 @@ Eigen::Vector2d ocean_alt::complex_exp(double exponent){ void ocean_alt::update_ocean() { std::vector<Eigen::Vector3f> vertices = std::vector<Eigen::Vector3f>(); - if (iterations < 10){ - for (int i = 0; i < N; i++){ - Eigen::Vector2d amplitude = m_current_h[i]; - float height = amplitude[0]; - - if (height < min) min = height; - if (height > max) max = height; - - } - iterations ++; - } // reset normals & vertices arrays for the single tile m_vertices = std::vector<Eigen::Vector3f>(N); m_normals = std::vector<Eigen::Vector3f>(N); @@ -336,7 +325,18 @@ void ocean_alt::update_ocean() Eigen::Vector2d amplitude = m_current_h[i]; float height = amplitude[0]; - // Eigen::Vector2d slope = m_slopes[i] * .3f; + if (iterations++ > 1) + { + if (height < min) min = height; + if (height > max) + { + max = height; +// std::cout << "changed!! max: " << max << std::endl; + } + } + + + // Eigen::Vector2d slope = m_slopes[i] * .3f; // Eigen::Vector3f s = Eigen::Vector3f(-slope[0], 0.0, -slope[1]); // Eigen::Vector3f y = Eigen::Vector3f(0.0, 1.0, 0.0); @@ -368,10 +368,18 @@ void ocean_alt::update_ocean() // m_foam_constants.wavelengths[i] = 2.f* M_PI * m_slopes[i].dot(m_slopes[i]) / Lx; - float h_0 = m_waveIndexConstants[i].h0_prime[0]; // min*.2f; - float h_max = max*.001f; // the smaller the constant, the more foam there is - float waveheight = (height - h_0 ) / (h_max - h_0); - m_foam_constants.wavelengths[i] = waveheight; +// float h_0 = m_waveIndexConstants[i].h0_prime[0]; // min*.2f; +// float h_max = max*.001f; // the smaller the constant, the more foam there is +// float waveheight = (height - h_0 ) / (h_max - h_0); +// m_foam_constants.wavelengths[i] = waveheight; + float h_0 = 0; // min*.2f; + float h_max = max*.35f; // the smaller the constant, the more foam there is + m_foam_constants.wavelengths[i] = (height - h_0 ) / (h_max - h_0); + +// if (i < 5){ +// std::cout << h_0 << ", " << h_max << std::endl; +// std::cout << m_foam_constants.wavelengths[i] << std::endl; +// } if (waveheight >= height_threshold){ //std::cout << "push" << std::endl; @@ -381,6 +389,7 @@ void ocean_alt::update_ocean() } + // populate foam constants m_foam_constants.positions = vertices; } @@ -427,54 +436,54 @@ std::vector<Eigen::Vector3i> ocean_alt::get_faces() { // connect the vertices into faces std::vector<Eigen::Vector3i> faces = std::vector<Eigen::Vector3i>(); - for (int i = 0; i < num_tiles_x; i++) - { - for (int j = 0; j < num_tiles_z; j++) - { - for (int k = 0; k < N; k++) - { - int x = k % num_rows; - int z = k / num_rows; - - // connect the vertices into faces - if (x < num_rows - 1 && z < num_cols - 1) - { - int tile_index_offset = (j + num_tiles_z * i) * N; - int i1 = k + tile_index_offset; - int i2 = k + 1 + tile_index_offset; - int i3 = k + num_rows + tile_index_offset; - int i4 = k + num_rows + 1 + tile_index_offset; - - faces.emplace_back(i2, i1, i3); - faces.emplace_back(i2, i3, i4); - } - } - } - } - - return faces; - - -// for (int i = 0; i < N; i++) -// { -// int x = i / num_rows; -// int z = i % num_rows; +// for (int i = 0; i < num_tiles_x; i++) +// { +// for (int j = 0; j < num_tiles_z; j++) +// { +// for (int k = 0; k < N; k++) +// { +// int x = k % num_rows; +// int z = k / num_rows; // -// // connect the vertices into faces -// if (x < num_rows - 1 && z < num_cols - 1) -// { -// int i1 = i; -// int i2 = i + 1; -// int i3 = i + num_rows; -// int i4 = i + num_rows + 1; +// // connect the vertices into faces +// if (x < num_rows - 1 && z < num_cols - 1) +// { +// int tile_index_offset = (j + num_tiles_z * i) * N; +// int i1 = k + tile_index_offset; +// int i2 = k + 1 + tile_index_offset; +// int i3 = k + num_rows + tile_index_offset; +// int i4 = k + num_rows + 1 + tile_index_offset; // -// faces.emplace_back(i2, i1, i3); -// faces.emplace_back(i2, i3, i4); -// faces.emplace_back(i1, i2, i3); -// faces.emplace_back(i3, i2, i4); -// } -// } -// return faces; +// faces.emplace_back(i2, i1, i3); +// faces.emplace_back(i2, i3, i4); +// } +// } +// } +// } +// +// return faces; + + + for (int i = 0; i < N; i++) + { + int x = i / num_rows; + int z = i % num_rows; + + // connect the vertices into faces + if (x < num_rows - 1 && z < num_cols - 1) + { + int i1 = i; + int i2 = i + 1; + int i3 = i + num_rows; + int i4 = i + num_rows + 1; + + faces.emplace_back(i2, i1, i3); + faces.emplace_back(i2, i3, i4); + faces.emplace_back(i1, i2, i3); + faces.emplace_back(i3, i2, i4); + } + } + return faces; } Eigen::Vector2d muliply_complex(Eigen::Vector2d a, Eigen::Vector2d b) |