playcanvas
Version:
PlayCanvas WebGL game engine
36 lines (33 loc) • 926 B
JavaScript
import { path } from '../../core/path.js';
import { PlyParser } from '../parsers/ply.js';
import { ResourceHandler } from './handler.js';
import { SogsParser } from '../parsers/sogs.js';
class GSplatHandler extends ResourceHandler {
constructor(app){
super(app, 'gsplat');
this.parsers = {
ply: new PlyParser(app, 3),
json: new SogsParser(app, 3)
};
}
_getUrlWithoutParams(url) {
return url.indexOf('?') >= 0 ? url.split('?')[0] : url;
}
_getParser(url) {
const ext = path.getExtension(this._getUrlWithoutParams(url)).toLowerCase().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 };