adds 3d model
This commit is contained in:
@@ -55,11 +55,11 @@
|
||||
|
||||
<div class="relative text-gray-600">
|
||||
<span class="absolute top-1/2 -translate-y-1/2 left-0 pl-4">
|
||||
<i class="fa fa-search" class:text-2xl={large}></i>
|
||||
<i class="fa fa-search" class:text-xl={large}></i>
|
||||
</span>
|
||||
{#if value.length > 0}
|
||||
<button
|
||||
class="absolute top-1/2 -translate-y-1/2 right-0 h-6 w-6 mr-4 hover:bg-gray-300 hover:bg-opacity-50 rounded-full"
|
||||
class="absolute top-1/2 -translate-y-1/2 right-12 h-6 w-6 mr-4 hover:bg-gray-300 hover:bg-opacity-50 rounded-full"
|
||||
on:click={clear}
|
||||
in:fade={{ duration: 150 }}
|
||||
out:fade={{ duration: 150 }}
|
||||
@@ -71,7 +71,9 @@
|
||||
type="search"
|
||||
name="q"
|
||||
autocomplete="off"
|
||||
extraClasses="{large ? 'pl-14 text-2xl min-w-80 w-[33vw] max-w-[532px] rounded-xl' : 'pl-10'}"
|
||||
extraClasses="{large
|
||||
? 'pl-12 text-xl min-w-80 w-[33vw] max-w-[532px] rounded-xl'
|
||||
: 'pl-10'}"
|
||||
{placeholder}
|
||||
bind:value
|
||||
on:input={onSearchType}
|
||||
|
||||
675
web/src/lib/components/earth.svelte
Normal file
675
web/src/lib/components/earth.svelte
Normal file
@@ -0,0 +1,675 @@
|
||||
<!--
|
||||
Auto-generated by: https://github.com/threlte/threlte/tree/main/packages/gltf
|
||||
Command: npx @threlte/gltf@2.0.1 static/models/earth.glb
|
||||
-->
|
||||
|
||||
<script lang="ts">
|
||||
import { DirectionalLight, Group, PointLight } from "three";
|
||||
import { T, forwardEventHandlers } from "@threlte/core";
|
||||
import { useGltf } from "@threlte/extras";
|
||||
|
||||
export const ref = new Group();
|
||||
|
||||
export let rotation: number = 0;
|
||||
|
||||
const gltf = useGltf("/models/earth.glb");
|
||||
|
||||
const component = forwardEventHandlers();
|
||||
</script>
|
||||
|
||||
<T is={ref} dispose={false} {...$$restProps} bind:this={$component}>
|
||||
{#await gltf}
|
||||
<slot name="fallback" />
|
||||
{:then gltf}
|
||||
<!-- Clouds -->
|
||||
<T.Group rotation={[-rotation / 2, rotation / 2, 0]}>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere002.geometry}
|
||||
material={gltf.materials.Material}
|
||||
position={[-0.94, 0.95, -0.12]}
|
||||
rotation={[2.48, -0.48, 2.24]}
|
||||
scale={0.65}
|
||||
castShadow
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere003.geometry}
|
||||
material={gltf.materials.Material}
|
||||
position={[-0.02, 0.15, 1.33]}
|
||||
rotation={[-1.67, 0.46, 3.13]}
|
||||
scale={0.65}
|
||||
castShadow
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere004.geometry}
|
||||
material={gltf.materials.Material}
|
||||
position={[0.58, 1.05, -0.6]}
|
||||
rotation={[2.96, -0.61, -2.59]}
|
||||
scale={0.65}
|
||||
castShadow
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere005.geometry}
|
||||
material={gltf.materials.Material}
|
||||
position={[-1.18, -0.32, 0.56]}
|
||||
rotation={[-0.57, 0.25, 2.01]}
|
||||
scale={0.65}
|
||||
castShadow
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere006.geometry}
|
||||
material={gltf.materials.Material}
|
||||
position={[0.03, 1.31, -0.54]}
|
||||
rotation={[2.98, -1.09, -2.9]}
|
||||
scale={0.9}
|
||||
castShadow
|
||||
/>
|
||||
</T.Group>
|
||||
<!-- /Clouds -->
|
||||
<!-- Airplane -->
|
||||
<T.Group rotation={[0, rotation, rotation]}>
|
||||
<T.Group position={[0, 1.2, 0]} rotation={[0, 0, 0]} scale={0.78}>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane005_1.geometry}
|
||||
material={gltf.materials["Material.006"]}
|
||||
castShadow
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane005_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
castShadow
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane005_3.geometry}
|
||||
material={gltf.materials["Material.008"]}
|
||||
castShadow
|
||||
/>
|
||||
</T.Group>
|
||||
</T.Group>
|
||||
|
||||
<!-- /Airplane -->
|
||||
<!-- Sun -->
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere007.geometry}
|
||||
material={gltf.materials["Material.009"]}
|
||||
position={[0.5, 2, -0.5]}
|
||||
scale={0.88}
|
||||
>
|
||||
<T.PointLight position={[2, 0, 0]} color="#f4de51" intensity={4.5}
|
||||
></T.PointLight>
|
||||
|
||||
<T.DirectionalLight color="#f4de51" intensity={2.5} castShadow
|
||||
></T.DirectionalLight>
|
||||
</T.Mesh>
|
||||
<!-- /Sun -->
|
||||
<T.Group scale={1} rotation.y={rotation}>
|
||||
<!-- Earth -->
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere_1.geometry}
|
||||
material={gltf.materials["Material.003"]}
|
||||
receiveShadow
|
||||
/>
|
||||
<!-- /Earth -->
|
||||
<!-- Water -->
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere001.geometry}
|
||||
material={gltf.materials["Material.002"]}
|
||||
receiveShadow
|
||||
/>
|
||||
<!-- /Water -->
|
||||
<!-- Trees -->
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Icosphere_2.geometry}
|
||||
material={gltf.materials["Material.004"]}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.36, 0.96, 0.03]}
|
||||
rotation={[0.09, -0.02, -0.4]}
|
||||
scale={0.7}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane001.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.32, 0.98, -0.03]}
|
||||
rotation={[-0.08, 0.05, -0.4]}
|
||||
scale={0.68}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.2, 1.01, -0.05]}
|
||||
rotation={[-0.08, 0.06, -0.13]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane003.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.21, 1.01, 0.04]}
|
||||
rotation={[0.1, 0.03, -0.13]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane004.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.29, 0.98, 0.12]}
|
||||
rotation={[0.18, 0.02, -0.24]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane005.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.26, 0.99, -0.12]}
|
||||
rotation={[-0.15, 0.1, -0.24]}
|
||||
scale={0.51}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane006.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.39, 0.95, 0.12]}
|
||||
rotation={[0.11, 0.01, -0.4]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane007.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.16, 1, 0.19]}
|
||||
rotation={[0.17, -0.01, -0.24]}
|
||||
scale={0.51}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane008.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.81, 0.69, 0.31]}
|
||||
rotation={[0.38, -0.13, -0.82]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane009.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.84, 0.6, 0.39]}
|
||||
rotation={[0.38, -0.13, -0.82]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane010.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.88, 0.61, 0.28]}
|
||||
rotation={[0.26, 0, -0.85]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane011.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.79, 0.61, -0.5]}
|
||||
rotation={[-0.07, 0.4, -0.91]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane012.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.72, 0.68, -0.51]}
|
||||
rotation={[-0.16, 0.49, -0.75]}
|
||||
scale={0.51}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane013.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.72, 0.61, -0.6]}
|
||||
rotation={[-0.3, 0.6, -0.74]}
|
||||
scale={0.61}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane014.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.8, 0.65, -0.42]}
|
||||
rotation={[-0.08, 0.39, -0.9]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane015.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.81, 0.53, -0.56]}
|
||||
rotation={[-0.2, 0.55, -1.08]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane016.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.32, -0.47, 0.96]}
|
||||
rotation={[1.65, -0.8, -0.42]}
|
||||
scale={0.53}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane017.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.42, -0.49, 0.91]}
|
||||
rotation={[1.61, -0.78, -0.62]}
|
||||
scale={0.59}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane018.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.29, -0.59, 0.92]}
|
||||
rotation={[1.87, -0.86, -0.21]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane019.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.34, -0.54, 0.92]}
|
||||
rotation={[1.61, -0.78, -0.62]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane020.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.2, -0.55, 0.95]}
|
||||
rotation={[1.87, -0.86, -0.21]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane021.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.33, -0.65, 0.85]}
|
||||
rotation={[1.79, -0.84, -0.61]}
|
||||
scale={0.74}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane022.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.39, -0.58, 0.87]}
|
||||
rotation={[1.63, -0.76, -0.6]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane023.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.46, -0.58, 0.84]}
|
||||
rotation={[1.63, -0.76, -0.6]}
|
||||
scale={0.62}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane024.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.22, -0.72, 0.82]}
|
||||
rotation={[2.02, -0.9, -0.38]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane025.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.11, 0.28, -0.99]}
|
||||
rotation={[-1.19, 1.03, -0.03]}
|
||||
scale={0.61}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane026.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.02, 0.28, -0.99]}
|
||||
rotation={[-1.19, 1.03, -0.03]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane027.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.06, 0.14, -1.02]}
|
||||
rotation={[-1.4, 1.03, 0]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane028.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.11, 0.14, -1.01]}
|
||||
rotation={[-1.23, 1.02, -0.3]}
|
||||
scale={0.5}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane029.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.02, 0.16, -1.02]}
|
||||
rotation={[-1.4, 1.03, 0]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane030.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.23, 0.23, -0.98]}
|
||||
rotation={[-1.85, 0.96, 0.56]}
|
||||
scale={0.69}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane031.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.11, 0.24, -1]}
|
||||
rotation={[-1.4, 1.03, 0]}
|
||||
scale={0.64}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane032.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.19, 0.14, -1]}
|
||||
rotation={[-1.72, 1.01, 0.3]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane033.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.07, 0.02, -1.03]}
|
||||
rotation={[-1.72, 1.01, 0.3]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane034.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.06, 0.02, -1.03]}
|
||||
rotation={[-1.24, 1.01, -0.29]}
|
||||
scale={0.67}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane035.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.03, -0.12, -1.02]}
|
||||
rotation={[-1.75, 1.05, 0]}
|
||||
scale={0.36}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane036.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.2, -0.04, -1.01]}
|
||||
rotation={[-1.92, 1.03, 0.31]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane037.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.3, 0.05, -0.99]}
|
||||
rotation={[-1.93, 1.03, 0.63]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane038.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.37, 0.18, -0.94]}
|
||||
rotation={[-1.93, 1.03, 0.63]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane039.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.48, 0.32, -0.86]}
|
||||
rotation={[-2.14, 0.89, 1.11]}
|
||||
scale={0.62}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane040.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.62, 0.08, -0.82]}
|
||||
rotation={[-2.2, 0.81, 1]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane041.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.53, 0.2, -0.86]}
|
||||
rotation={[-2.2, 0.81, 1]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane042.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.45, 0, -0.93]}
|
||||
rotation={[-2.12, 0.88, 0.79]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane043.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.37, -0.11, -0.96]}
|
||||
rotation={[-2.14, 0.87, 0.49]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane044.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.26, -0.18, -0.98]}
|
||||
rotation={[-2.14, 0.87, 0.49]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane045.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.47, 0.96, 0.41]}
|
||||
rotation={[0.36, -0.12, -0.52]}
|
||||
scale={0.71}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane046.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.32, 0.93, 0.58]}
|
||||
rotation={[0.43, -0.15, -0.35]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane047.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.49, 0.89, 0.52]}
|
||||
rotation={[0.43, -0.15, -0.35]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane048.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.3, 0.85, 0.69]}
|
||||
rotation={[0.59, -0.2, -0.3]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane049.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[0.61, 0.87, 0.41]}
|
||||
rotation={[0.37, -0.1, -0.52]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane050.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.33, 0.77, 0.61]}
|
||||
rotation={[0.6, 0.15, 0.19]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane051.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.48, 0.76, 0.5]}
|
||||
rotation={[0.28, 0.45, 0.54]}
|
||||
scale={0.51}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane052.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.37, 0.79, 0.56]}
|
||||
rotation={[0.32, 0.5, 0.36]}
|
||||
scale={0.61}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane053.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.37, 0.75, 0.62]}
|
||||
rotation={[0.79, 0.08, 0.23]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane054.geometry}
|
||||
material={gltf.materials["Material.005"]}
|
||||
position={[-0.23, 0.76, 0.66]}
|
||||
rotation={[0.59, 0.18, 0.19]}
|
||||
scale={0.82}
|
||||
/>
|
||||
<!-- /Trees -->
|
||||
<!-- Houses -->
|
||||
<T.Group
|
||||
position={[0.45, 0.74, 0.74]}
|
||||
rotation={[0.73, -0.16, -0.41]}
|
||||
scale={1.08}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[-0.34, 0.68, 0.7]}
|
||||
rotation={[0.85, -0.17, 0.24]}
|
||||
scale={0.81}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.83, 0.55, -0.5]}
|
||||
rotation={[-1.49, -0.47, -1.12]}
|
||||
scale={0.69}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.4, 0.94, -0.09]}
|
||||
rotation={[-1.02, -1.08, -0.99]}
|
||||
scale={0.69}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.39, -0.42, 0.96]}
|
||||
rotation={[-0.88, -0.78, -2.72]}
|
||||
scale={0.69}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.81, 0.53, 0.55]}
|
||||
rotation={[0.32, -0.49, -1.02]}
|
||||
scale={0.69}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.88, 0.51, 0.43]}
|
||||
rotation={[-0.21, -0.54, -1.21]}
|
||||
scale={0.69}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.86, 0.43, 0.54]}
|
||||
rotation={[0.32, -0.49, -1.02]}
|
||||
scale={0.69}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.77, 0.45, 0.66]}
|
||||
rotation={[0.68, -0.25, -0.89]}
|
||||
scale={0.75}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_1.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane002_2.geometry}
|
||||
material={gltf.materials["Material.007"]}
|
||||
/>
|
||||
</T.Group>
|
||||
<!-- /Houses -->
|
||||
<!-- Boats -->
|
||||
<T.Group
|
||||
position={[-0.15, 0.97, 0.21]}
|
||||
rotation={[0.18, 0.81, 0.13]}
|
||||
scale={0.79}
|
||||
castShadow
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane003_1.geometry}
|
||||
material={gltf.materials["Material.009"]}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane003_2.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
</T.Group>
|
||||
<T.Group
|
||||
position={[0.85, -0.51, -0.16]}
|
||||
rotation={[-0.62, 0.4, -1.85]}
|
||||
scale={0.75}
|
||||
>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane003_1.geometry}
|
||||
material={gltf.materials["Material.009"]}
|
||||
/>
|
||||
<T.Mesh
|
||||
geometry={gltf.nodes.Plane003_2.geometry}
|
||||
material={gltf.materials.Material}
|
||||
/>
|
||||
</T.Group>
|
||||
<!-- /Boats -->
|
||||
</T.Group>
|
||||
{:catch error}
|
||||
<slot name="error" {error} />
|
||||
{/await}
|
||||
|
||||
<slot {ref} />
|
||||
</T>
|
||||
21
web/src/lib/components/scene.svelte
Normal file
21
web/src/lib/components/scene.svelte
Normal file
@@ -0,0 +1,21 @@
|
||||
<script lang="ts">
|
||||
import { T, useTask } from "@threlte/core";
|
||||
import Earth from "./earth.svelte";
|
||||
|
||||
let rotation = 0;
|
||||
useTask((delta) => {
|
||||
rotation += delta/4;
|
||||
});
|
||||
</script>
|
||||
|
||||
<T.PerspectiveCamera
|
||||
makeDefault
|
||||
position={[5, 2, 0]}
|
||||
on:create={({ ref }) => {
|
||||
ref.lookAt(0, 0, -0.5);
|
||||
}}
|
||||
/>
|
||||
|
||||
<T.AmbientLight color="0xffffff" intensity={1.1} />
|
||||
|
||||
<Earth rotation={rotation}></Earth>
|
||||
Reference in New Issue
Block a user