@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
36 lines (24 loc) • 1.3 kB
JavaScript
import AABB2 from "../../../../../src/core/geom/2d/aabb/AABB2.js";
import { Sampler2D } from "../../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
import { renderObjectToSampler2D } from "../../../../../src/engine/graphics/util/renderObjectToSampler2D.js";
import { threeUpdateTransform } from "../../../../../src/engine/graphics/util/threeUpdateTransform.js";
import { CanvasView } from "../../../../../src/view/elements/CanvasView.js";
import { TypeEditor } from "../../TypeEditor.js";
export class MeshEditor extends TypeEditor {
build(parent, field, registry) {
const mesh = field.adapter.read(parent, field.name);
const sampler = Sampler2D.uint8(4, 128, 128);
const m = mesh.clone();
m.position.set(0, 0, 0);
m.rotation.set(0, 0, 0);
m.scale.set(1, 1, 1);
threeUpdateTransform(m);
const preview = renderObjectToSampler2D(sampler, m, undefined, new AABB2(-0.05, -0.05, 1.05, 1.05));
preview.render();
const view = new CanvasView();
sampler2D2Canvas(sampler, 1, 0, view.el);
preview.dispose();
return view;
}
}