UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

34 lines (33 loc) 877 B
import { SKYTYPE_BOX, SKYTYPE_DOME, SKYTYPE_INFINITE } from "../constants.js"; import { Mesh } from "../mesh.js"; import { BoxGeometry } from "../geometry/box-geometry.js"; import { DomeGeometry } from "../geometry/dome-geometry.js"; class SkyGeometry { static create(device, type) { switch (type) { case SKYTYPE_BOX: return SkyGeometry.box(device); case SKYTYPE_DOME: return SkyGeometry.dome(device); } return SkyGeometry.infinite(device); } static infinite(device) { return Mesh.fromGeometry(device, new BoxGeometry(device)); } static box(device) { return Mesh.fromGeometry(device, new BoxGeometry({ yOffset: 0.5 })); } static dome(device) { const geom = new DomeGeometry({ latitudeBands: 50, longitudeBands: 50 }); geom.normals = void 0; geom.uvs = void 0; return Mesh.fromGeometry(device, geom); } } export { SkyGeometry };