mirror of
https://github.com/openglobus/openglobus.git
synced 2025-12-08 19:25:27 +00:00
108 lines
2.8 KiB
JavaScript
108 lines
2.8 KiB
JavaScript
import {
|
|
control,
|
|
Entity,
|
|
Object3d,
|
|
Renderer,
|
|
Vec3,
|
|
Mat4,
|
|
RenderNode,
|
|
EntityCollection,
|
|
scene,
|
|
} from "../../lib/og.es.js";
|
|
|
|
let renderer = new Renderer("frame", {
|
|
msaa: 8,
|
|
controls: [new control.SimpleNavigation({ speed: 0.01 }), new control.GeoObjectEditor()],
|
|
autoActivate: true
|
|
});
|
|
|
|
window.renderer = renderer;
|
|
|
|
class MyScene extends RenderNode {
|
|
constructor() {
|
|
super("MyScene");
|
|
}
|
|
|
|
init() {
|
|
const baseObj = Object3d.createCube(1, 1, 1).translate(new Vec3(0, 0, 0)).setMaterial({
|
|
ambient: "#c2c2c2",
|
|
diffuse: "#ffffff",
|
|
shininess: 1
|
|
});
|
|
|
|
window.test = () => {
|
|
parentEntity.setPitch(0);
|
|
cube2.setPitch(0);
|
|
cube3.setPitch(0);
|
|
|
|
parentEntity.setYaw(0);
|
|
cube2.setYaw(0);
|
|
cube3.setYaw(0);
|
|
|
|
this.renderer.activeCamera.set(new Vec3(10.5, 0, 0), new Vec3(0, 0, 0), new Vec3(0, 1, 0));
|
|
}
|
|
|
|
let parentEntity = new Entity({
|
|
cartesian: new Vec3(0, 0, 0),
|
|
independentPicking: true,
|
|
//yaw: 45 * Math.PI / 180,
|
|
pitch: 45 * Math.PI / 180,
|
|
geoObject: {
|
|
color: "rgb(90,90,90)",
|
|
scale: 1,
|
|
instanced: true,
|
|
tag: `baseObj`,
|
|
object3d: baseObj
|
|
}
|
|
});
|
|
|
|
let cube2 = new Entity({
|
|
cartesian: new Vec3(5, 0, 5),
|
|
independentPicking: true,
|
|
//yaw: 45 * Math.PI / 180,
|
|
pitch: 45 * Math.PI / 180,
|
|
geoObject: {
|
|
color: "rgb(90,90,90)",
|
|
scale: 1,
|
|
instanced: true,
|
|
tag: `baseObj`,
|
|
object3d: baseObj
|
|
}
|
|
});
|
|
|
|
let cube3 = new Entity({
|
|
cartesian: new Vec3(-1, 3, 1),
|
|
independentPicking: true,
|
|
//yaw: 45 * Math.PI / 180,
|
|
pitch: 45 * Math.PI / 180,
|
|
geoObject: {
|
|
color: "rgb(90,90,90)",
|
|
scale: 1,
|
|
instanced: true,
|
|
tag: `baseObj`,
|
|
object3d: baseObj
|
|
}
|
|
});
|
|
|
|
let collection = new EntityCollection({
|
|
entities: [parentEntity, cube2, cube3]
|
|
});
|
|
|
|
collection.addTo(this);
|
|
|
|
this.renderer.activeCamera.set(new Vec3(0, 10, 10), new Vec3(0, 0, 0));
|
|
this.renderer.activeCamera.isOrthographic = true;
|
|
|
|
this.renderer.activeCamera.update();
|
|
|
|
this.renderer.events.on("rclick", (e) => {
|
|
//let dist = this.renderer.getDistanceFromPixel(e.pos);
|
|
//let dir = this.renderer.activeCamera.unproject(e.x, e.y, dist);
|
|
//console.log(dir);
|
|
})
|
|
}
|
|
}
|
|
|
|
renderer.addNodes([new scene.Axes(), new MyScene()]);
|
|
|