UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

44 lines (41 loc) 1.26 kB
import { path } from '../../core/path.js'; import { PlyParser } from '../parsers/ply.js'; import { ResourceHandler } from './handler.js'; import { SogsParser } from '../parsers/sogs.js'; import { SogBundleParser } from '../parsers/sog-bundle.js'; import { GSplatOctreeParser } from '../parsers/gsplat-octree.js'; class GSplatHandler extends ResourceHandler { constructor(app){ super(app, 'gsplat'); this.parsers = { ply: new PlyParser(app, 3), sog: new SogBundleParser(app), json: new SogsParser(app, 3), octree: new GSplatOctreeParser(app, 3) }; } _getUrlWithoutParams(url) { return url.indexOf('?') >= 0 ? url.split('?')[0] : url; } _getParser(url) { const basename = path.getBasename(this._getUrlWithoutParams(url)).toLowerCase(); if (basename === 'lod-meta.json') { return this.parsers.octree; } const ext = path.getExtension(basename).replace('.', ''); return this.parsers[ext] || this.parsers.ply; } load(url, callback, asset) { if (typeof url === 'string') { url = { load: url, original: url }; } this._getParser(url.original).load(url, callback, asset); } open(url, data, asset) { return data; } } export { GSplatHandler };