diff --git a/ShadowEditor.Web/src/loader/MD2Loader.js b/ShadowEditor.Web/src/loader/MD2Loader.js new file mode 100644 index 00000000..0c20efe1 --- /dev/null +++ b/ShadowEditor.Web/src/loader/MD2Loader.js @@ -0,0 +1,32 @@ +import BaseLoader from './BaseLoader'; + +/** + * MD2Loader + * @param {*} app + */ +function MD2Loader(app) { + BaseLoader.call(this, app); +} + +MD2Loader.prototype = Object.create(BaseLoader.prototype); +MD2Loader.prototype.constructor = MD2Loader; + +MD2Loader.prototype.load = function (url) { + return new Promise(resolve => { + var loader = new THREE.MD2Loader(); + + loader.load(url, geometry => { + var material = new THREE.MeshStandardMaterial({ + morphTargets: true, + morphNormals: true + }); + + var mesh = new THREE.Mesh(geometry, material); + mesh.mixer = new THREE.AnimationMixer(mesh); + + resolve(mesh); + }); + }); +}; + +export default MD2Loader; \ No newline at end of file diff --git a/ShadowEditor.Web/src/loader/OBJLoader.js b/ShadowEditor.Web/src/loader/OBJLoader.js new file mode 100644 index 00000000..bd10d308 --- /dev/null +++ b/ShadowEditor.Web/src/loader/OBJLoader.js @@ -0,0 +1,24 @@ +import BaseLoader from './BaseLoader'; + +/** + * OBJLoader + * @param {*} app + */ +function OBJLoader(app) { + BaseLoader.call(this, app); +} + +OBJLoader.prototype = Object.create(BaseLoader.prototype); +OBJLoader.prototype.constructor = OBJLoader; + +OBJLoader.prototype.load = function (url) { + return new Promise(resolve => { + var loader = new THREE.OBJLoader(); + + loader.load(url, obj => { + resolve(obj); + }); + }); +}; + +export default OBJLoader; \ No newline at end of file diff --git a/ShadowEditor.Web/src/loader/PLYLoader.js b/ShadowEditor.Web/src/loader/PLYLoader.js new file mode 100644 index 00000000..01aec560 --- /dev/null +++ b/ShadowEditor.Web/src/loader/PLYLoader.js @@ -0,0 +1,26 @@ +import BaseLoader from './BaseLoader'; + +/** + * PLYLoader + * @param {*} app + */ +function PLYLoader(app) { + BaseLoader.call(this, app); +} + +PLYLoader.prototype = Object.create(BaseLoader.prototype); +PLYLoader.prototype.constructor = PLYLoader; + +PLYLoader.prototype.load = function (url) { + return new Promise(resolve => { + var loader = new THREE.PLYLoader(); + + loader.load(url, geometry => { + var material = new THREE.MeshStandardMaterial(); + var mesh = new THREE.Mesh(geometry, material); + resolve(mesh); + }); + }); +}; + +export default PLYLoader; \ No newline at end of file diff --git a/ShadowEditor.Web/src/loader/STLLoader.js b/ShadowEditor.Web/src/loader/STLLoader.js new file mode 100644 index 00000000..e83bd453 --- /dev/null +++ b/ShadowEditor.Web/src/loader/STLLoader.js @@ -0,0 +1,26 @@ +import BaseLoader from './BaseLoader'; + +/** + * STLLoader + * @param {*} app + */ +function STLLoader(app) { + BaseLoader.call(this, app); +} + +STLLoader.prototype = Object.create(BaseLoader.prototype); +STLLoader.prototype.constructor = STLLoader; + +STLLoader.prototype.load = function (url) { + return new Promise(resolve => { + var loader = new THREE.STLLoader(); + + loader.load(url, geometry => { + var material = new THREE.MeshStandardMaterial(); + var mesh = new THREE.Mesh(geometry, material); + resolve(mesh); + }); + }); +}; + +export default STLLoader; \ No newline at end of file diff --git a/ShadowEditor.Web/src/loader/VTKLoader.js b/ShadowEditor.Web/src/loader/VTKLoader.js new file mode 100644 index 00000000..d46d00c6 --- /dev/null +++ b/ShadowEditor.Web/src/loader/VTKLoader.js @@ -0,0 +1,26 @@ +import BaseLoader from './BaseLoader'; + +/** + * VTKLoader + * @param {*} app + */ +function VTKLoader(app) { + BaseLoader.call(this, app); +} + +VTKLoader.prototype = Object.create(BaseLoader.prototype); +VTKLoader.prototype.constructor = VTKLoader; + +VTKLoader.prototype.load = function (url) { + return new Promise(resolve => { + var loader = new THREE.VTKLoader(); + + loader.load(url, geometry => { + var material = new THREE.MeshStandardMaterial(); + var mesh = new THREE.Mesh(geometry, material); + resolve(mesh); + }); + }); +}; + +export default VTKLoader; \ No newline at end of file