Skip to content

Instantly share code, notes, and snippets.

@rodrigomartind
Created January 26, 2023 22:26
Show Gist options
  • Save rodrigomartind/fc91ab8bcefe9413f6b68b84f9fa3c2f to your computer and use it in GitHub Desktop.
Save rodrigomartind/fc91ab8bcefe9413f6b68b84f9fa3c2f to your computer and use it in GitHub Desktop.
import android.annotation.SuppressLint
import androidx.compose.animation.animateColor
import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.AnimationVector1D
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.tween
import androidx.compose.animation.core.updateTransition
import androidx.compose.foundation.Image
import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.Group
import androidx.compose.ui.graphics.vector.Path
import androidx.compose.ui.graphics.vector.PathParser
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.launch
object SwitchFullScreenStarsPaths {
val path1 =
PathParser().parsePathString(
"M6.25342 94.7677C7.3836 94.7677 8.2998 93.8517 8.2998 92.7217C8.2998 91.5917 7.3836 90.6757 6.25342 90.6757C5.12323 90.6757 4.20703 91.5917 4.20703 92.7217C4.20703 93.8517 5.12323 94.7677 6.25342 94.7677Z"
).toNodes()
val path2 =
PathParser().parsePathString(
"M52.8687 198.127C53.9988 198.127 54.915 197.211 54.915 196.081C54.915 194.951 53.9988 194.035 52.8687 194.035C51.7385 194.035 50.8223 194.951 50.8223 196.081C50.8223 197.211 51.7385 198.127 52.8687 198.127Z"
).toNodes()
val path3 =
PathParser().parsePathString(
"M172.857 159.916C173.988 159.916 174.904 159 174.904 157.87C174.904 156.74 173.988 155.824 172.857 155.824C171.727 155.824 170.811 156.74 170.811 157.87C170.811 159 171.727 159.916 172.857 159.916Z"
).toNodes()
val path4 =
PathParser().parsePathString(
"M221.547 53.7061C222.677 53.7061 223.594 52.7901 223.594 51.6601C223.594 50.5301 222.677 49.6141 221.547 49.6141C220.417 49.6141 219.501 50.5301 219.501 51.6601C219.501 52.7901 220.417 53.7061 221.547 53.7061Z"
).toNodes()
val path5 =
PathParser().parsePathString(
"M87.6996 6.94402C88.6661 6.94402 89.4496 6.16065 89.4496 5.19431C89.4496 4.22798 88.6661 3.44461 87.6996 3.44461C86.7331 3.44461 85.9496 4.22798 85.9496 5.19431C85.9496 6.16065 86.7331 6.94402 87.6996 6.94402Z"
).toNodes()
val path6 =
PathParser().parsePathString(
"M9.25948 9.24401C10.3897 9.24401 11.3058 8.32798 11.3058 7.19799C11.3058 6.06801 10.3897 5.15198 9.25948 5.15198C8.1293 5.15198 7.2131 6.06801 7.2131 7.19799C7.2131 8.32798 8.1293 9.24401 9.25948 9.24401Z"
).toNodes()
val path7 =
PathParser().parsePathString(
"M197.64 228.267C198.77 228.267 199.686 227.351 199.686 226.221C199.686 225.091 198.77 224.175 197.64 224.175C196.51 224.175 195.593 225.091 195.593 226.221C195.593 227.351 196.51 228.267 197.64 228.267Z"
).toNodes()
val path8 =
PathParser().parsePathString(
"M224.582 44.5485C225.447 44.5485 226.148 43.8472 226.148 42.9822C226.148 42.1172 225.447 41.416 224.582 41.416C223.716 41.416 223.015 42.1172 223.015 42.9822C223.015 43.8472 223.716 44.5485 224.582 44.5485Z"
).toNodes()
val path9 =
PathParser().parsePathString(
"M45.7274 203.39C46.5926 203.39 47.294 202.689 47.294 201.824C47.294 200.959 46.5926 200.258 45.7274 200.258C44.8623 200.258 44.1609 200.959 44.1609 201.824C44.1609 202.689 44.8623 203.39 45.7274 203.39Z"
).toNodes()
val path10 =
PathParser().parsePathString(
"M3.62839 3.27532C4.15841 3.27532 4.58807 2.84573 4.58807 2.31581C4.58807 1.78588 4.15841 1.35629 3.62839 1.35629C3.09837 1.35629 2.6687 1.78588 2.6687 2.31581C2.6687 2.84573 3.09837 3.27532 3.62839 3.27532Z"
).toNodes()
val path11 =
PathParser().parsePathString(
"M229.888 50.5878C230.418 50.5878 230.848 50.1582 230.848 49.6283C230.848 49.0983 230.418 48.6687 229.888 48.6687C229.358 48.6687 228.928 49.0983 228.928 49.6283C228.928 50.1582 229.358 50.5878 229.888 50.5878Z"
).toNodes()
val path12 =
PathParser().parsePathString(
"M241.108 42.6154C241.638 42.6154 242.068 42.1858 242.068 41.6558C242.068 41.1259 241.638 40.6963 241.108 40.6963C240.578 40.6963 240.148 41.1259 240.148 41.6558C240.148 42.1858 240.578 42.6154 241.108 42.6154Z"
).toNodes()
val path13 =
PathParser().parsePathString(
"M239.16 69.3124C239.69 69.3124 240.12 68.8828 240.12 68.3529C240.12 67.823 239.69 67.3934 239.16 67.3934C238.63 67.3934 238.201 67.823 238.201 68.3529C238.201 68.8828 238.63 69.3124 239.16 69.3124Z"
).toNodes()
val path14 =
PathParser().parsePathString(
"M190.513 220.732C191.043 220.732 191.472 220.302 191.472 219.772C191.472 219.243 191.043 218.813 190.513 218.813C189.983 218.813 189.553 219.243 189.553 219.772C189.553 220.302 189.983 220.732 190.513 220.732Z"
).toNodes()
val path15 =
PathParser().parsePathString(
"M50.0461 208.555C50.5761 208.555 51.0057 208.125 51.0057 207.595C51.0057 207.065 50.5761 206.636 50.0461 206.636C49.516 206.636 49.0864 207.065 49.0864 207.595C49.0864 208.125 49.516 208.555 50.0461 208.555Z"
).toNodes()
}
object SwitchFullScreenMoonPaths {
val path1 =
PathParser().parsePathString(
"M24.4842 39.4109C20.6962 37.6418 17.5237 34.7804 15.3746 31.1943C13.2254 27.6083 12.1978 23.4615 12.4238 19.2868C12.6498 15.1122 14.119 11.1005 16.6427 7.76738C19.1663 4.43425 22.6291 1.93197 26.5859 0.582156C22.6518 0.16421 18.676 0.754052 15.0326 2.29618C11.3893 3.83831 8.19816 6.28201 5.75955 9.39736C3.32095 12.5127 1.71503 16.1973 1.09292 20.1043C0.470798 24.0114 0.852936 28.0125 2.20337 31.7312C3.55381 35.4499 5.82814 38.7638 8.81236 41.3612C11.7966 43.9587 15.3926 45.7542 19.262 46.5788C23.1314 47.4034 27.1469 47.23 30.9309 46.0749C34.7148 44.9198 38.1426 42.821 40.8918 39.976C38.2604 40.9944 35.4501 41.4693 32.6302 41.3722C29.8103 41.275 27.0393 40.6078 24.4842 39.4109Z"
).toNodes()
val path2 =
PathParser().parsePathString(
"M7.77811 29.4944C9.40777 29.4944 10.7289 28.1732 10.7289 26.5436C10.7289 24.9139 9.40777 23.5928 7.77811 23.5928C6.14844 23.5928 4.82733 24.9139 4.82733 26.5436C4.82733 28.1732 6.14844 29.4944 7.77811 29.4944Z"
).toNodes()
val path3 =
PathParser().parsePathString(
"M21.7256 46.7695C23.3552 46.7695 24.6764 45.4484 24.6764 43.8187C24.6764 42.189 23.3552 40.8679 21.7256 40.8679C20.0959 40.8679 18.7748 42.189 18.7748 43.8187C18.7748 45.4484 20.0959 46.7695 21.7256 46.7695Z"
).toNodes()
val path4 =
PathParser().parsePathString(
"M12.3055 35.9196C13.2405 35.9196 13.9984 35.1617 13.9984 34.2267C13.9984 33.2918 13.2405 32.5339 12.3055 32.5339C11.3706 32.5339 10.6127 33.2918 10.6127 34.2267C10.6127 35.1617 11.3706 35.9196 12.3055 35.9196Z"
).toNodes()
val path5 =
PathParser().parsePathString(
"M4.94353 20.2713C6.14743 20.2713 7.12338 19.2953 7.12338 18.0914C7.12338 16.8875 6.14743 15.9116 4.94353 15.9116C3.73963 15.9116 2.76367 16.8875 2.76367 18.0914C2.76367 19.2953 3.73963 20.2713 4.94353 20.2713Z"
).toNodes()
}
object SwitchFullScreenMountainPaths {
val path1 =
PathParser().parsePathString(
"M228.097 10.4865L225.275 8.36988L223.694 10.4865H220.871L219.996 12.7865H217.88L214.323 17.0196H211.896L210.668 19.8417H208.381V22.4944H206.97L205.234 24.611H203.117L201.184 27.7859H199.603L197.317 30.4387H194.96L193.549 32.0331H191.813L190.232 35.208H188.468L186.182 39.0884H182.456L180.014 41.7412C180.014 41.7412 177.94 41.2191 177.657 41.7412C177.375 42.2633 175.258 45.6215 175.258 45.6215L170.319 45.9743C170.319 45.9743 168.71 48.6271 167.567 48.4436C166.423 48.2602 164.49 47.9216 164.49 47.9216L159.198 50.3909H157.476L156.206 52.6909L152.508 52.8743L150.927 55.8798C148.507 56.9834 146.152 58.2224 143.871 59.5909C143.165 60.2964 140.145 63.6547 140.145 63.6547H135.403C134.513 64.3751 133.57 65.0261 132.58 65.602C131.087 66.0599 129.55 66.3579 127.994 66.491H124.113L121.826 69.1437H106.302L103.479 67.7327L100.135 68.0854L98.2012 65.4468L95.7314 65.094L93.8403 63.302H91.935L89.2959 61.4676L85.5983 62.1732L81.5478 59.8872L78.7252 60.5927L75.5498 58.7584H73.9127L71.2736 57.2486L67.9429 58.7443L64.2171 54.7652L59.2775 55.4707L55.2412 51.0541L52.4186 51.9431L50.8379 47.5406L45.2774 47.1878L39.5475 42.4326L35.3136 42.616L33.1402 38.0301L30.8963 38.7356L29.8378 37.6773L27.368 38.7356L23.4305 34.8552L21.7228 35.5608L19.4365 30.8055L17.8558 31.3417L16.0917 29.5779L13.7348 29.7614L10.7993 25.5282H6.33963L4.43437 22.311L3.02307 21.7889L0.129906 22.3251V19.0939H-3.68061L-7.02539 13.4497L-20.461 8.34163L-28.3643 0.0870361V127.364H228.097V10.4865Z"
).toNodes()
val path2 =
PathParser().parsePathString(
"M25.4125 20.462L36.4207 15.0436H49.6587L59.2837 11.1209L67.5257 13.8724L90.3323 2.23125L97.5158 4.70058H118.953L128.917 0.933105L136.905 3.52943L157.567 12.7012L180.105 20.462L172.188 46.7922L0.54541 48.2032L25.4125 20.462Z"
).toNodes()
val path3 =
PathParser().parsePathString(
"M20.7311 78.2823L34.1808 73.6964L38.076 75.9964L43.0014 73.6964L51.1164 75.9964L57.8201 69.1104H67.3463L70.4371 65.7945L75.546 60.1785L83.8445 58.3018L87.7255 55.0423L101.33 54.1816L106.27 55.3527L110.179 52.065L117.066 45.8987L121.794 47.1263L127.44 44.5017L133.268 40.5367L136.5 34.4269H139.901L150.218 22.1931L173.307 20.782L199.656 4.08933L221.362 12.4427L229.575 5.26048L253.61 0.321808V94.8621L147.198 118.822L71.4532 120.035L0.930542 85.4645L13.7169 78.635L20.7311 78.2823Z"
).toNodes()
val path4 =
PathParser().parsePathString(
"M-36.7332 3.13908L-26.8541 0.316986L-21.6746 3.13908L-16.1705 0.316986L-8.76122 7.96489L1.14611 9.24895L4.64613 14.5968L15.7531 15.4858L23.487 20.1281L29.1322 19.0134L33.7189 25.3631L40.7331 30.7815L51.967 33.8294L52.0658 37.8227H62.0578L68.6486 31.9527L72.6426 33.5895L81.7031 33.1239L103.818 41.3503L98.5258 54.2755V71.4198H-40.7272L-36.7332 3.13908Z"
).toNodes()
val path5 =
PathParser().parsePathString(
"M-28.3642 34.1924L-25.4428 31.9206L-22.9589 33.628L-13.6726 26.7562L-9.63626 26.8973L-2.22693 18.5156H3.02311L6.05741 13.45L10.9264 10.9101L18.3075 0.411865L33.7189 26.0507L38.7714 26.7562L39.9568 32.6261L51.346 39.5967L52.0658 46.0875L56.2997 51.0262L58.0779 58.025L68.6486 58.4342L81.1809 66.195L81.7031 73.2502L87.2354 77.0319L91.4693 81.7871L103.127 78.8662L116.167 88.8988H121.107L124.395 94.7123L130.195 93.3013L142.276 104.83H153.27L157.561 109.768L168.385 114.03L173.042 112.83L192.349 126.461L219.658 149.743L-30.58 151.366L-28.3642 34.1924Z"
).toNodes()
}
object SwitchFullScreenHomePaths {
val path1 =
PathParser().parsePathString("M54.4922 34.6057H0.27002V38.4861H54.4922V34.6057Z").toNodes()
val path2 =
PathParser().parsePathString("M55.847 8.79756L14.8488 2.75827V34.6057H55.847V8.79756Z")
.toNodes()
val path3 =
PathParser().parsePathString("M7.47899 0.254113L7.06812 3.04614L63.226 11.3073L63.6369 8.51525L7.47899 0.254113Z")
.toNodes()
val path4 =
PathParser().parsePathString("M8.68124 36.5388H5.85864V65.6488H8.68124V36.5388Z").toNodes()
val path5 =
PathParser().parsePathString("M19.4008 35.7184L6.1123 54.8204L8.42952 56.4318L21.718 37.3298L19.4008 35.7184Z")
.toNodes()
val light =
PathParser().parsePathString("M10.5486 0.258301H0.909424V9.89575H10.5486V0.258301Z")
.toNodes()
}
object SwitchFullScreenShrubPaths {
val path1 =
PathParser().parsePathString(
"M-29.8461 6.77785L-27.828 6.24165V3.15144L-26.6707 0.329346L-25.5981 3.54654V6.14286L-24.6102 8.6122L-23.3118 7.03183L-22.2533 2.92567L-21.5053 6.26985L-21.1384 10.1644H-18.6404L-17.7795 8.49933V7.73736L-16.9751 5.01404L-16.6081 8.23123L-17.1585 8.97909L-16.6081 10.1502L-15.5497 9.40238V8.28769L-15.1122 6.42509L-14.6182 8.71098V9.64228L-13.8702 10.8134L-13.0658 12.0552V13.1981L-12.2896 12.9159V11.7447L-11.6686 11.1944L-11.8944 10.3196L-11.4428 9.14841L-10.85 10.5595L-11.1887 10.9687L-10.9206 12.1398V12.7184L-10.5113 13.5509L-10.1867 12.8877L-10.2573 12.4221L-9.89034 11.5895L-9.72099 12.6619L-9.89034 13.057L-9.6363 13.946L-9.18469 13.4662L-8.90243 12.2104L-8.7613 13.438L-8.3238 14.3975L-8.14033 15.0607L-7.77339 14.2987L-7.32177 13.2546L-7.13831 15.0607V15.8932L-6.89838 16.3448L-6.07983 17.4877L-5.92459 18.1086L-5.4024 17.7699L-5.24716 16.5705L-4.75321 15.6392L-4.59796 17.1491V18.2638C-4.59796 18.2638 -4.16046 19.0116 -4.13223 19.0963C-4.10401 19.181 -4.03344 20.084 -4.03344 20.084L-3.51126 19.3785V18.7576L-3.35602 17.7699L-3.14433 18.7576L-2.89029 19.435L-3.04553 20.4509L-2.36811 21.7773L-2.05762 21.0012L-2.21286 20.0699L-1.87415 18.3626L-1.43665 20.0699V20.6908L-1.15439 21.9607L-0.970921 23.1601C-0.74427 22.7998 -0.536987 22.4278 -0.349949 22.0454C-0.349949 21.9466 -0.505192 21.2411 -0.505192 21.2411L0.0452156 20.0417L0.256912 22.0877V23.019C0.256912 23.019 0.539173 23.9786 0.567398 24.162C0.595623 24.3454 1.6541 24.162 1.6541 24.162V22.8356L2.02104 21.8479L2.23273 23.2589V24.3031L2.67023 25.5448L3.22064 24.8957V23.3859L3.65815 25.5448V26.6877L3.96863 27.6472L4.46259 26.5325L4.90009 25.0509V26.3773L5.29525 27.3369V27.9577L6.22671 27.6472V26.5043L6.48075 25.1779L6.94647 26.589V27.7319L7.44043 29.7074L8.03318 29.1147L8.21665 28.635L7.90616 27.9577L8.56947 26.6172L8.93641 28.2258C8.93641 28.2258 8.7106 28.8184 8.7106 28.8608C8.7106 28.9031 9.00698 29.7638 9.00698 29.7638L9.50093 30.808L9.37391 31.1043L9.6844 30.6528V30.0037L9.85376 29.4816L10.0655 30.0884V30.6105L10.2771 31.3724H11.2792L11.8013 30.6387L12.38 29.1007L12.9022 30.9491L12.507 32.0074L13.1139 33.8841L13.7348 33.2491C13.8484 32.7874 13.9052 32.3135 13.9042 31.8381L14.7792 28.7902V33.6442L15.132 34.8859L15.8659 34.0957L16.1623 33.0375L16.5998 30.8645L17.0091 33.2209L16.6844 34.632L17.0091 36.5087H18.4204V35.4786L18.5615 33.6019C18.7228 33.1212 18.9112 32.6501 19.126 32.1908V37.6657C19.126 37.6657 19.9728 38.7522 19.9728 38.6393C19.9728 38.5264 20.5373 37.2283 20.5373 37.2283L21.0595 35.4363L21.4123 37.8491V39.5565L21.8357 40.6995C21.8357 40.6995 22.5837 39.5283 22.6119 39.4436C22.6401 39.359 22.3155 38.4136 22.4002 38.2725C22.4849 38.1314 23.1623 36.0148 23.1623 36.0148L23.7551 38.6252L23.1623 39.7682L23.6845 41.4473L24.5313 42.6467C24.9766 42.2459 25.4006 41.8221 25.8014 41.3768C25.6808 40.9164 25.6238 40.4416 25.6321 39.9657C25.7168 39.6412 26.0978 37.7645 26.0978 37.7645L26.4789 40.8829C26.338 41.1238 26.2558 41.3945 26.239 41.6731C26.239 41.9976 26.4789 44.0578 26.4789 44.0578C26.4789 44.0578 27.4809 43.4934 27.4809 43.324C27.4809 43.1547 27.5656 41.532 27.5656 41.4191C27.5656 41.3062 27.9466 40.008 27.9466 40.008L28.3277 41.7154V42.8584L28.737 44.2694V45.6805L29.4991 47.3879L30.5293 45.9768V43.5639L31.9406 40.008C32.0253 39.7964 32.2652 43.1547 32.2934 43.2394C32.3217 43.324 31.7713 44.9185 31.7713 45.0032C31.7713 45.0878 32.2652 47.0633 32.2652 47.0633L32.1805 48.2062L33.239 49.2081L34.6503 47.7971L34.3398 45.5535L35.0031 41.8001L35.7088 46.259L35.356 48.3332C35.5531 49.2921 35.6852 50.2633 35.7511 51.24C35.6822 52.328 35.7247 53.4202 35.8781 54.4996L37.0213 57.3217L37.6423 55.6425L37.4165 53.921L38.2915 50.8731V48.94L38.9548 51.6775V53.3142L39.3499 56.3621V57.3357L40.3661 56.6725L40.4508 54.3866L41.4245 51.9173V50.6333L42.1302 55.2192C42.0859 55.8487 42.0859 56.4805 42.1302 57.11C42.2149 57.3781 42.5254 58.8314 42.5254 58.8314L43.104 57.9566L43.6262 55.3603L44.3742 53.7799V55.8118L44.106 58.1542L44.3742 59.791L45.5173 60.4118L46.3923 59.1278L46.1665 57.237L46.9568 55.3461L47.5355 59.3112L48.2411 61.6535L50.6262 62.8388C50.6262 62.8388 51.7694 60.0167 51.7694 59.8474C51.7694 59.6781 51.9811 56.5032 51.9811 56.5032L52.9266 55.3603V58.5351L52.4045 59.9462L52.9266 62.0204L52.4891 63.1634L53.4206 65.5904L52.6303 66.2959L53.7311 68.4971L55.0154 66.1548L54.7472 64.8284C54.7472 64.8284 55.7634 63.3327 55.6222 63.1069C55.4748 62.708 55.3615 62.2974 55.2835 61.8793C55.2835 61.8793 56.2714 56.8842 56.3279 57.11L57.2593 61.5266C57.2104 61.7557 57.1346 61.9783 57.0335 62.1898C56.8783 62.5002 57.9085 64.3487 57.9085 64.3487L57.471 65.28L57.9085 67.0438C57.9085 67.0438 59.1928 64.4898 59.1364 64.3487C58.921 63.6683 58.7466 62.9756 58.6142 62.2744L59.4469 59.537L60.2372 62.5425L60.7594 63.8124V65.8867L62.1707 66.9873L63.8924 63.6431V60.821L64.2453 59.283C64.2453 59.283 64.7675 60.8775 64.8239 61.0891C64.7941 61.4363 64.7182 61.778 64.5981 62.1051L65.6566 66.7333L66.715 64.8425C66.6228 64.3772 66.5662 63.9055 66.5457 63.4315C66.5457 63.1634 67.2937 60.4824 67.2937 60.4824L68.2251 63.6996L67.7876 64.5321L68.6627 67.3542L71.4853 68.4407L72.7695 65.5339V64.4333L73.207 62.7965L74.082 65.2658C74.082 65.2658 73.6869 65.6609 73.7292 65.802C73.7716 65.9431 74.3925 68.4548 74.3925 68.4548L75.9732 67.9327V65.7738C75.9732 65.7738 76.5518 64.1934 76.6365 64.4474L77.9208 68.4548V69.3861L79.8119 69.6965C80.0531 68.8092 80.2463 67.9096 80.3905 67.0014C80.3905 66.7333 81.0962 65.675 81.0962 65.5904C81.0962 65.5057 80.5176 63.6573 80.5176 63.6573L81.0962 60.172L81.8865 63.6149V69.4426C81.8865 69.4426 83.2978 67.326 83.2978 67.199C83.2978 67.072 83.566 64.9131 83.566 64.9131L84.314 68.0033L85.4995 70.7407L86.1204 68.7088L85.81 67.7352C85.9464 67.0951 86.1208 66.4637 86.3321 65.8444L87.3906 68.8922L88.0116 71.3616H89.6487L89.9451 70.3456L89.691 68.0174L90.5237 65.9431L91.1447 67.9751V68.991L91.4552 69.9646V71.7285L93.0358 73.1395C92.8804 72.7452 92.776 72.3327 92.7253 71.9119C92.7253 71.6438 93.304 70.0634 93.304 69.9223C93.304 69.7812 93.6144 67.4671 93.6144 67.4671L94.2354 70.1763V71.8978L94.9411 73.4358L95.3786 72.3352V70.4444L96.6064 67.4671L97.0016 70.9241L96.8745 71.8554L97.6649 73.8027L99.0762 75.5242L100.219 74.5082L99.8242 73.8874C99.8242 73.8874 101.108 69.5272 101.235 69.6542C101.362 69.7812 101.941 72.7021 101.983 73.0125C101.925 73.7099 101.821 74.4028 101.673 75.0868L102.252 76.272L105.074 77.7677V75.6512L106.048 71.3334L107.459 74.0567L106.754 76.9634C106.754 76.9634 108.518 81.4647 108.518 81.1966C108.518 80.9285 110.197 74.8469 110.197 74.8469V71.5027L111.256 68.4125L112.399 73.0831L111.524 74.3248L112.413 78.0359V80.0678L113.74 82.9745L113.119 84.4702L114.615 88.9715L115.758 85.9377C115.758 85.9377 115.236 84.0328 115.236 83.7647C115.236 83.4966 116.562 81.2954 116.294 81.0273C116.026 80.7592 115.504 80.1524 115.772 79.7997C116.04 79.4469 117.719 72.6598 117.719 72.6598L119.046 78.1346L118.213 79.5457L119.046 82.3678L120.048 84.2163L121.149 80.7168L121.699 77.8947L122.673 80.8015V83.3555H124.169L125.312 81.2812L125.002 79.9549C125.002 79.7855 125.58 77.9229 125.665 78.5438C125.75 79.1647 126.286 81.5917 126.286 81.5917L126.018 82.3819L126.286 84.4561L127.697 86.8408C127.886 86.3268 128.032 85.7982 128.135 85.2604C128.135 85.0911 127.697 84.2445 127.697 84.2445C127.697 84.2445 128.318 80.3217 128.361 80.5898L128.897 83.807L128.728 84.823C128.728 84.823 129.349 86.2341 129.391 86.4175C129.895 86.7116 130.424 86.9618 130.972 87.1653L131.593 84.696L131.903 82.4524L132.298 83.7365V85.2745L132.778 87.2641L133.399 88.8022L133.709 88.2236L133.484 87.0807L134.584 83.7365L136.617 89.3807L135.996 89.8605L136.617 91.1868L137.591 90.0439C137.531 89.5684 137.441 89.0971 137.322 88.6328C137.252 88.6328 137.591 85.2604 137.591 85.2604L138.381 88.8304L138.113 90.1568L138.649 91.7936L139.891 92.1463L139.792 91.0457L140.272 88.4917L140.822 90.566V92.6825L142.742 94.277L142.516 93.0917L142.163 91.9488L142.742 87.2359L143.984 93.6703V94.9967L145.085 92.485L145.437 90.058L146.411 94.9967L147.244 93.4163L147.681 90.7212L147.95 93.5433L148.839 96.9439L150.56 95.7163C150.596 94.5495 150.7 93.3858 150.871 92.231C150.998 92.231 151.704 96.0691 151.704 96.0691L152.931 111.435H-36.7333L-29.8461 6.77785Z"
)
.toNodes()
val path2 =
PathParser().parsePathString(
"M291.987 12.3375L288.995 11.7589V8.45708L287.273 5.40921L285.692 8.85217V11.6743L284.281 14.327L282.362 12.6338L280.795 8.24539L279.694 11.8154L279.144 16.0485H275.432L274.148 14.2565V13.3816L272.948 10.4749L272.398 13.9178L273.231 14.708L272.398 15.9638L270.831 15.1736V13.9884L270.182 11.9988L269.448 14.4399V15.4277L268.347 16.6835L267.148 18.0099V19.2375L266.005 18.9412V17.6853L265.087 17.0927L265.426 16.1473L264.763 14.9055L263.888 16.4295L264.396 16.8669L264.001 18.1086L264.099 18.7295L263.507 19.6326L263.027 18.913L263.14 18.4191L262.589 17.516L262.335 18.6589L262.589 19.0681L262.222 20.0136L261.559 19.5056L261.15 18.0945L260.938 19.4068L260.289 20.4369L260.007 21.1565L259.456 20.3381L258.793 19.2234L258.511 21.1424V22.0455L258.172 22.5252L256.944 23.7387L256.718 24.4019L255.942 24.035L255.716 22.751L254.982 21.7633L254.757 23.3859V24.67C254.757 24.67 254.107 25.4602 254.065 25.559C254.023 25.6577 253.924 26.6173 253.924 26.6173L253.148 25.8553V25.1921L252.922 24.1338L252.597 25.1921L252.23 25.9259L252.456 27.0124L251.44 28.4234L250.974 27.5909L251.2 26.6031L250.692 24.7829L250.043 26.6031V27.2663L249.634 28.6774L249.351 29.9614C249.022 29.5852 248.716 29.1894 248.434 28.7762C248.434 28.6774 248.66 27.9154 248.66 27.9154L247.827 26.6314L247.503 28.8185V29.8062C247.503 29.8062 247.093 30.8363 247.037 31.0338C246.98 31.2314 245.428 31.0338 245.428 31.0338V29.6228L244.878 28.5645L244.553 29.9756V31.0903L243.904 32.4308L243.071 31.7394V30.1166L242.422 32.4308V33.6584L241.956 34.6885L241.222 33.5032L240.573 31.9087V33.3197L239.98 34.3498V35.013L238.569 34.6885V33.4609L238.202 32.0498L237.511 33.5737V34.8013L236.777 36.9179L235.902 36.2829L235.619 35.7749L236.085 35.0553L235.097 33.6443L234.547 35.3657C234.547 35.3657 234.885 36.0007 234.885 36.0572C234.885 36.1136 234.434 37.0167 234.434 37.0167L233.686 38.1314L233.869 38.4418L233.404 37.9621V37.2707L233.164 36.7062L232.853 37.3553L232.952 37.9198L232.642 38.7382H231.16L230.369 37.9621L229.523 36.3112L228.732 38.2866L229.325 39.4155L228.422 41.4191L227.504 40.7419C227.307 40.6008 227.236 39.232 227.236 39.232L225.924 35.9725V41.1652L225.402 42.4916L224.315 41.6449L223.863 40.5161L223.186 38.075L222.579 40.5866C222.579 40.5866 223.059 41.9977 223.059 42.1529C223.059 42.3081 222.579 44.1707 222.579 44.1707H220.49V43.0701L220.279 41.0523C220.032 40.5641 219.754 40.0927 219.446 39.6412V45.483C219.446 45.483 218.176 46.64 218.176 46.5271C217.923 46.0424 217.645 45.5714 217.343 45.1161L216.553 43.1971L216.031 45.7793V47.5995L215.395 48.813C215.395 48.813 214.281 47.5572 214.238 47.402C214.196 47.2468 214.676 46.3014 214.549 46.1462C214.422 45.9909 213.42 43.7192 213.42 43.7192L212.545 46.5413L213.42 47.7689L212.629 49.5609L211.359 50.8449C211.359 50.8449 209.482 49.5891 209.482 49.4339C209.482 49.2787 209.877 48.3333 209.75 48.0228C209.623 47.7124 209.059 45.6664 209.059 45.6664L208.494 48.9965C208.694 49.2367 208.817 49.5318 208.847 49.8431C208.847 50.1959 208.494 52.383 208.494 52.383C208.494 52.383 207.012 51.7903 207.012 51.5928C207.012 51.3952 206.885 49.6738 206.885 49.5468C206.885 49.4198 206.321 47.9805 206.321 47.9805L205.756 49.8008V51.0284L205.149 52.5947L205.234 54.1609L204.105 55.9812L202.581 54.4431V51.9032L200.45 48.0934C200.21 49.2348 200.035 50.3891 199.928 51.5505C199.928 51.6492 200.718 53.3425 200.718 53.4413C200.718 53.5401 199.97 55.6425 199.97 55.6425L200.097 56.8701L198.53 57.9425L196.371 56.4327L196.823 54.0339L195.835 50.0265L194.79 54.7818L195.313 56.9971C195.019 58.0161 194.821 59.06 194.72 60.1155C194.819 61.2808 194.753 62.4542 194.522 63.6008L192.815 66.5782L191.897 64.7861L192.222 62.9517L190.909 59.6922V57.618L189.921 60.5389V62.2886L189.456 65.5904V66.6346L187.946 65.929L187.819 63.4738L186.407 60.8352V59.4241L185.363 64.3345C185.429 65.0102 185.429 65.6908 185.363 66.3665C185.236 66.6487 184.77 68.2008 184.77 68.2008L183.923 67.2554L183.133 64.4333L182.018 62.7401V64.9131L182.413 67.4107L182.018 69.1604L180.311 69.8235L178.998 68.4125L179.323 66.3806L178.151 64.3487L177.304 68.5818L176.26 71.0794L172.732 72.3493C172.732 72.3493 171.024 69.2873 171.024 69.1462C171.024 69.0051 170.714 65.5622 170.714 65.5622L169.302 64.3345V67.7352L170.093 69.2873L169.302 71.5027L169.952 72.7303L168.145 75.1996C168.145 75.1996 164.984 72.9702 165.181 72.7303C165.394 72.3124 165.56 71.8724 165.675 71.418C165.675 71.418 164.264 66.0843 164.137 66.3101L162.726 71.0229C162.798 71.2731 162.907 71.5109 163.05 71.7285C163.276 72.053 161.738 74.0426 161.738 74.0426L162.387 75.0303L161.738 76.9211C161.073 76.0159 160.461 75.0737 159.903 74.099C160.224 73.3825 160.489 72.6417 160.693 71.8837L159.452 68.9628L158.28 72.1659L157.504 73.5769V75.7923L155.458 76.9776L152.903 73.3935V70.4162L152.381 68.7653C152.381 68.7653 151.591 70.4585 151.534 70.6984C151.577 71.0769 151.687 71.4447 151.859 71.7849L150.292 76.7377L148.726 74.7058C148.87 74.1995 148.96 73.6791 148.994 73.1536C148.994 72.8714 147.879 69.9929 147.879 69.9929L146.468 73.4358L147.117 74.3248L145.804 77.415L141.683 78.5721L139.919 75.3831V74.1978L139.27 72.4481L137.957 75.0868C137.957 75.0868 138.55 75.5101 138.48 75.6512C138.409 75.7923 137.492 78.4733 137.492 78.4733L135.135 77.9089V75.5947C135.135 75.5947 134.288 73.9015 134.147 74.1837L132.256 78.4168V79.4046L129.433 79.7291C129.085 78.8095 128.802 77.8664 128.586 76.907C128.586 76.6248 127.542 75.496 127.542 75.3549C127.542 75.2138 128.389 73.2806 128.389 73.2806L127.542 69.5554L126.371 73.2383V79.461C126.371 79.461 124.211 77.2033 124.211 77.0622C124.211 76.9211 123.816 74.607 123.816 74.607L122.701 77.9089L120.937 80.8297L120.02 78.6567L120.471 77.6125C120.261 76.9158 119.997 76.2365 119.681 75.5806L118.115 78.8402L117.197 81.4788H114.77L114.332 80.3923L114.713 77.8947L113.471 75.6794L112.554 77.8524V78.9389L112.102 79.9831V81.8739L109.746 83.3837C109.969 82.9697 110.121 82.5215 110.197 82.0574C110.197 81.7751 109.35 80.0819 109.35 79.9408C109.35 79.7997 108.899 77.3162 108.899 77.3162L107.981 80.223V82.0574L106.937 83.7083L106.288 82.523V80.4911L104.453 77.3021L103.86 80.9991L104.058 81.9868L102.887 84.061L100.854 85.8954L99.1466 84.8089L99.7394 84.1457C99.1603 82.6256 98.4911 81.1413 97.7353 79.7009C97.6083 79.8843 96.691 82.9604 96.6204 83.285C96.706 84.0352 96.8571 84.7764 97.072 85.5003L96.2253 86.7702L91.9914 88.3788V86.1211L90.5801 81.507L88.3502 84.3291L89.3946 87.4475C89.3946 87.4475 86.7837 92.2592 86.7837 91.977C86.7837 91.6948 84.2998 85.1899 84.2998 85.1899V81.6058L82.6909 78.2898L80.9832 83.285L82.2957 84.6113L80.9832 88.5764V90.7494L79.0215 93.8114L79.9388 95.42L77.709 100.232L76.0013 96.9862C76.3078 96.2302 76.5717 95.4576 76.7916 94.6721C76.7916 94.3899 74.8299 92.0335 75.2251 91.7512C75.6203 91.469 76.3965 90.8058 76.0154 90.4249C75.6344 90.0439 73.1928 82.7911 73.1928 82.7911L71.2311 88.6328L72.4731 90.0438L71.2311 93.12L69.8198 95.0954L68.1968 91.342L67.3783 88.2942L65.967 91.4126V94.15H63.7371L62.0294 91.9347L62.4811 90.5236C62.4811 90.3402 61.6343 88.3506 61.4931 88.9715C61.352 89.5923 60.5758 92.231 60.5758 92.231L60.971 93.0776L60.5758 95.2929L58.4871 97.8329C58.2113 97.293 57.9936 96.7254 57.8379 96.1396C57.8379 95.9561 58.4871 95.0531 58.4871 95.0531C58.4871 95.0531 57.5697 90.8199 57.4992 91.1445L56.6524 94.6157L56.9205 95.7022C56.9205 95.7022 56.0032 97.2543 55.9326 97.3954C55.1661 97.7166 54.3787 97.9853 53.5758 98.1997L52.6584 95.5611L52.2068 93.1623L51.614 94.5733V96.2242L50.8943 98.3408L49.9769 99.9918L49.5253 99.385L49.8499 98.1574L48.1846 94.5169L45.1785 100.599L46.0959 101.121L45.1785 102.532L43.7672 101.304C43.8524 100.767 43.9846 100.238 44.1624 99.7237C44.2753 99.7237 43.7672 96.1114 43.7672 96.1114L42.5394 99.9494L42.9345 101.36L42.1442 103.11L40.2954 103.491L40.4507 102.306L39.7168 99.5684L38.8982 101.784V104.041L36.0756 105.735L36.4002 104.465L36.9224 103.237L36.0756 98.1856L34.2127 105.1V106.511L32.5756 103.83L32.0534 101.233L30.6421 106.511L29.4002 104.818L28.751 101.995L28.3558 105.057L27.0151 108.627L24.4606 107.301C24.4098 106.049 24.2588 104.804 24.009 103.576C23.5121 104.918 23.0974 106.289 22.7671 107.682L20.9324 111.308H302.219L291.987 12.3375Z"
)
.toNodes()
}
object SwitchFullScreenSmallCliffPaths {
val path1 =
PathParser().parsePathString("M18.6761 82.8344C18.4361 81.7903 19.4664 80.9154 19.8474 79.9136C20.3979 78.5025 19.6216 76.908 19.3535 75.3841C19.0518 73.0344 19.6797 70.6598 21.1035 68.7663C22.5217 66.8989 24.1775 65.2245 26.0289 63.7853C24.407 64.6508 22.6934 65.3324 20.92 65.8172C20.2716 63.8129 20.2716 61.6552 20.92 59.6509C21.3293 58.7196 22.0067 57.9436 22.4725 57.0546C24.1942 53.7669 23.0511 49.0399 25.9443 46.7116L21.541 48.4895C22.4819 44.0871 23.5827 39.7128 24.8434 35.3668L22.5571 36.03C22.91 28.9748 25.6479 29.8214 27.158 17.6864C30.0935 28.1846 32.6056 30.922 34.0592 35.6914C32.8485 35.4544 31.6725 35.0656 30.5592 34.5343C30.473 38.7596 31.4124 42.9429 33.2971 46.7257C34.3979 48.9129 35.8374 51.1423 35.654 53.5834L32.8314 53.654L35.654 59.8767C36.8253 62.4166 37.9826 65.5209 36.5007 67.8773C36.2936 68.1311 36.166 68.4403 36.1338 68.7663C36.1338 69.246 36.6419 69.5565 37.037 69.8246C40.1842 71.9129 40.9322 76.132 41.412 79.8854L18.6761 82.8344Z")
.toNodes()
val path2 =
PathParser().parsePathString(
"M30.644 81.3246C30.3172 79.8515 30.3172 78.3247 30.644 76.8516C31.4288 73.0982 32.6312 69.4444 34.2287 65.9583C35.1037 63.8794 35.9976 61.8051 36.9102 59.7356C37.3786 58.8647 37.6485 57.901 37.7005 56.9135C35.792 58.0159 33.6244 58.5906 31.4202 58.5785C31.519 55.6436 34.8497 53.7104 35.3013 50.8037C35.4707 49.7595 37.6017 42.3374 39.7751 40.6724C38.0321 41.3937 36.182 41.8228 34.2993 41.9423C36.8743 36.6093 38.5527 30.8884 39.2671 25.0097C38.4228 25.5615 37.4508 25.887 36.4445 25.9551C35.64 23.5422 37.5735 21.1999 38.6743 18.8999C40.8336 14.3845 39.7893 5.04338 42.1038 0.556244C44.2349 4.47896 44.7853 10.5182 45.5474 14.9348C46.0496 16.5639 46.6722 18.1534 47.4103 19.6901C48.2147 21.6091 50.0071 23.1895 50.0777 25.3342C48.7536 24.2698 47.0899 23.7187 45.3921 23.7821C46.1067 24.4356 46.7077 25.2033 47.1704 26.0539C47.6593 27.0196 48.038 28.0373 48.2994 29.0876C49.4426 33.2079 50.0353 37.5539 52.5333 41.1239C54.2975 43.6497 52.7027 45.6251 53.6482 46.5282C52.8908 45.8578 51.9754 45.3909 50.9879 45.1712C50.0005 44.9515 48.9733 44.9863 48.003 45.2724C51.6804 50.4525 53.7695 56.5911 54.0152 62.9387C52.4854 62.5734 50.9164 62.398 49.3438 62.4166C53.3416 67.3255 55.692 73.3683 56.0616 79.6878C50.1623 79.4762 43.8256 80.605 37.9263 80.5909C35.2308 80.605 33.0573 80.0124 30.644 81.3246Z"
)
.toNodes()
val path3 =
PathParser().parsePathString(
"M17.0672 88.0271C17.2715 87.0975 17.2715 86.1346 17.0672 85.205C16.5706 82.8181 15.8084 80.4942 14.795 78.2767C14.2399 76.9503 13.6707 75.6334 13.0874 74.3258C12.7879 73.7639 12.619 73.1417 12.5934 72.5055C13.8073 73.2062 15.1858 73.5714 16.5874 73.5638C16.5874 71.7012 14.3999 70.4736 14.1176 68.6252C14.0188 67.962 12.7063 63.2773 11.295 62.1767C12.4049 62.6345 13.5826 62.9062 14.7809 62.981C13.1386 59.5769 12.0704 55.9248 11.6196 52.1723C12.1592 52.5272 12.7816 52.7362 13.4261 52.7791C13.9483 51.241 12.7063 49.7453 12.0148 48.292C10.6035 45.4699 11.3091 39.4729 9.82723 36.6508C8.41592 39.1484 8.11956 42.9864 7.63972 45.7944C7.32052 46.8337 6.92423 47.8478 6.4542 48.8282C5.94613 50.0558 4.80297 51.0576 4.76064 52.384C5.6033 51.7095 6.65971 51.3591 7.7385 51.3963C7.2877 51.8019 6.90631 52.2785 6.60945 52.8073C6.2978 53.4227 6.05637 54.0711 5.88969 54.7405C5.16992 57.365 4.78887 60.173 3.22231 62.3883C2.09327 63.9969 3.10941 65.2104 2.51666 65.8313C2.99727 65.4049 3.57826 65.1074 4.20523 64.9667C4.8322 64.8261 5.48461 64.8468 6.10137 65.027C3.75314 68.3366 2.42375 72.2603 2.27674 76.3154C3.2522 76.085 4.2524 75.976 5.2546 75.9908C2.68099 79.1191 1.16425 82.9819 0.921875 87.0252C4.67596 86.8841 8.6982 87.6038 12.4664 87.6038C14.1458 87.5755 15.5713 87.1946 17.0672 88.0271Z"
)
.toNodes()
val path4 =
PathParser().parsePathString(
"M23.6721 89.2124C23.8323 88.4921 23.8323 87.7455 23.6721 87.0252C23.2893 85.1923 22.7023 83.4079 21.9221 81.7056C21.4987 80.6896 21.0612 79.6784 20.6096 78.6718C20.3778 78.2362 20.2476 77.7538 20.2286 77.2608C21.1586 77.8007 22.2157 78.0832 23.2911 78.0792C23.2911 76.6682 21.6257 75.7086 21.3999 74.2835C21.3153 73.7755 20.2709 70.1773 19.2124 69.3448C20.0614 69.6968 20.9626 69.9066 21.8798 69.9657C20.6182 67.3529 19.798 64.5493 19.4523 61.6687C19.8727 61.9472 20.36 62.108 20.8636 62.1344C21.2588 60.9632 20.3132 59.8202 19.7769 58.6914C18.7184 56.4902 19.2406 51.9325 18.0975 49.7736C17.1924 52.0296 16.6265 54.4071 16.418 56.8288C16.1752 57.6263 15.8733 58.4045 15.5148 59.157C15.1196 60.0883 14.2446 60.8644 14.2164 61.8804C14.8624 61.3605 15.6739 61.09 16.5027 61.1184C16.1555 61.4393 15.8645 61.8161 15.6418 62.2331C15.4082 62.6824 15.2237 63.1555 15.0914 63.6442C14.7464 65.7025 14.0544 67.6873 13.045 69.5141C12.1841 70.7417 12.9603 71.7154 12.5087 72.1528C12.8784 71.8267 13.3249 71.5999 13.8063 71.4937C14.2877 71.3876 14.7882 71.4056 15.2608 71.546C13.4654 74.0738 12.4454 77.0696 12.3252 80.1676C13.0694 79.9901 13.8325 79.9048 14.5974 79.9136C12.625 82.3144 11.464 85.2783 11.2809 88.3799C14.1035 88.267 17.2507 88.8173 20.1298 88.8173C21.3245 88.6227 22.5497 88.7593 23.6721 89.2124Z"
)
.toNodes()
}
object SwitchFullScreenCliffPaths {
val path1 =
PathParser().parsePathString("M147.626 0.895752C116.234 2.36827 85.0954 7.25582 54.7621 15.4719L49.4697 29.3425C42.9788 32.1087 36.6548 35.2513 30.5301 38.7542C23.7135 42.9873 23.9393 44.1585 23.9393 44.1585V50.9739C18.3886 52.8834 13.3854 56.1133 9.36056 60.3856C2.76979 67.4408 4.18109 67.2009 4.18109 67.2009L14.5259 89.7777L50.3165 96.5931C51.0829 98.8437 52.218 100.951 53.6754 102.83C55.7924 105.299 58.9678 108.474 58.9678 108.474L72.0223 110.591L85.7825 139.164L79.1776 173.269L65.7703 200.079L61.2965 240.294H147.612L147.626 0.895752Z")
.toNodes()
val path2 =
PathParser().parsePathString("M4.19531 67.2151L14.5402 89.7919L50.3308 96.6072L58.8409 90.0317V83.4422L69.9055 79.6888L72.4882 75.2157L89.8895 69.1059V65.3384L37.2056 68.866L32.2661 66.5096L4.19531 67.2151Z")
.toNodes()
val path3 =
PathParser().parsePathString("M23.9536 50.988L45.0808 49.3512L48.736 44.7652L63.5547 42.1689L64.4861 39.8265L23.9536 44.1726V50.988Z")
.toNodes()
val path4 =
PathParser().parsePathString("M49.47 29.3566L59.5466 26.7744L62.2563 23.0916L69.0729 21.356L70.3713 18.1811L54.7623 15.486L49.47 29.3566Z")
.toNodes()
val path5 =
PathParser().parsePathString("M72.0366 110.605L86.1355 112.143L88.8028 117.547H92.6416L93.6577 124.842L85.7968 139.179L72.0366 110.605Z")
.toNodes()
val path6 =
PathParser().parsePathString("M65.7847 200.093L73.2928 198.217L80.2223 189.976L88.803 186.689L98.8373 173.044H87.0671L80.8715 164.563L79.192 173.284L65.7847 200.093Z")
.toNodes()
}
object SwitchFullScreenTreesPaths {
val trees1 =
PathParser().parsePathString("M4.61784 94.1869C4.82953 93.2274 3.89807 92.4372 3.54525 91.52C3.03718 90.2077 3.75694 88.7826 3.99686 87.3856C4.27392 85.2416 3.70159 83.0742 2.40209 81.3464C1.10984 79.6434 -0.398839 78.116 -2.08584 76.8028C-0.607414 77.5946 0.954653 78.2194 2.57145 78.6654C3.16677 76.8311 3.16677 74.8555 2.57145 73.0212C2.20451 72.1746 1.58354 71.469 1.16015 70.6506C-0.406393 67.6451 0.63797 63.3414 -2.00116 61.2107L2.00693 62.8334C1.06606 58.8166 0.0593338 54.8281 -1.01325 50.8677L1.07547 51.4745C0.750874 44.9978 -1.74713 45.8303 -3.15843 34.6971C-5.8399 44.2782 -8.14032 46.7616 -9.45283 51.1218C-8.34939 50.9044 -7.27776 50.5489 -6.26329 50.0635C-6.18549 53.9171 -7.0426 57.7323 -8.76129 61.1825C-9.76332 63.1862 -11.0758 65.204 -10.9206 67.4335H-8.39435L-11.0053 73.0776C-12.0778 75.3918 -13.1222 78.1997 -11.7815 80.3727C-11.5893 80.6055 -11.4713 80.8906 -11.4428 81.1912C-11.4428 81.6286 -11.9085 81.9108 -12.2754 82.1507C-15.098 84.0556 -15.8319 87.9077 -16.2694 91.3225L4.61784 94.1869Z")
.toNodes()
val trees2 =
PathParser().parsePathString(
"M283.152 93.4531C281.9 83.9536 279.434 74.6541 275.813 65.7824L281.092 67.8567C278.523 62.0432 275.733 56.3331 272.723 50.7266L276.124 51.9542C275.912 48.864 273.838 46.2112 273.09 43.1916C272.567 41.0609 272.709 38.8173 272.285 36.6725C271.862 34.5277 270.592 32.2983 268.475 31.748C268.8 31.3281 269.272 31.0477 269.797 30.9638C270.321 30.88 270.857 30.9989 271.297 31.2964C272.807 27.9946 269.66 24.5517 268.715 21.0382C267.854 17.7927 268.87 13.9829 267.021 11.1608C264.904 13.4891 266.09 16.7062 265.285 19.7541C264.87 21.0085 264.331 22.2185 263.676 23.3664C262.281 26.2063 261.466 29.2953 261.277 32.4535L263.422 31.9878C262.011 34.0903 261.926 36.7713 261.503 39.2688C260.854 43.021 259.353 46.5741 257.114 49.6542C258.784 50.1459 260.539 50.2805 262.265 50.0493C259.583 51.9542 259.442 55.6934 259.061 59.0376C259.02 60.2551 258.702 61.4472 258.13 62.5229C256.606 65.0063 252.696 65.9235 252.372 68.8162C254.758 69.4422 257.259 69.4906 259.668 68.9573C258.113 73.7718 255.955 78.3706 253.247 82.6444C251.585 85.3689 249.568 87.8601 247.249 90.0524L253.585 90.3205C253.265 92.2007 253.658 94.1328 254.686 95.739L283.152 93.4531Z"
)
.toNodes()
val trees3 =
PathParser().parsePathString(
"M184.446 112.883C183.768 107.753 182.436 102.731 180.48 97.9403L183.303 99.055C181.92 95.9131 180.409 92.8276 178.772 89.7985L180.607 90.4617C180.494 88.7826 179.365 87.3574 178.97 85.7347C178.688 84.5918 178.758 83.3783 178.532 82.2071C178.466 81.6166 178.239 81.0556 177.875 80.5853C177.512 80.1151 177.027 79.7535 176.472 79.5402C176.648 79.3182 176.9 79.1702 177.18 79.1258C177.46 79.0814 177.746 79.1437 177.982 79.3004C178.801 77.5083 177.093 75.6598 176.571 73.7549C176.049 71.85 176.26 70.3825 175.653 68.4494C175.131 70.3261 174.863 73.9807 174.426 75.6175C174.242 76.3089 172.647 78.2562 172.548 79.9494L173.706 79.6955C173.088 80.9209 172.732 82.2617 172.661 83.6323C172.316 85.671 171.505 87.6026 170.29 89.2764C171.205 89.5471 172.168 89.6192 173.113 89.4881C171.702 90.5182 171.546 92.5783 171.377 94.3421C171.357 94.997 171.188 95.6388 170.883 96.2188C170.065 97.6299 167.948 98.0532 167.778 99.6195C169.067 99.952 170.416 99.9762 171.716 99.69C170.875 102.291 169.708 104.775 168.244 107.084C167.345 108.558 166.253 109.906 164.998 111.091L168.413 111.232C168.237 112.25 168.449 113.297 169.006 114.167L184.446 112.883Z"
)
.toNodes()
val trees4 =
PathParser().parsePathString(
"M237.581 94.9771C237.8 93.5218 238.351 92.1363 239.19 90.9274C239.98 90.0508 240.593 89.0304 240.997 87.9218C241.106 86.6612 240.927 85.3923 240.475 84.2108C240.256 83.6159 240.198 82.9738 240.307 82.3494C240.416 81.725 240.688 81.1404 241.096 80.655C239.954 81.2588 238.619 81.3856 237.384 81.0077C237.553 79.9494 238.541 79.2298 239.176 78.3691C240.587 76.45 240.348 73.7973 240.771 71.4408C241.387 68.9334 242.422 66.548 243.833 64.3856C242.546 65.1508 241.094 65.596 239.6 65.6837C241.334 62.6796 242.605 59.4303 243.368 56.0463C242.574 56.5042 241.634 56.6405 240.743 56.4272C243.198 53.6051 243.452 49.8094 243.777 46.0419C244.2 41.1315 245.188 37.5757 245.71 32.8204C245.88 36.0094 246.797 40.9481 247.023 43.7419C247.249 46.5358 249.747 50.2751 250.283 51.6861C250.055 51.3751 249.758 51.1213 249.415 50.945C249.072 50.7686 248.693 50.6746 248.307 50.6702C249.302 54.5925 250.503 58.4595 251.906 62.2549L249.916 62.4242C251.774 65.1812 252.874 68.3784 253.106 71.6948L251.271 71.85C251.878 73.261 251.031 74.9825 251.666 76.3795C251.954 76.8843 252.295 77.3573 252.682 77.7905C254.686 80.4856 254.094 84.9445 256.916 86.6519C255.693 86.6872 254.474 86.5007 253.317 86.1016C252.809 86.3556 252.979 87.1317 253.317 87.6255C254.63 89.8268 256.747 91.6188 257.368 94.1164C257.415 94.2256 257.439 94.3432 257.439 94.4621C257.439 94.5809 257.415 94.6986 257.368 94.8078C257.241 95.0053 256.86 95.0194 256.789 94.8078L257.608 96.2188L237.581 94.9771Z"
)
.toNodes()
val trees5 =
PathParser().parsePathString(
"M192.504 103.966C192.648 102.952 193.025 101.986 193.605 101.143C194.148 100.543 194.569 99.8433 194.847 99.0833C194.925 98.2162 194.804 97.3429 194.494 96.5293C194.344 96.1212 194.303 95.6804 194.378 95.2518C194.452 94.8231 194.638 94.4217 194.918 94.0882C194.132 94.5029 193.213 94.5892 192.363 94.3281C192.49 93.5943 193.154 93.1146 193.591 92.5219C194.579 91.1955 194.396 89.3753 194.692 87.7526C195.109 86.0128 195.82 84.3569 196.795 82.8562C195.908 83.3875 194.906 83.6973 193.873 83.7593C195.068 81.6968 195.943 79.4657 196.47 77.1415C195.924 77.4583 195.278 77.5542 194.664 77.4096C196.357 75.4341 196.527 72.866 196.752 70.2697C197.035 66.8972 197.698 64.4138 198.079 61.1825C198.192 63.3696 198.827 66.8267 198.982 68.6893C199.138 70.5519 200.845 73.1764 201.226 74.15C201.065 73.9276 200.853 73.7474 200.607 73.6246C200.361 73.5017 200.09 73.44 199.815 73.4445C200.497 76.139 201.322 78.7955 202.285 81.4028L200.873 81.5157C202.185 83.4124 202.969 85.6231 203.146 87.9219L201.89 88.0207C202.299 88.9943 201.72 90.1796 202.158 91.1391C202.353 91.4872 202.585 91.8135 202.849 92.1127C204.261 93.9612 203.809 97.0232 205.785 98.2084C204.945 98.2315 204.109 98.1024 203.315 97.8274C202.962 97.9968 203.089 98.533 203.315 98.8716C204.218 100.381 205.672 101.623 206.138 103.331C206.17 103.406 206.187 103.488 206.187 103.57C206.187 103.653 206.17 103.735 206.138 103.81C206.053 103.951 205.785 103.966 205.742 103.81L206.307 104.784L192.504 103.966Z"
)
.toNodes()
val trees6 =
PathParser().parsePathString(
"M226.009 34.3021C226.038 35.4288 225.866 36.5518 225.5 37.618C225.204 38.3236 224.752 38.9444 224.414 39.6217C223.407 41.4847 222.824 43.5468 222.706 45.661C223.625 45.6514 224.524 45.3878 225.303 44.8991C223.765 57.3022 220.787 55.6089 219.446 60.4206C222.113 59.7292 222.805 58.4028 224.894 57.6972C223.792 59.1735 223.167 60.9505 223.101 62.7911C223.158 63.8323 223.116 64.8765 222.974 65.9095C222.678 67.2077 221.803 68.2942 221.379 69.5501C220.857 71.1022 220.998 72.9507 219.968 74.1924C219.079 75.2083 217.357 75.9562 217.668 77.2685C219.252 77.3638 220.832 77.0118 222.226 76.2526C218.698 82.6446 215.071 89.3753 214.916 96.6845L241.476 95.2735C241.053 92.155 238.654 89.6293 237.468 86.8072C235.93 83.1808 236.17 78.8489 233.968 75.5188C235.237 76.4131 236.764 76.8644 238.315 76.8028C236.692 75.5985 235.547 73.8592 235.083 71.8924C233.491 67.3167 232.264 62.622 231.414 57.8525C232.087 58.5276 232.903 59.043 233.802 59.3605C234.701 59.678 235.66 59.7895 236.607 59.6868C234.023 57.3538 232.051 54.4225 230.863 51.15L230.045 43.7702C231.197 44.5431 232.594 44.8646 233.968 44.6733C231.865 43.5444 231.146 40.9058 230.722 38.5634C229.494 32.3689 228.746 26.1744 227.519 19.994C227.109 22.675 226.94 25.5113 226.644 27.5714C226.287 29.7989 226.075 32.0471 226.009 34.3021Z"
)
.toNodes()
val trees7 =
PathParser().parsePathString(
"M186.492 71.9347C186.515 72.646 186.339 73.3495 185.984 73.9666C185.688 74.404 185.236 74.785 184.897 75.1942C183.947 76.2175 183.349 77.5178 183.19 78.9053C184.076 78.9066 184.956 78.7489 185.787 78.4396C184.248 86.0734 181.27 85.0292 179.93 87.9924C182.597 87.5691 183.274 86.7507 185.377 86.3133C184.877 86.6823 184.46 87.1515 184.151 87.6908C183.843 88.2301 183.65 88.8278 183.585 89.4458C183.642 90.0882 183.599 90.7355 183.458 91.3648C183.162 92.155 182.287 92.7759 181.863 93.6084C181.44 94.4409 181.482 95.7109 180.452 96.4305C179.422 97.1501 177.841 97.517 178.151 98.3213C179.696 98.3858 181.239 98.1756 182.71 97.7004C179.182 101.637 175.555 105.772 175.399 110.273L201.96 109.44C201.537 107.521 199.137 106.012 197.952 104.219C196.414 101.99 196.654 99.3231 194.452 97.3053C195.828 97.8757 197.31 98.1451 198.799 98.0955C197.373 97.5424 196.215 96.4608 195.567 95.0759C194.013 92.3495 192.781 89.4515 191.898 86.4403C193.476 87.3305 195.286 87.7239 197.091 87.5691C194.732 86.3712 192.746 84.5511 191.347 82.3059L190.529 77.7623C191.776 78.2472 193.119 78.4356 194.452 78.3126C193.632 78.0179 192.902 77.516 192.333 76.8559C191.764 76.1957 191.376 75.3997 191.206 74.5451C189.978 70.7353 189.23 66.9255 188.002 63.1157C187.593 64.7666 187.424 66.5163 187.127 67.7721C186.771 69.1337 186.558 70.5289 186.492 71.9347Z"
)
.toNodes()
val trees8 =
PathParser().parsePathString(
"M42.8218 72.4709C42.8395 73.1371 42.7392 73.8011 42.5254 74.4323C42.356 74.8556 42.0879 75.2225 41.8762 75.6176C41.2777 76.7229 40.9307 77.9467 40.86 79.2016C41.4047 79.196 41.9371 79.0397 42.3984 78.7501C41.481 86.1158 39.7169 85.0998 38.9266 87.9643C40.5072 87.5551 40.9165 86.7649 42.1584 86.3557C41.5254 87.223 41.1665 88.2599 41.1282 89.333C41.1634 89.95 41.1398 90.5689 41.0576 91.1815C40.8883 91.9434 40.3661 92.5925 40.1121 93.3404C39.858 94.0882 39.8863 95.3582 39.2371 96.1625C38.5879 96.9668 37.6846 97.2067 37.8258 97.9969C38.768 98.0524 39.7069 97.8421 40.5354 97.3901C38.4467 101.186 36.3015 105.179 36.2028 109.511L51.9529 108.707C51.6988 106.858 50.3016 105.391 49.5678 103.683C48.6645 101.524 48.8057 98.9705 47.4931 97.0232C48.2482 97.5515 49.1549 97.819 50.0758 97.7852C49.1156 97.0574 48.4454 96.0122 48.1847 94.8361C47.2415 92.1227 46.5148 89.339 46.0113 86.5109C46.4099 86.9109 46.8933 87.2163 47.4259 87.4044C47.9584 87.5924 48.5264 87.6584 49.0879 87.5974C47.5593 86.2102 46.3919 84.4715 45.6867 82.5317L45.2068 78.1574C45.8916 78.6143 46.7198 78.805 47.5355 78.6936C46.9703 78.2647 46.5049 77.7184 46.1711 77.0924C45.8373 76.4664 45.6432 75.7755 45.602 75.0673C44.8681 71.3985 44.4306 67.7157 43.6968 64.0469C43.4568 65.6414 43.358 67.3206 43.1746 68.5341C42.9734 69.8376 42.8556 71.1525 42.8218 72.4709Z"
)
.toNodes()
val trees9 =
PathParser().parsePathString(
"M-2.22693 113.462C-0.97931 103.963 1.48235 94.6634 5.09772 85.7911L-0.180544 87.9218C2.38802 82.1083 5.17769 76.3982 8.18847 70.7917L4.78723 72.0193C4.99893 68.9291 7.07354 66.2763 7.82153 63.2567C8.34371 61.126 8.20258 58.8824 8.62597 56.7376C9.04936 54.5928 10.3195 52.3634 12.4365 51.8131C12.1115 51.3932 11.6389 51.1128 11.1145 51.0289C10.5902 50.9451 10.0536 51.064 9.61388 51.3615C8.10379 48.0597 11.251 44.6167 12.1966 41.1032C13.0575 37.8578 12.0413 34.048 13.8901 31.2259C16.0071 33.5541 14.8216 36.7713 15.626 39.8192C16.0414 41.0736 16.5803 42.2836 17.2349 43.4315C18.6296 46.2714 19.4452 49.3604 19.6341 52.5186L17.4889 52.0529C18.9002 54.1554 18.9849 56.8364 19.4083 59.334C20.0567 63.0861 21.5583 66.6392 23.7975 69.7193C22.1271 70.211 20.372 70.3456 18.6462 70.1144C21.3277 72.0193 21.4688 75.7586 21.8499 79.1028C21.8909 80.3203 22.2095 81.5123 22.7813 82.588C24.3055 85.0715 28.2148 85.9887 28.5394 88.8813C26.1531 89.5074 23.6518 89.5557 21.243 89.0224C22.7985 93.8369 24.9561 98.4357 27.6644 102.71C29.3262 105.434 31.3433 107.925 33.6624 110.118L27.3257 110.386C27.6461 112.266 27.2536 114.198 26.2249 115.804L-2.22693 113.462Z"
)
.toNodes()
val trees10 =
PathParser().parsePathString(
"M40.5213 110.174C40.3023 108.719 39.7518 107.333 38.9124 106.124C38.1228 105.248 37.5095 104.227 37.106 103.119C36.9967 101.858 37.1752 100.589 37.6282 99.4078C37.8459 98.8151 37.9031 98.1754 37.794 97.5534C37.685 96.9315 37.4136 96.3494 37.0072 95.8661C38.151 96.4652 39.4855 96.5869 40.7189 96.2047C40.5495 95.1464 39.5616 94.4268 38.9265 93.566C37.5152 91.647 37.7552 88.9942 37.3318 86.6378C36.716 84.1302 35.6806 81.7449 34.2693 79.5826C35.5563 80.3478 37.0083 80.793 38.5032 80.8807C36.7683 77.8766 35.4979 74.6273 34.735 71.2432C35.5291 71.7012 36.4685 71.8375 37.36 71.6243C34.9043 68.8022 34.6503 65.0064 34.3257 61.2389C33.9023 56.3285 32.9144 52.7726 32.3922 48.0174C32.2229 51.2064 31.3055 56.145 31.0797 58.9389C30.8539 61.7328 28.4265 65.3451 27.8478 66.7561C28.0757 66.445 28.3729 66.1913 28.7158 66.0149C29.0587 65.8386 29.4381 65.7445 29.8237 65.7402C28.8292 69.6625 27.6279 73.5294 26.2248 77.3249L28.2148 77.4942C26.3567 80.2512 25.2567 83.4484 25.0252 86.7648L26.8599 86.92C26.2531 88.3311 27.0999 90.0525 26.4648 91.4495C26.1766 91.9542 25.836 92.4272 25.4486 92.8605C23.4587 95.5556 24.0373 100.015 21.2147 101.722C22.4377 101.757 23.657 101.571 24.8135 101.172C25.3216 101.426 25.1523 102.202 24.8135 102.696C23.501 104.897 21.3841 106.689 20.7631 109.186C20.7161 109.296 20.6919 109.413 20.6919 109.532C20.6919 109.651 20.7161 109.769 20.7631 109.878C20.8901 110.075 21.2712 110.089 21.3417 109.878L20.5232 111.289L40.5213 110.174Z"
)
.toNodes()
val trees11 =
PathParser().parsePathString(
"M210.484 55.8064C210.462 56.6261 210.586 57.4433 210.851 58.2193C211.063 58.7273 211.388 59.1788 211.642 59.6304C212.375 60.9886 212.799 62.4918 212.884 64.0328C212.213 64.0231 211.558 63.8277 210.992 63.4684C212.107 72.4991 214.281 71.2715 215.226 74.7568C213.279 74.2629 212.785 73.3457 211.261 72.7813C212.066 73.8557 212.524 75.1505 212.573 76.4923C212.529 77.2506 212.557 78.0113 212.658 78.7642C212.869 79.7096 213.519 80.4997 213.829 81.4169C214.21 82.5458 214.111 83.9004 214.902 84.8034C215.692 85.7065 216.807 86.0875 216.581 87.047C215.424 87.1188 214.27 86.8645 213.25 86.3132C215.819 90.9697 218.458 95.866 218.571 101.186L199.222 100.198C199.533 97.9262 201.254 96.1341 202.144 94.0317C203.258 91.393 203.089 88.2323 204.684 85.8617C203.757 86.5138 202.641 86.8413 201.508 86.793C202.693 85.9145 203.528 84.6447 203.865 83.2089C205.023 79.8793 205.914 76.4633 206.533 72.993C206.043 73.4858 205.449 73.8622 204.794 74.0943C204.14 74.3263 203.441 74.4081 202.75 74.3334C204.651 72.6379 206.105 70.5008 206.984 68.1107L207.577 62.7346C206.745 63.283 205.743 63.5133 204.754 63.3837C206.293 62.5653 206.787 60.6463 207.125 58.9389C208.029 54.4236 208.537 49.9223 209.454 45.407C209.75 47.3683 209.877 49.4285 210.103 50.9242C210.335 52.5417 210.462 54.1725 210.484 55.8064Z"
)
.toNodes()
}
object SwitchFullScreenAnimationPaths {
val modeDay1 = PathParser().parsePathString(
"M 11.2395721 0.808197 L 29.7094721 0.808197 Q 40.8551721 0.808197 40.8551721 11.953897 L 40.8551721 11.953897 Q 40.8551721 23.099597 29.7094721 23.099597 L 11.2395721 23.099597 Q 0.0938721 23.099597 0.0938721 11.953897 L 0.0938721 11.953897 Q 0.0938721 0.808197 11.2395721 0.808197 Z"
).toNodes()
val modeDay2 = PathParser().parsePathString(
"M 11.2395 3.9927 C 15.6363493504 3.9927 19.2007 7.55705064965 19.2007 11.9539 C 19.2007 16.3507493504 15.6363493504 19.9151 11.2395 19.9151 C 6.84265064965 19.9151 3.2783 16.3507493504 3.2783 11.9539 C 3.2783 7.55705064965 6.84265064965 3.9927 11.2395 3.9927 Z"
).toNodes()
val modeDay3 = PathParser().parsePathString(
"M 24.3324 4.62955 C 28.5533742718 4.62955 31.97515 8.05132572823 31.97515 12.2723 C 31.97515 16.4932742718 28.5533742718 19.91505 24.3324 19.91505 C 20.1114257282 19.91505 16.68965 16.4932742718 16.68965 12.2723 C 16.68965 8.05132572823 20.1114257282 4.62955 24.3324 4.62955 Z"
).toNodes()
val backgroundDay = PathParser().parsePathString(
"M-28.3643 -12.4545L-28.3643 524.308H273.612L273.612 -12.4545H-28.3643Z"
).toNodes()
val cloud1 = PathParser().parsePathString(
"M60.1567 124.182C58.8839 121.87 56.7893 120.118 54.2862 119.273C51.7832 118.427 49.0536 118.549 46.6361 119.614C46.443 118.421 45.9765 117.288 45.273 116.304C44.5694 115.32 43.6478 114.512 42.58 113.942C41.5121 113.372 40.3269 113.056 39.1166 113.018C37.9064 112.981 36.7038 113.223 35.6026 113.725C34.952 112.052 33.7442 110.653 32.1821 109.765C30.62 108.876 28.7991 108.551 27.0255 108.845C25.2519 109.14 23.6338 110.035 22.4435 111.38C21.2531 112.725 20.5631 114.439 20.4894 116.232C19.0561 116.839 17.7746 117.755 16.7362 118.913C16.3419 117.967 15.6704 117.162 14.8097 116.604C13.949 116.046 12.9394 115.761 11.9134 115.785C10.8873 115.81 9.89278 116.144 9.06021 116.743C8.22764 117.343 7.59595 118.179 7.24802 119.143C6.14861 118.564 4.93411 118.235 3.69207 118.181C2.45003 118.126 1.2114 118.348 0.065503 118.829C-1.0804 119.311 -2.10502 120.04 -2.9345 120.965C-3.76397 121.889 -4.37762 122.986 -4.7312 124.176L60.1567 124.182Z"
).toNodes()
val cloud2 = PathParser().parsePathString(
"M330.341 29.5835C330.03 27.0912 328.818 24.7981 326.933 23.1353C325.048 21.4725 322.619 20.5546 320.104 20.5542C320.104 17.6382 319.217 14.791 317.559 12.3902C315.901 9.98944 313.552 8.1485 310.822 7.11159C308.092 6.07467 305.111 5.89079 302.274 6.58432C299.438 7.27785 296.879 8.81603 294.938 10.9948C293.748 10.6854 292.524 10.5291 291.295 10.5296C291.151 10.5296 291.008 10.5296 290.864 10.5296C289.892 7.15992 287.732 4.25496 284.783 2.35098C281.834 0.446999 278.294 -0.327461 274.817 0.17056C271.341 0.66858 268.162 2.40546 265.867 5.06058C263.573 7.7157 262.318 11.1098 262.335 14.6164C262.335 14.7473 262.335 14.8781 262.335 15.009C260.216 14.4093 257.962 14.4987 255.898 15.2642C255.007 13.7803 253.756 12.5444 252.261 11.6705C250.765 10.7965 249.073 10.3127 247.341 10.2636C245.609 10.2145 243.892 10.6017 242.35 11.3896C240.807 12.1774 239.488 13.3405 238.514 14.7715C237.031 14.5126 235.509 14.5809 234.055 14.9713C232.601 15.3618 231.251 16.065 230.098 17.0318C228.945 17.9985 228.018 19.2053 227.382 20.5676C226.746 21.9299 226.416 23.4146 226.415 24.9177C226.415 25.0787 226.415 25.2377 226.427 25.3986C223.776 24.5934 220.951 24.5592 218.282 25.3001C215.613 26.0409 213.21 27.5261 211.357 29.5816L330.341 29.5835Z"
).toNodes()
val cloud3 = PathParser().parsePathString(
"M112.45 18.4068C111.178 16.0929 109.084 14.3392 106.58 13.4921C104.077 12.6449 101.346 12.766 98.9274 13.8312C98.7344 12.6378 98.2679 11.505 97.5643 10.5211C96.8608 9.53721 95.9392 8.72881 94.8713 8.15889C93.8035 7.58897 92.6182 7.27293 91.408 7.2354C90.1977 7.19787 88.9951 7.43986 87.8939 7.94251C87.242 6.26951 86.0329 4.8717 84.4699 3.98421C82.907 3.09672 81.0856 2.77371 79.3121 3.06951C77.5386 3.3653 75.9213 4.26185 74.7322 5.60836C73.543 6.95486 72.8546 8.66916 72.7828 10.4629C71.3495 11.0703 70.068 11.9858 69.0296 13.1442C68.6352 12.1982 67.9637 11.3932 67.103 10.835C66.2423 10.2768 65.2327 9.99135 64.2067 10.0162C63.1807 10.041 62.1861 10.3749 61.3535 10.9742C60.521 11.5734 59.8893 12.4098 59.5413 13.3739C58.4419 12.7943 57.2274 12.4656 55.9854 12.4113C54.7434 12.3571 53.5047 12.5787 52.3588 13.0601C51.2129 13.5415 50.1883 14.2708 49.3588 15.1954C48.5294 16.12 47.9157 17.2168 47.5621 18.4068H112.45Z"
).toNodes()
val cloud4 = PathParser().parsePathString(
"M117.772 85.9503C117.877 85.486 118.106 85.0587 118.434 84.7138C118.762 84.3689 119.178 84.1193 119.637 83.9914C120.097 83.8636 120.582 83.8623 121.042 83.9878C121.502 84.1132 121.919 84.3607 122.249 84.7039C123.079 83.9869 124.107 83.5368 125.198 83.4123C125.223 82.7941 125.388 82.1897 125.681 81.6448C125.975 81.0999 126.388 80.6289 126.891 80.2675C127.394 79.9062 127.973 79.6639 128.584 79.5592C129.194 79.4545 129.821 79.49 130.416 79.6631C130.831 78.7476 131.572 78.0186 132.495 77.6178C133.418 77.217 134.458 77.1728 135.412 77.494C136.366 77.8151 137.166 78.4786 137.657 79.3556C138.149 80.2327 138.297 81.2608 138.072 82.2404C138.775 82.3485 139.45 82.5933 140.059 82.9608C140.555 82.6154 141.118 82.3768 141.711 82.2601C142.304 82.1434 142.915 82.1512 143.505 82.283C144.095 82.4148 144.651 82.6678 145.138 83.0257C145.625 83.3837 146.032 83.8389 146.333 84.3623C146.688 84.1173 147.099 83.9631 147.527 83.9133C147.956 83.8634 148.391 83.9195 148.793 84.0764C149.195 84.2334 149.553 84.4865 149.834 84.8136C150.115 85.1406 150.312 85.5317 150.407 85.9523L117.772 85.9503Z"
).toNodes()
val sun = PathParser().parsePathString(
"M33.4383 66.8861C51.7542 66.8861 66.6023 52.0353 66.6023 33.7158C66.6023 15.3963 51.7542 0.54541 33.4383 0.54541C15.1223 0.54541 0.274292 15.3963 0.274292 33.7158C0.274292 52.0353 15.1223 66.8861 33.4383 66.8861Z"
).toNodes()
}
fun Color.Companion.fromHex(colorString: String): Color {
return Color(android.graphics.Color.parseColor(colorString))
}
@SuppressLint("UnusedTransitionTargetStateParameter")
@Preview
@Composable
fun SwitchFullScreen() {
var clicked by remember { mutableStateOf(true) }
val transitionXMode = remember {
Animatable(0.dp.value)
}
val transition = updateTransition(clicked)
val colorLight by transition.animateColor(label = "colorLight") { state ->
if (state) Color.fromHex("#276B7E") else Color.fromHex("#FBE57F")
}
val transitionXSun = remember {
Animatable(80.dp.value)
}
val transitionYSun = remember {
Animatable(280.dp.value)
}
val transitionXMoon = remember {
Animatable(0.dp.value)
}
val transitionYMoon = remember {
Animatable(480.dp.value)
}
val transitionXClouds = remember {
Animatable(0.dp.value)
}
val scaleXClouds = remember {
Animatable(1f)
}
val alphaAnimation = remember {
Animatable(0f)
}
val alphaSunAnimation = remember {
Animatable(1f)
}
val tweenSpec900 = tween<Float>(900, easing = LinearEasing)
val tweenSpec1200 = tween<Float>(1200, easing = LinearEasing)
suspend fun clickedAnimation(clicked: Boolean) {
coroutineScope {
launch {
transitionXMode.animateTo(
if (clicked) 16.dp.value else 0.dp.value,
tweenSpec900
)
}
launch {
transitionXSun.animateTo(
if (clicked) 260.dp.value else 80.dp.value,
tweenSpec1200
)
}
launch {
transitionYSun.animateTo(
if (clicked) -160.dp.value else 280.dp.value,
tweenSpec1200
)
}
launch {
transitionXMoon.animateTo(
if (clicked) 80.dp.value else 0.dp.value,
tweenSpec1200
)
}
launch {
transitionYMoon.animateTo(
if (clicked) 260.dp.value else 420.dp.value,
tweenSpec1200
)
}
launch {
alphaSunAnimation.animateTo(
if (clicked) 0f else 1f,
tweenSpec1200
)
}
launch {
transitionXClouds.animateTo(
if (clicked) -266.dp.value else 0.dp.value,
tweenSpec1200
)
}
launch {
scaleXClouds.animateTo(
if (clicked) 0.8f else 1f,
tweenSpec1200
)
}
launch {
alphaAnimation.animateTo(
if (clicked) 1f else 0f,
tweenSpec900
)
}
}
}
val vectorPainter = rememberVectorPainter(
defaultWidth = 360.dp,
defaultHeight = 720.dp,
viewportWidth = 300f,
viewportHeight = 640f
) { viewPortWidth, viewPortHeight ->
Group(scaleX = 1f, scaleY = 1.1f) {
BackgroundDay()
BackgroundNight(alphaAnimation)
Clouds(transitionXClouds, scaleXClouds)
Stars(alphaAnimation)
Sun(transitionXSun, transitionYSun, alphaSunAnimation)
Moon(transitionXMoon, transitionYMoon, alphaAnimation)
Mountain5(alphaAnimation)
Mountain4(alphaAnimation)
Mountain3(alphaAnimation)
Mountain2(alphaAnimation)
Mountain1(alphaAnimation)
Shrubs()
Cliff(alphaAnimation)
Trees()
SmallTrees(alphaAnimation)
Home(alphaAnimation, colorLight)
Mode(transitionXMode)
}
}
val coroutineScope = rememberCoroutineScope()
Image(
vectorPainter,
contentDescription = "SwitchDayNight",
contentScale = ContentScale.Crop,
modifier = Modifier
.fillMaxSize()
.pointerInput(Unit) {
detectTapGestures {
coroutineScope.launch {
clicked = if (clicked) {
clickedAnimation(true)
!clicked
} else {
clickedAnimation(false)
!clicked
}
}
}
}
)
}
@Composable
fun Stars(alphaAnimation: Animatable<Float, AnimationVector1D>) {
val colorStar = SolidColor(Color.fromHex("#FDDA01"))
Group(translationY = 76.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path1,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path2,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path3,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path4,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path5,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path6,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path7,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path8,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path9,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path10,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path11,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path12,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path13,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path14,
fill = colorStar
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenStarsPaths.path15,
fill = colorStar
)
}
}
@Composable
fun Moon(
transitionXMoon: Animatable<Float, AnimationVector1D>,
transitionYMoon: Animatable<Float, AnimationVector1D>,
alphaAnimation: Animatable<Float, AnimationVector1D>
) {
Group(translationY = transitionYMoon.value, translationX = transitionXMoon.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMoonPaths.path1,
fill = SolidColor(Color.fromHex("#FAF4D4"))
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMoonPaths.path2,
fill = SolidColor(Color.fromHex("#F3EBC0"))
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMoonPaths.path3,
fill = SolidColor(Color.fromHex("#F3EBC0"))
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMoonPaths.path4,
fill = SolidColor(Color.fromHex("#F3EBC0"))
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMoonPaths.path5,
fill = SolidColor(Color.fromHex("#F3EBC0"))
)
}
}
@Composable
fun Mountain1(alphaAnimation: Animatable<Float, AnimationVector1D>) {
Group(translationY = 468.dp.value, translationX = 28.dp.value) {
Path(
pathData = SwitchFullScreenMountainPaths.path1,
fill = SolidColor(Color.fromHex("#504F6D"))
)
}
Group(translationY = 468.dp.value, translationX = 28.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMountainPaths.path1,
fill = SolidColor(Color.fromHex("#0B5D77"))
)
}
}
@Composable
fun Mountain2(alphaAnimation: Animatable<Float, AnimationVector1D>) {
Group(translationY = 490.dp.value, translationX = 28.dp.value) {
Path(
pathData = SwitchFullScreenMountainPaths.path2,
fill = SolidColor(Color.fromHex("#6D5670"))
)
}
Group(translationY = 490.dp.value, translationX = 28.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMountainPaths.path2,
fill = SolidColor(Color.fromHex("#0E4764"))
)
}
}
@Composable
fun Mountain3(alphaAnimation: Animatable<Float, AnimationVector1D>) {
Group(translationY = 420.dp.value, translationX = 28.dp.value) {
Path(
pathData = SwitchFullScreenMountainPaths.path3,
fill = SolidColor(Color.fromHex("#A65574"))
)
}
Group(translationY = 420.dp.value, translationX = 28.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMountainPaths.path3,
fill = SolidColor(Color.fromHex("#14698D"))
)
}
}
@Composable
fun Mountain4(alphaAnimation: Animatable<Float, AnimationVector1D>) {
Group(translationY = 435.dp.value, translationX = 28.dp.value) {
Path(
pathData = SwitchFullScreenMountainPaths.path4,
fill = SolidColor(Color.fromHex("#C75378"))
)
}
Group(translationY = 435.dp.value, translationX = 28.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMountainPaths.path4,
fill = SolidColor(Color.fromHex("#287FAA"))
)
}
}
@Composable
fun Mountain5(alphaAnimation: Animatable<Float, AnimationVector1D>) {
Group(translationY = 375.dp.value, translationX = 28.dp.value) {
Path(
pathData = SwitchFullScreenMountainPaths.path5,
fill = SolidColor(Color.fromHex("#F4815F"))
)
}
Group(translationY = 375.dp.value, translationX = 28.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenMountainPaths.path5,
fill = SolidColor(Color.fromHex("#239CBB"))
)
}
}
@Composable
fun Home(alphaAnimation: Animatable<Float, AnimationVector1D>, colorLight: Color) {
val colorHomeDay = SolidColor(Color.fromHex("#0E4764"))
val colorHomeNight = SolidColor(Color.fromHex("#02284C"))
Group(translationX = 178.dp.value, translationY = 328.dp.value) {
Path(
pathData = SwitchFullScreenHomePaths.path1,
fill = colorHomeDay
)
Path(
pathData = SwitchFullScreenHomePaths.path2,
fill = colorHomeDay
)
Path(
pathData = SwitchFullScreenHomePaths.path3,
fill = colorHomeDay
)
Path(
pathData = SwitchFullScreenHomePaths.path4,
fill = colorHomeDay
)
Path(
pathData = SwitchFullScreenHomePaths.path5,
fill = colorHomeDay
)
}
Group(translationX = 178.dp.value, translationY = 328.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenHomePaths.path1,
fill = colorHomeNight
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenHomePaths.path2,
fill = colorHomeNight
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenHomePaths.path3,
fill = colorHomeNight
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenHomePaths.path4,
fill = colorHomeNight
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenHomePaths.path5,
fill = colorHomeNight
)
}
Group(translationX = 198.dp.value, translationY = 342.dp.value) {
Path(
pathData = SwitchFullScreenHomePaths.light,
fill = SolidColor(colorLight)
)
}
}
@Composable
fun SmallTrees(alphaAnimation: Animatable<Float, AnimationVector1D>) {
val colorHomeDay = SolidColor(Color.fromHex("#0E4764"))
val colorHomeNight = SolidColor(Color.fromHex("#073255"))
Group(translationX = 248.dp.value, translationY = 272.dp.value) {
Path(
pathData = SwitchFullScreenSmallCliffPaths.path1,
fill = colorHomeDay
)
Path(
pathData = SwitchFullScreenSmallCliffPaths.path2,
fill = colorHomeDay
)
Path(
pathData = SwitchFullScreenSmallCliffPaths.path3,
fill = colorHomeDay
)
Path(
pathData = SwitchFullScreenSmallCliffPaths.path4,
fill = colorHomeDay
)
}
Group(translationX = 248.dp.value, translationY = 272.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenSmallCliffPaths.path1,
fill = colorHomeNight
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenSmallCliffPaths.path2,
fill = colorHomeNight
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenSmallCliffPaths.path3,
fill = colorHomeNight
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenSmallCliffPaths.path4,
fill = colorHomeNight
)
}
}
@Composable
fun Shrubs() {
Group(translationY = 466.dp.value) {
Path(
pathData = SwitchFullScreenShrubPaths.path1,
fill = SolidColor(Color.fromHex("#0E4764"))
)
Path(
pathData = SwitchFullScreenShrubPaths.path2,
fill = SolidColor(Color.fromHex("#083753"))
)
}
}
@Composable
fun Cliff(alphaAnimation: Animatable<Float, AnimationVector1D>) {
val colorHomeDay1 = SolidColor(Color.fromHex("#0E4764"))
val colorHomeDay2 = SolidColor(Color.fromHex("#185770"))
val colorHomeNight1 = SolidColor(Color.fromHex("#0E4266"))
val colorHomeNight2 = SolidColor(Color.fromHex("#073255"))
Group(translationY = 350.dp.value, translationX = 156.dp.value) {
Path(
pathData = SwitchFullScreenCliffPaths.path1,
fill = colorHomeDay1
)
Path(
pathData = SwitchFullScreenCliffPaths.path2,
fill = colorHomeDay2
)
Path(
pathData = SwitchFullScreenCliffPaths.path3,
fill = colorHomeDay2
)
Path(
pathData = SwitchFullScreenCliffPaths.path4,
fill = colorHomeDay2
)
Path(
pathData = SwitchFullScreenCliffPaths.path5,
fill = colorHomeDay2
)
Path(
pathData = SwitchFullScreenCliffPaths.path6,
fill = colorHomeDay2
)
}
Group(translationY = 350.dp.value, translationX = 156.dp.value) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenCliffPaths.path1,
fill = colorHomeNight2
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenCliffPaths.path2,
fill = colorHomeNight1
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenCliffPaths.path3,
fill = colorHomeNight1
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenCliffPaths.path4,
fill = colorHomeNight1
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenCliffPaths.path5,
fill = colorHomeNight1
)
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenCliffPaths.path6,
fill = colorHomeNight1
)
}
}
@Composable
fun Trees() {
Group(translationY = 484.dp.value, translationX = 12.dp.value) {
Path(
pathData = SwitchFullScreenTreesPaths.trees1,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees2,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees3,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees4,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees5,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees6,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees7,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees8,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees9,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees10,
fill = SolidColor(Color.fromHex("#02284C"))
)
Path(
pathData = SwitchFullScreenTreesPaths.trees11,
fill = SolidColor(Color.fromHex("#02284C"))
)
}
}
@Composable
fun Sun(
transitionXSun: Animatable<Float, AnimationVector1D>,
transitionYSun: Animatable<Float, AnimationVector1D>,
alphaSunAnimation: Animatable<Float, AnimationVector1D>
) {
Group(translationX = transitionXSun.value, translationY = transitionYSun.value) {
Path(
fillAlpha = alphaSunAnimation.value,
pathData = SwitchFullScreenAnimationPaths.sun,
fill = SolidColor(Color.fromHex("#FAE481")),
)
}
}
@Composable
fun Clouds(
transitionXClouds: Animatable<Float, AnimationVector1D>,
scaleXClouds: Animatable<Float, AnimationVector1D>
) {
Group(
scaleX = scaleXClouds.value,
translationY = 86.dp.value,
translationX = transitionXClouds.value
) {
Path(
pathData = SwitchFullScreenAnimationPaths.cloud1,
fill = SolidColor(Color.fromHex("#F1F2F2")),
strokeLineWidth = 1f,
fillAlpha = 0.3f,
strokeAlpha = 0.3f,
)
Path(
pathData = SwitchFullScreenAnimationPaths.cloud2,
fill = SolidColor(Color.fromHex("#F1F2F2")),
strokeLineWidth = 1f,
fillAlpha = 0.3f,
strokeAlpha = 0.3f,
)
Path(
pathData = SwitchFullScreenAnimationPaths.cloud3,
fill = SolidColor(Color.fromHex("#F1F2F2")),
strokeLineWidth = 1f,
fillAlpha = 0.3f,
strokeAlpha = 0.3f,
)
Path(
pathData = SwitchFullScreenAnimationPaths.cloud4,
fill = SolidColor(Color.fromHex("#F1F2F2")),
strokeLineWidth = 1f,
fillAlpha = 0.3f,
strokeAlpha = 0.3f,
)
}
}
@Composable
fun BackgroundDay() {
Group(scaleX = 1.1f, scaleY = 1.1f) {
Path(
pathData = SwitchFullScreenAnimationPaths.backgroundDay,
fill = Brush.verticalGradient(
listOf(
Color.fromHex("#FF5DA6A5"),
Color.fromHex("#FFFEAE9D"),
Color.fromHex("#FFFDCA8E"),
Color.fromHex("#FFCEFB7F")
)
)
)
}
}
@Composable
fun BackgroundNight(alphaAnimation: Animatable<Float, AnimationVector1D>) {
Group(scaleX = 1.1f, scaleY = 1.1f) {
Path(
fillAlpha = alphaAnimation.value,
pathData = SwitchFullScreenAnimationPaths.backgroundDay,
fill = Brush.verticalGradient(
listOf(
Color.fromHex("#073660"),
Color.fromHex("#149DAA"),
)
)
)
}
}
@Composable
fun Mode(
transitionXMode: Animatable<Float, AnimationVector1D>,
) {
Group(
"mode",
translationX = 230.dp.value,
translationY = 20.dp.value
) {
Path(
pathData = SwitchFullScreenAnimationPaths.modeDay1,
fill = SolidColor(Color.fromHex("#27173A"))
)
Group(translationX = transitionXMode.value) {
Path(
pathData = SwitchFullScreenAnimationPaths.modeDay2,
fill = SolidColor(Color.fromHex("#FFC207"))
)
}
Group(
translationX = 8.dp.value,
) {
Path(
pathData = SwitchFullScreenAnimationPaths.modeDay3,
fill = SolidColor(Color.fromHex("#27173A"))
)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment