Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function addObject(objModel, mtlMaterial) {
- const manager = new THREE.LoadingManager();
- var viewerAlert = document.getElementById('viewerAlert');
- var viewerFiles = document.getElementById('viewerFiles');
- var countFiles = document.getElementById('countFiles');
- manager.onStart = function(url, itemsLoaded, itemsTotal){
- function showViewerText(){
- viewerFiles.textContent = 'Started loading file: ' + url + '.\nLoaded.';
- countFiles.textContent = itemsLoaded + ' of ' + itemsTotal + ' files.';
- }
- if(viewerAlert.style.display == 'flex'){
- showViewerText();
- }
- else {
- viewerAlert.classList.remove('hidden', 'fade-out')
- viewerAlert.classList.add('fade-in');
- showViewerText();
- }
- };
- manager.onLoad = function(){
- viewerFiles.textContent = 'Loading complete!';
- countFiles.textContent = '';
- setTimeout(() => {
- viewerAlert.classList.add('fade-out');
- viewerAlert.addEventListener('transitionend', function(){
- viewerAlert.classList.replace('fade-out', 'hidden');
- });
- }, 800);
- };
- manager.onProgress = function(url, itemsLoaded, itemsTotal){
- viewerFiles.textContent = 'Loading file: ' + url + '.\nLoaded.';
- countFiles.textContent = itemsLoaded + ' of ' + itemsTotal + ' files.';
- };
- manager.onError = function(url){
- viewerFiles.textContent = 'There was an error loading ' + url;
- countFiles.textContent = '';
- };
- var mtlLoader = new THREE.MTLLoader(manager);
- mtlLoader.setPath('./assets/models/');
- mtlLoader.load(mtlMaterial, function(materials) {
- materials.preload();
- var objLoader = new THREE.OBJLoader(manager);
- objLoader.setMaterials(materials);
- objLoader.setPath('./assets/models/');
- objLoader.load(objModel,
- function(obj){
- obj.name = 'mainmodel';
- obj.position.set(0, 0, 0);
- obj.castShadow = true;
- obj.receiveShadow = true;
- // const box = new THREE.BoxHelper( obj, 0xffff00 );
- scene.add(obj);
- console.log(obj);
- // camera.position = obj.position;
- //scale all models to a relative scene size
- const model = new THREE.Box3().setFromObject(obj);
- let size = new THREE.Vector3();
- model.getSize(size);
- let scaleVec = new THREE.Vector3(1, 1, 1).divide(size);
- let scale = Math.min(scaleVec.x, Math.min(scaleVec.y, scaleVec.z));
- obj.scale.setScalar(scale * 2);
- },
- function(xhr){
- },
- function(error){
- console.error('An error occured!' + error);
- }
- );
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment