2025-06-18 19:30:52 +04:00

77 lines
1.7 KiB
JavaScript

import {
Globe,
control,
Vector,
LonLat,
Entity,
OpenStreetMap,
EmptyTerrain,
RgbTerrain,
GlobusRgbTerrain,
Object3d,
mercator,
Bing,
GeoVideo,
XYZ,
utils,
PlanetCamera,
Framebuffer,
input,
Program,
Vec4,
Vec2,
GeoImage
} from "../../lib/og.es.js";
const globus = new Globe({
target: "earth",
name: "Earth",
terrain: new GlobusRgbTerrain(),
layers: [new OpenStreetMap(), new Bing()],
atmosphereEnabled: false,
fontsSrc: "../../res/fonts",
});
globus.planet.addControl(new control.TimelineControl());
globus.planet.addControl(new control.CompassButton());
globus.planet.addControl(new control.DebugInfo());
globus.planet.addControl(new control.LayerSwitcher());
globus.planet.addControl(new control.DrawingSwitcher());
let tempCamera = new PlanetCamera(globus.planet);
function saveCamera() {
let cam = globus.planet.camera
tempCamera.copy(cam);
depthHandler.camera.copy(cam);
}
function restoreCamera() {
globus.planet.camera.copy(tempCamera);
}
globus.planet.renderer.events.on("charkeypress", input.KEY_C, () => {
saveCamera();
});
globus.planet.renderer.events.on("charkeypress", input.KEY_V, () => {
restoreCamera();
});
let depthHandler = new control.CameraDepthHandler();
globus.planet.addControl(depthHandler);
let depthPreview = new control.FramebufferPreview({
framebuffer: depthHandler.framebuffer,
});
globus.planet.addControl(depthPreview);
globus.planet.addControl(new control.KeyboardNavigation({
camera: depthHandler.camera
}));
globus.planet.renderer.controls.SimpleSkyBackground.colorOne = "black";
globus.planet.renderer.controls.SimpleSkyBackground.colorTwo = "black";