mirror of
https://github.com/openglobus/openglobus.git
synced 2025-12-08 19:25:27 +00:00
938 fixed.5
This commit is contained in:
parent
5c2632c70a
commit
464b3f8e58
24
sandbox/nestedEntities2/nestedEntities.html
Normal file
24
sandbox/nestedEntities2/nestedEntities.html
Normal file
@ -0,0 +1,24 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Draco loader sample</title>
|
||||
<meta charset="utf-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://www.gstatic.com/draco/versioned/decoders/1.5.7/draco_decoder.js"
|
||||
></script>
|
||||
<script src="./nestedEntities.js" type="module"></script>
|
||||
<link rel="stylesheet" href="../../css/og.css" type="text/css"/>
|
||||
<style>
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="earth" style="width:100%;height:100%"></div>
|
||||
<div id="l0" class="defaultText" style="color:black"></div>
|
||||
</body>
|
||||
</html>
|
||||
91
sandbox/nestedEntities2/nestedEntities.js
Normal file
91
sandbox/nestedEntities2/nestedEntities.js
Normal file
@ -0,0 +1,91 @@
|
||||
import {
|
||||
Globe,
|
||||
Vector,
|
||||
GlobusRgbTerrain,
|
||||
OpenStreetMap,
|
||||
Bing,
|
||||
Object3d,
|
||||
Vec3,
|
||||
Entity,
|
||||
control,
|
||||
LonLat
|
||||
} from "../../lib/og.es.js";
|
||||
|
||||
let objLayer = new Vector("Obj.Layer", {
|
||||
scaleByDistance: [50, 50000, 1]
|
||||
});
|
||||
|
||||
let globe = new Globe({
|
||||
target: "earth",
|
||||
name: "Earth",
|
||||
terrain: new GlobusRgbTerrain(),
|
||||
layers: [new OpenStreetMap(), new Bing(), objLayer],
|
||||
});
|
||||
|
||||
globe.planet.addControls([
|
||||
new control.GeoObjectEditor(),
|
||||
new control.LayerSwitcher()
|
||||
]);
|
||||
|
||||
const baseObj = Object3d.createCube(0.4, 2, 0.4)
|
||||
.translate(new Vec3(0, 1, 0))
|
||||
.setMaterial({
|
||||
ambient: "#802727",
|
||||
diffuse: "#ff5252",
|
||||
});
|
||||
|
||||
const viewObj = Object3d.createFrustum(3, 2, 1)
|
||||
.setMaterial({
|
||||
ambient: "#28552b",
|
||||
diffuse: "#1cdd23",
|
||||
});
|
||||
|
||||
const viewObj2 = Object3d.createFrustum(3, 2, 1)
|
||||
.setMaterial({
|
||||
ambient: "#5f2563",
|
||||
diffuse: "#ef00ff",
|
||||
});
|
||||
|
||||
const pos = new LonLat(-105.6173319876, 39.615583413, 4057.9466);
|
||||
|
||||
let parentEntity = new Entity({
|
||||
lonlat: pos,
|
||||
independentPicking: true,
|
||||
geoObject: {
|
||||
instanced: true,
|
||||
tag: `baseObj`,
|
||||
object3d: baseObj,
|
||||
}
|
||||
});
|
||||
|
||||
let childEntity = new Entity({
|
||||
cartesian: new Vec3(0, 1, 0),
|
||||
independentPicking: true,
|
||||
relativePosition: true,
|
||||
geoObject: {
|
||||
instanced: true,
|
||||
tag: `viewObj`,
|
||||
object3d: viewObj,
|
||||
}
|
||||
});
|
||||
|
||||
let childChildEntity = new Entity({
|
||||
cartesian: new Vec3(0, 3, -1),
|
||||
independentPicking: true,
|
||||
relativePosition: true,
|
||||
geoObject: {
|
||||
instanced: true,
|
||||
tag: `viewObj2`,
|
||||
object3d: viewObj2,
|
||||
}
|
||||
});
|
||||
|
||||
childEntity.appendChild(childChildEntity);
|
||||
parentEntity.appendChild(childEntity);
|
||||
|
||||
objLayer.add(parentEntity);
|
||||
|
||||
globe.planet.camera.setLonLat(
|
||||
new LonLat(-105.61717175714179, 39.61567256262465, 4064.033358156039),
|
||||
pos, // look point
|
||||
);
|
||||
Loading…
x
Reference in New Issue
Block a user