File

projects/atft/src/lib/object/loader/services/obj-loader.service.ts

Extends

AbstractCacheService

Index

Properties
Methods

Methods

Protected getValue
getValue(key: string)
Inherited from AbstractCacheService
Parameters :
Name Type Optional
key string No
Returns : Promise<THREE.Object3D>
Public setMaterials
setMaterials(materialCreator: MTLLoader.MaterialCreator)
Parameters :
Name Type Optional
materialCreator MTLLoader.MaterialCreator No
Returns : void
Public Async load
load(key: string)
Inherited from AbstractCacheService
Parameters :
Name Type Optional
key string No
Returns : Promise<V>

Properties

Private loader
Default value : new OBJLoader()
Protected cache
Default value : new Map<string, Promise<V>>()
Inherited from AbstractCacheService
import {Injectable} from '@angular/core';
import {AbstractCacheService} from './abstract-cache.service';
import {OBJLoader} from 'three/examples/jsm/loaders/OBJLoader';
import * as THREE from 'three';
import {MTLLoader} from 'three/examples/jsm/loaders/MTLLoader';


@Injectable()
export class ObjLoaderService extends AbstractCacheService<THREE.Object3D> {

  private loader = new OBJLoader();

  protected getValue(key: string): Promise<THREE.Object3D> {
    // console.log('ObjLoaderService.getValue');
    return new Promise<THREE.Object3D>((resolve, reject) => {
      this.loader.load(key, model => {
        resolve(model);
      }, undefined, reject);
    });
  }

  public setMaterials(materialCreator: MTLLoader.MaterialCreator): void {
    this.loader.setMaterials(materialCreator);
  }

}

results matching ""

    No results matching ""