+
+
{planetData.name}

-
- Adorned with a dazzling, complex system of icy rings, Saturn is
- unique in our solar system. The other giant planets have rings, but
- none are as spectacular as Saturn's.
-
-
+
{planetData.Description}
+
+
+
+ {planetData.LOY}
+
+ Earth Days/Years
+
+
+
+ {planetData.DFS}
+
+ AU
+ Distance from Sun
+
+
+
+ {planetData.Moons}
+
+ Moons
+
+
+
+ {planetData.Radius}
+
+ Radius
+ Kilometers
+
+
);
diff --git a/src/planet_overlay_img/jupiter.jpg b/src/planet_overlay_img/jupiter.jpg
new file mode 100644
index 0000000..3ab023a
Binary files /dev/null and b/src/planet_overlay_img/jupiter.jpg differ
diff --git a/src/planet_overlay_img/mars.jpg b/src/planet_overlay_img/mars.jpg
new file mode 100644
index 0000000..674c7f7
Binary files /dev/null and b/src/planet_overlay_img/mars.jpg differ
diff --git a/src/planet_overlay_img/neptune.jpg b/src/planet_overlay_img/neptune.jpg
new file mode 100644
index 0000000..052fac5
Binary files /dev/null and b/src/planet_overlay_img/neptune.jpg differ
diff --git a/src/saturn.jpg b/src/planet_overlay_img/saturn.jpg
similarity index 100%
rename from src/saturn.jpg
rename to src/planet_overlay_img/saturn.jpg
diff --git a/src/planet_overlay_img/uranus.jpg b/src/planet_overlay_img/uranus.jpg
new file mode 100644
index 0000000..999e439
Binary files /dev/null and b/src/planet_overlay_img/uranus.jpg differ
diff --git a/src/earth.jsx b/src/planets/earth.jsx
similarity index 53%
rename from src/earth.jsx
rename to src/planets/earth.jsx
index 9a31e47..351e046 100644
--- a/src/earth.jsx
+++ b/src/planets/earth.jsx
@@ -1,46 +1,24 @@
-import {
- Canvas,
- extend,
- useFrame,
- useLoader,
- useThree,
-} from "@react-three/fiber";
-import {
- shaderMaterial,
- OrbitControls,
- Line,
- Html,
- Text,
-} from "@react-three/drei";
-import React, {
- useRef,
- Suspense,
- useLayoutEffect,
- useState,
- useEffect,
- useContext,
-} from "react";
+import { useFrame, useLoader } from "@react-three/fiber";
+import React, { useRef, useLayoutEffect, useState, useEffect } from "react";
import * as THREE from "three";
-import glsl from "glslify";
+
import { TextureLoader } from "three/src/loaders/TextureLoader";
-import {
- Selection,
- Select,
- EffectComposer,
- Outline,
- Scanline,
-} from "@react-three/postprocessing";
-import "./styles.css";
-import { PlanetOverlay } from "./planetOverlay";
-import { PlanetInfo } from "./planetInfo";
-import { PlanetPath } from "./path";
-import { MyContext } from "./Scene3";
-import { PlanetOverlayContext } from "./SharedPlanetState";
+import "../styles.css";
-export const Earth = ({ speed, getPosition, speedChanged }) => {
+import { PlanetOverlay } from "../planetOverlay";
+
+import { PlanetPath } from "../path";
+
+export const Earth = ({
+ speed,
+ getPosition,
+ speedChanged,
+ data,
+ setPosition,
+}) => {
let distanceScaleFactor = 1000000;
- const [posArr, setPosArr] = useState([]);
+ const [posArr, setPosArr] = useState(data);
const lineArr = useRef([]);
const line = useRef();
const clouds = useRef("clouds");
@@ -57,52 +35,24 @@ export const Earth = ({ speed, getPosition, speedChanged }) => {
group.current.userData.scolor = "lightgreen";
});
+ useEffect(() => {}, []);
useFrame(({ clock }) => {
const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
- if (timeSinceLastUpdate >= 2 || speedChanged) {
+ if (timeSinceLastUpdate >= 3) {
//console.log("gethis");
- getPosition("earth", setPosArr, posArr, planetPositionIndex.current);
+ getPosition("earth", setPosArr, posArr);
lastPositionUpdate.current = clock.elapsedTime;
+ //console.log(posArr);
//console.log(group.current);
}
//console.log("arrlength" + posArr.length);
clouds.current.rotation.y += 0.00025;
earth.current.rotation.y += 0.00015;
+ if (posArr) setPosition(group, posArr, lineArr);
+
//if speed is 0 set the date to current date get from posArr
//search for current date in posArr an set planetPositionIndex
- if (speed == 0) planetPositionIndex.current = 0;
- if (
- true &&
- planetPositionIndex.current < posArr.length &&
- posArr.length > 0
- ) {
- group.current.position.set(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- );
- planetPositionIndex.current += Number(1);
- lineArr.current.push(
- new THREE.Vector3(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- )
- );
- }
}, []);
const col = useLoader(TextureLoader, "../img/earth/6k_earth_daymap.jpg");
@@ -145,15 +95,17 @@ export const Earth = ({ speed, getPosition, speedChanged }) => {
-
-
-
-
+ {true && (
+
+
+
+
+ )}
>
);
diff --git a/src/planets/jupiter.jsx b/src/planets/jupiter.jsx
new file mode 100644
index 0000000..027a7fd
--- /dev/null
+++ b/src/planets/jupiter.jsx
@@ -0,0 +1,63 @@
+import { useFrame, useLoader } from "@react-three/fiber";
+import React, { useRef, useEffect, useState } from "react";
+import * as THREE from "three";
+import { TextureLoader } from "three/src/loaders/TextureLoader";
+import { PlanetOverlay } from "../planetOverlay";
+import { PlanetPath } from "../path";
+
+export const Jupiter = ({
+ getPosition,
+ speed,
+ speedChanged,
+ setPosition,
+ data,
+}) => {
+ const group = useRef();
+ const col = useLoader(TextureLoader, "../img/jupiter/jupiter2_4k.jpg");
+
+ const [posArr, setPosArr] = useState(data);
+ const lineArr = useRef([]);
+
+ let planetPositionIndex = useRef(0);
+ const lastPositionUpdate = useRef(0);
+
+ let distanceScaleFactor = 1000000;
+
+ useEffect(() => {
+ group.current.userData.name = "Jupiter";
+ group.current.userData.nearOvOp = 800;
+ group.current.userData.scolor = "yellow";
+ });
+
+ useFrame(({ clock }) => {
+ //getPosition("jupiter", setPosArr, posArr, planetPositionIndex.current);
+ const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
+ if (timeSinceLastUpdate >= 2) {
+ //console.log("gethis");
+ getPosition("jupiter", setPosArr, posArr, planetPositionIndex.current);
+ lastPositionUpdate.current = clock.elapsedTime;
+ }
+
+ //if speed is 0 set the date to current date get from posArr
+ //search for current date in posArr an set planetPositionIndex
+ setPosition(group, posArr, lineArr);
+ }, []);
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/src/mars.jsx b/src/planets/mars.jsx
similarity index 56%
rename from src/mars.jsx
rename to src/planets/mars.jsx
index cc22738..5d78f98 100644
--- a/src/mars.jsx
+++ b/src/planets/mars.jsx
@@ -1,21 +1,19 @@
import { Canvas, extend, useFrame, useLoader } from "@react-three/fiber";
-import { shaderMaterial, OrbitControls, Line } from "@react-three/drei";
-import React, {
- useRef,
- Suspense,
- useLayoutEffect,
- useState,
- useContext,
-} from "react";
-import * as THREE from "three";
-import { MyContext } from "./Scene3";
-import glsl from "glslify";
-import { TextureLoader } from "three/src/loaders/TextureLoader";
-import { PlanetOverlay } from "./planetOverlay";
-import { PlanetPath } from "./path";
-export const Mars = ({ speed, getPosition, speedChanged }) => {
- const [posArr, setPosArr] = useState([]);
+import React, { useRef, useLayoutEffect, useState } from "react";
+import * as THREE from "three";
+import { TextureLoader } from "three/src/loaders/TextureLoader";
+import { PlanetOverlay } from "../planetOverlay";
+import { PlanetPath } from "../path";
+
+export const Mars = ({
+ speed,
+ getPosition,
+ speedChanged,
+ setPosition,
+ data,
+}) => {
+ const [posArr, setPosArr] = useState(data);
const lineArr = useRef([]);
const lastPositionUpdate = useRef(0);
@@ -37,7 +35,7 @@ export const Mars = ({ speed, getPosition, speedChanged }) => {
//getPosition("mars", setPosArr, posArr, planetPositionIndex.current);
const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
//console.log(speedChanged);
- if (timeSinceLastUpdate >= 2 || speedChanged) {
+ if (timeSinceLastUpdate >= 2) {
getPosition("mars", setPosArr, posArr, planetPositionIndex.current);
//console.log(planetPositionIndex);
//console.log("getpos");
@@ -46,34 +44,7 @@ export const Mars = ({ speed, getPosition, speedChanged }) => {
//if speed is 0 set the date to current date get from posArr
//search for current date in posArr an set planetPositionIndex
- if (speed == 0) planetPositionIndex.current = 0;
- if (true && planetPositionIndex.current < posArr.length) {
- group.current.position.set(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- );
- planetPositionIndex.current += Number(1);
- lineArr.current.push(
- new THREE.Vector3(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- )
- );
- }
+ setPosition(group, posArr, lineArr);
}, []);
return (
diff --git a/src/mercury.jsx b/src/planets/mercury.jsx
similarity index 52%
rename from src/mercury.jsx
rename to src/planets/mercury.jsx
index c779b9a..e637b98 100644
--- a/src/mercury.jsx
+++ b/src/planets/mercury.jsx
@@ -1,26 +1,20 @@
-import {
- Canvas,
- extend,
- useFrame,
- useLoader,
- useThree,
-} from "@react-three/fiber";
-import React, {
- useRef,
- Suspense,
- useLayoutEffect,
- useState,
- useEffect,
-} from "react";
+import { useFrame, useLoader } from "@react-three/fiber";
+import React, { useRef, useLayoutEffect, useState } from "react";
import * as THREE from "three";
import { TextureLoader } from "three/src/loaders/TextureLoader";
-import "./styles.css";
+import "../styles.css";
-import { PlanetOverlay } from "./planetOverlay";
-import { PlanetPath } from "./path";
+import { PlanetOverlay } from "../planetOverlay";
+import { PlanetPath } from "../path";
-export const Mercury = ({ speed, getPosition, speedChanged }) => {
- const [posArr, setPosArr] = useState([]);
+export const Mercury = ({
+ speed,
+ getPosition,
+ speedChanged,
+ setPosition,
+ data,
+}) => {
+ const [posArr, setPosArr] = useState(data);
const lineArr = useRef([]);
let planetPositionIndex = useRef(0);
let distanceScaleFactor = 1000000;
@@ -37,7 +31,7 @@ export const Mercury = ({ speed, getPosition, speedChanged }) => {
useFrame(({ clock }) => {
//getPosition("mercury", setPosArr, posArr, planetPositionIndex.current);
const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
- if (timeSinceLastUpdate >= 2 || speedChanged) {
+ if (timeSinceLastUpdate >= 2) {
//console.log("gethis");
getPosition("mercury", setPosArr, posArr, planetPositionIndex.current);
lastPositionUpdate.current = clock.elapsedTime;
@@ -46,34 +40,7 @@ export const Mercury = ({ speed, getPosition, speedChanged }) => {
//if speed is 0 set the date to current date get from posArr
//search for current date in posArr an set planetPositionIndex
- if (speed == 0) planetPositionIndex.current = 0;
- if (true && planetPositionIndex.current < posArr.length) {
- group.current.position.set(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- );
- planetPositionIndex.current += Number(1);
- lineArr.current.push(
- new THREE.Vector3(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- )
- );
- }
+ setPosition(group, posArr, lineArr);
}, []);
const col = useLoader(TextureLoader, "../img/mercury/mercurymap.jpg");
const bump = useLoader(TextureLoader, "../img/mercury/mercurybump.jpg");
diff --git a/src/planets/neptune.jsx b/src/planets/neptune.jsx
new file mode 100644
index 0000000..4a46c38
--- /dev/null
+++ b/src/planets/neptune.jsx
@@ -0,0 +1,74 @@
+import { useFrame, useLoader } from "@react-three/fiber";
+import React, { useRef, useLayoutEffect, useState, useContext } from "react";
+import * as THREE from "three";
+import { TextureLoader } from "three/src/loaders/TextureLoader";
+import "../styles.css";
+
+import { PlanetOverlay } from "../planetOverlay";
+import { PlanetPath } from "../path";
+import { MyContext } from "../Scene3";
+
+export const Neptune = ({
+ speedChanged,
+ getPosition,
+ speed,
+ setPosition,
+ data,
+}) => {
+ const [poss, setPos] = useState(data);
+ let distanceScaleFactor = 1000000;
+ const neptune = useRef();
+ const group = useRef();
+ const lineArr = useRef([]);
+
+ const [posArr, setPosArr] = useState([]);
+
+ let planetPositionIndex = useRef(0);
+
+ const { customData } = useContext(MyContext);
+ const lastPositionUpdate = useRef(0);
+
+ useLayoutEffect(() => {
+ group.current.userData.counter = 0;
+ group.current.userData.name = "Neptune";
+ group.current.userData.nearOvOp = 500;
+ group.current.userData.scolor = "darkblue";
+ }, []);
+
+ useFrame(({ clock }) => {
+ const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
+ if (timeSinceLastUpdate >= 2) {
+ //console.log("gethis");
+ getPosition("neptune", setPosArr, posArr, planetPositionIndex.current);
+ lastPositionUpdate.current = clock.elapsedTime;
+ }
+ setPosition(group, posArr, lineArr);
+ }, []);
+
+ const changeSpeed = (newSpeed) => {
+ setPos(poss.slice(0, group.current.userData.counter + 10));
+ setGetAgain(true);
+ console.log(poss);
+ setSpeed(newSpeed);
+ };
+
+ customData.current["changeNeptuneSpeed"] = changeSpeed;
+ const col = useLoader(TextureLoader, "../img/neptune/neptunemap.jpg");
+ return (
+ <>
+
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/src/saturn.jsx b/src/planets/saturn.jsx
similarity index 64%
rename from src/saturn.jsx
rename to src/planets/saturn.jsx
index 14a7a24..8f68256 100644
--- a/src/saturn.jsx
+++ b/src/planets/saturn.jsx
@@ -1,18 +1,11 @@
-import { Canvas, extend, useFrame, useLoader } from "@react-three/fiber";
-import { shaderMaterial, OrbitControls, Line } from "@react-three/drei";
-import React, {
- useRef,
- Suspense,
- useLayoutEffect,
- useState,
- useContext,
-} from "react";
+import { extend, useFrame, useLoader } from "@react-three/fiber";
+import { shaderMaterial } from "@react-three/drei";
+import React, { useRef, useLayoutEffect, useState } from "react";
import * as THREE from "three";
import glsl from "glslify";
import { TextureLoader } from "three/src/loaders/TextureLoader";
-import { PlanetOverlay } from "./planetOverlay";
-import { PlanetPath } from "./path";
-import { MyContext } from "./Scene3";
+import { PlanetOverlay } from "../planetOverlay";
+import { PlanetPath } from "../path";
const SaturnRingMaterial = shaderMaterial(
{
@@ -59,8 +52,14 @@ void main() {
extend({ SaturnRingMaterial });
-export const Saturn = ({ speed, speedChanged, getPosition }) => {
- const [posArr, setPosArr] = useState([]);
+export const Saturn = ({
+ speed,
+ speedChanged,
+ getPosition,
+ setPosition,
+ data,
+}) => {
+ const [posArr, setPosArr] = useState(data);
const lineArr = useRef([]);
const lastPositionUpdate = useRef(0);
@@ -84,7 +83,7 @@ export const Saturn = ({ speed, speedChanged, getPosition }) => {
useFrame(({ clock }) => {
const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
- if (timeSinceLastUpdate >= 2 || speedChanged) {
+ if (timeSinceLastUpdate >= 2) {
//console.log("gethis");
getPosition("saturn", setPosArr, posArr, planetPositionIndex.current);
lastPositionUpdate.current = clock.elapsedTime;
@@ -93,38 +92,7 @@ export const Saturn = ({ speed, speedChanged, getPosition }) => {
//if speed is 0 set the date to current date get from posArr
//search for current date in posArr an set planetPositionIndex
- if (speed == 0) planetPositionIndex.current = 0;
- if (
- true &&
- planetPositionIndex.current < posArr.length &&
- posArr.length > 0
- ) {
- group.current.position.set(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- );
- planetPositionIndex.current += Number(1);
- lineArr.current.push(
- new THREE.Vector3(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- )
- );
- }
+ setPosition(group, posArr, lineArr);
}, []);
return (
diff --git a/src/sun.jsx b/src/planets/sun.jsx
similarity index 96%
rename from src/sun.jsx
rename to src/planets/sun.jsx
index eec31bf..45b68ce 100644
--- a/src/sun.jsx
+++ b/src/planets/sun.jsx
@@ -4,7 +4,7 @@ import React, { useRef, Suspense, useLayoutEffect } from "react";
import * as THREE from "three";
import glsl from "glslify";
import { TextureLoader } from "three/src/loaders/TextureLoader";
-import { PlanetOverlay } from "./planetOverlay";
+import { PlanetOverlay } from "../planetOverlay";
export const Sun = ({ positions }) => {
const mars = useRef("mars");
diff --git a/src/planets/uranus.jsx b/src/planets/uranus.jsx
new file mode 100644
index 0000000..2c911bb
--- /dev/null
+++ b/src/planets/uranus.jsx
@@ -0,0 +1,67 @@
+import { useFrame, useLoader } from "@react-three/fiber";
+import React, { useRef, useLayoutEffect, useState } from "react";
+import * as THREE from "three";
+import glsl from "glslify";
+import { TextureLoader } from "three/src/loaders/TextureLoader";
+import "../styles.css";
+
+import { PlanetOverlay } from "../planetOverlay";
+import { PlanetPath } from "../path";
+
+export const Uranus = ({
+ speed,
+ speedChanged,
+ getPosition,
+ setPosition,
+ data,
+}) => {
+ let distanceScaleFactor = 1000000;
+ const [posArr, setPosArr] = useState(data);
+ const lineArr = useRef([]);
+ const lastPositionUpdate = useRef(0);
+
+ let planetPositionIndex = useRef(0);
+
+ const uranus = useRef();
+ const group = useRef();
+
+ useLayoutEffect(() => {
+ group.current.userData.counter = 0;
+ group.current.userData.name = "Uranus";
+ group.current.userData.nearOvOp = 350;
+ group.current.userData.scolor = "lightblue";
+ }, []);
+
+ useFrame(({ clock }) => {
+ const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
+ if (timeSinceLastUpdate >= 2) {
+ //console.log("gethis");
+ getPosition("uranus", setPosArr, posArr, planetPositionIndex.current);
+ lastPositionUpdate.current = clock.elapsedTime;
+ }
+ //console.log("arrlength" + posArr.length);
+
+ //if speed is 0 set the date to current date get from posArr
+ //search for current date in posArr an set planetPositionIndex
+ setPosition(group, posArr, lineArr);
+ }, []);
+
+ const col = useLoader(TextureLoader, "../img/uranus/uranusmap.jpg");
+ return (
+ <>
+
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/src/planets/venus.jsx b/src/planets/venus.jsx
new file mode 100644
index 0000000..5ab3a73
--- /dev/null
+++ b/src/planets/venus.jsx
@@ -0,0 +1,67 @@
+import { useFrame, useLoader } from "@react-three/fiber";
+import React, { useRef, useLayoutEffect, useState, useContext } from "react";
+import * as THREE from "three";
+import { TextureLoader } from "three/src/loaders/TextureLoader";
+import "../styles.css";
+
+import { PlanetOverlay } from "../planetOverlay";
+import { PlanetPath } from "../path";
+import { MyContext } from "../Scene3";
+
+export const Venus = ({
+ speed,
+ speedChanged,
+ getPosition,
+ setPosition,
+ data,
+}) => {
+ const [posArr, setPosArr] = useState(data);
+ const lineArr = useRef([]);
+ const lastPositionUpdate = useRef(0);
+
+ let planetPositionIndex = useRef(0);
+ const venus = useRef();
+ const group = useRef();
+ const { customData } = useContext(MyContext);
+
+ useLayoutEffect(() => {
+ group.current.userData.counter = 0;
+ group.current.userData.name = "Venus";
+ group.current.userData.nearOvOp = 20;
+ group.current.userData.scolor = "brown";
+ }, []);
+
+ useFrame(({ clock }) => {
+ const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
+ if (timeSinceLastUpdate >= 2) {
+ //console.log("gethis");
+ getPosition("venus", setPosArr, posArr, planetPositionIndex.current);
+ lastPositionUpdate.current = clock.elapsedTime;
+ }
+ //console.log("arrlength" + posArr.length);
+
+ //if speed is 0 set the date to current date get from posArr
+ //search for current date in posArr an set planetPositionIndex
+ setPosition(group, posArr, lineArr);
+ }, []);
+
+ const col = useLoader(TextureLoader, "../img/venus/venusmap.jpg");
+ const bump = useLoader(TextureLoader, "../img/venus/venusbump.jpg");
+ return (
+ <>
+
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/src/skybox.jsx b/src/skybox.jsx
index 32a04dd..3f98817 100644
--- a/src/skybox.jsx
+++ b/src/skybox.jsx
@@ -1,34 +1,6 @@
-import { Canvas, useFrame, useThree } from "@react-three/fiber";
-import { OrbitControls, PerspectiveCamera } from "@react-three/drei";
-import React, {
- Suspense,
- useState,
- useEffect,
- useRef,
- createContext,
- useContext,
- forwardRef,
- memo,
- useMemo,
-} from "react";
-import { Earth } from "./earth.jsx";
-import { Mars } from "./mars.jsx";
-import { Jupiter } from "./jupiter.jsx";
-import { Saturn } from "./saturn.jsx";
-import { Mercury } from "./mercury.jsx";
-import { Venus } from "./venus.jsx";
-import { Neptune } from "./neptune.jsx";
-import { Uranus } from "./uranus.jsx";
-import { Sun } from "./sun.jsx";
-import * as THREE from "three";
-import { PlanetInfo } from "./planetInfo.jsx";
-import {
- Selection,
- Select,
- EffectComposer,
- Outline,
-} from "@react-three/postprocessing";
+import { useThree } from "@react-three/fiber";
+import * as THREE from "three";
export const Skybox = () => {
const { scene } = useThree();
const loader = new THREE.CubeTextureLoader();
diff --git a/src/styles.css b/src/styles.css
index c853963..ddee2a9 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -35,6 +35,8 @@ canvas {
z-index: 12;
position: absolute;
height: 100%;
+ transition: opacity 0.5s;
+ /*opacity: 0;
/*background-color: aliceblue;*/
}
@@ -49,7 +51,31 @@ canvas {
width: 100%;
}
+.planetInfoFadeIn {
+ z-index: 12;
+ position: absolute;
+ height: 100%;
+ transition-delay: 1s;
+ transition-property: opacity;
+ transition: opacity 2s;
+ opacity: 0;
+}
+
+.btn-close {
+ position: relative;
+ width: 40px;
+ height: 40px;
+ top: 50px;
+ font-size: x-large;
+ color: white;
+ background-color: rgba(0, 0, 0, 0);
+ border: none;
+ cursor: pointer;
+ right: calc(-100% + 40px);
+}
+
.planetInfo .wrapper {
+ padding-top: 100px;
background-color: rgba(194, 15, 15, 0);
backdrop-filter: blur(0.5px);
display: block;
@@ -57,12 +83,43 @@ canvas {
top: 0;
height: 100%;
border-right: 1px solid rgba(255, 255, 255, 0.216);
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
}
.planetInfo .wrapper p {
color: white;
- padding: 2px;
- margin-left: 3%;
+ padding: 10px 10px;
+ margin: 0 auto;
+}
+
+.planetInfo .wrapper .data-wrapper {
+ display: flex;
+ flex-direction: column;
+ padding: 10px 10px;
+ margin: 0 auto;
+}
+
+.planetInfo .wrapper .data-wrapper .data {
+ padding-bottom: 0px;
+ border-bottom: 1px solid rgb(116, 116, 116);
+}
+
+.planetInfo .wrapper .data-wrapper .data-1 {
+ padding-right: 5px;
+ font-size: 28.8px;
+}
+
+.planetInfo .wrapper .data-wrapper .data-2 {
+ padding-right: 5px;
+ color: white;
+ font-size: 18.8px;
+}
+
+.planetInfo .wrapper .data-wrapper .data-3 {
+ padding-right: 5px;
+ color: rgb(83, 83, 83);
+ font-size: 14px;
}
.planetInfo .wrapper h1 {
diff --git a/src/uranus.jsx b/src/uranus.jsx
deleted file mode 100644
index 06f0c36..0000000
--- a/src/uranus.jsx
+++ /dev/null
@@ -1,120 +0,0 @@
-import {
- Canvas,
- extend,
- useFrame,
- useLoader,
- useThree,
-} from "@react-three/fiber";
-import {
- shaderMaterial,
- OrbitControls,
- Line,
- Html,
- Text,
-} from "@react-three/drei";
-import React, {
- useRef,
- Suspense,
- useLayoutEffect,
- useState,
- useEffect,
- useContext,
-} from "react";
-import * as THREE from "three";
-import glsl from "glslify";
-import { TextureLoader } from "three/src/loaders/TextureLoader";
-import {
- Selection,
- Select,
- EffectComposer,
- Outline,
- Scanline,
-} from "@react-three/postprocessing";
-import "./styles.css";
-
-import { PlanetOverlay } from "./planetOverlay";
-import { PlanetPath } from "./path";
-import { MyContext } from "./Scene3";
-
-export const Uranus = ({ speed, speedChanged, getPosition }) => {
- let distanceScaleFactor = 1000000;
- const [posArr, setPosArr] = useState([]);
- const lineArr = useRef([]);
- const lastPositionUpdate = useRef(0);
-
- let planetPositionIndex = useRef(0);
-
- const uranus = useRef();
- const group = useRef();
-
- useLayoutEffect(() => {
- group.current.userData.counter = 0;
- group.current.userData.name = "Uranus";
- group.current.userData.nearOvOp = 350;
- group.current.userData.scolor = "lightblue";
- }, []);
-
- useFrame(({ clock }) => {
- const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
- if (timeSinceLastUpdate >= 2 || speedChanged) {
- //console.log("gethis");
- getPosition("uranus", setPosArr, posArr, planetPositionIndex.current);
- lastPositionUpdate.current = clock.elapsedTime;
- }
- //console.log("arrlength" + posArr.length);
-
- //if speed is 0 set the date to current date get from posArr
- //search for current date in posArr an set planetPositionIndex
- if (speed == 0) planetPositionIndex.current = 0;
- if (
- true &&
- planetPositionIndex.current < posArr.length &&
- posArr.length > 0
- ) {
- group.current.position.set(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- );
- planetPositionIndex.current += Number(1);
- lineArr.current.push(
- new THREE.Vector3(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- )
- );
- }
- }, []);
-
- const col = useLoader(TextureLoader, "../img/uranus/uranusmap.jpg");
- return (
- <>
-
-
-
-
-
-
-
-
- >
- );
-};
diff --git a/src/venus.jsx b/src/venus.jsx
deleted file mode 100644
index 19f8719..0000000
--- a/src/venus.jsx
+++ /dev/null
@@ -1,121 +0,0 @@
-import {
- Canvas,
- extend,
- useFrame,
- useLoader,
- useThree,
-} from "@react-three/fiber";
-import {
- shaderMaterial,
- OrbitControls,
- Line,
- Html,
- Text,
-} from "@react-three/drei";
-import React, {
- useRef,
- Suspense,
- useLayoutEffect,
- useState,
- useEffect,
- useContext,
-} from "react";
-import * as THREE from "three";
-import glsl from "glslify";
-import { TextureLoader } from "three/src/loaders/TextureLoader";
-import {
- Selection,
- Select,
- EffectComposer,
- Outline,
- Scanline,
-} from "@react-three/postprocessing";
-import "./styles.css";
-
-import { PlanetOverlay } from "./planetOverlay";
-import { PlanetPath } from "./path";
-import { MyContext } from "./Scene3";
-
-export const Venus = ({ speed, speedChanged, getPosition }) => {
- let distanceScaleFactor = 1000000;
- const [posArr, setPosArr] = useState([]);
- const lineArr = useRef([]);
- const lastPositionUpdate = useRef(0);
-
- let planetPositionIndex = useRef(0);
- const venus = useRef();
- const group = useRef();
- const { customData } = useContext(MyContext);
-
- useLayoutEffect(() => {
- group.current.userData.counter = 0;
- group.current.userData.name = "Venus";
- group.current.userData.nearOvOp = 20;
- group.current.userData.scolor = "brown";
- }, []);
-
- useFrame(({ clock }) => {
- const timeSinceLastUpdate = clock.elapsedTime - lastPositionUpdate.current;
- if (timeSinceLastUpdate >= 2 || speedChanged) {
- //console.log("gethis");
- getPosition("venus", setPosArr, posArr, planetPositionIndex.current);
- lastPositionUpdate.current = clock.elapsedTime;
- }
- //console.log("arrlength" + posArr.length);
-
- //if speed is 0 set the date to current date get from posArr
- //search for current date in posArr an set planetPositionIndex
- if (speed == 0) planetPositionIndex.current = 0;
- if (
- true &&
- planetPositionIndex.current < posArr.length &&
- posArr.length > 0
- ) {
- group.current.position.set(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- );
- planetPositionIndex.current += Number(1);
- lineArr.current.push(
- new THREE.Vector3(
- Number(
- posArr[planetPositionIndex.current].position.x / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.y / distanceScaleFactor
- ),
- Number(
- posArr[planetPositionIndex.current].position.z / distanceScaleFactor
- )
- )
- );
- }
- }, []);
-
- const col = useLoader(TextureLoader, "../img/venus/venusmap.jpg");
- const bump = useLoader(TextureLoader, "../img/venus/venusbump.jpg");
- return (
- <>
-
-
-
-
-
-
-
-
- >
- );
-};