File

projects/atft/src/lib/object/loader/object-loader.component.ts

Extends

AbstractModelLoader

Metadata

Index

Properties
Methods
Inputs
Outputs

Constructor

constructor(rendererService: RendererService, parent: AbstractObject3D<any>)
Parameters :
Name Type Optional
rendererService RendererService No
parent AbstractObject3D<any> No

Inputs

model
Type : string
Inherited from AbstractModelLoader

The model data source (usually a URI). Settings this property only hides the previous model upon successful loading of the new one. This especially means that if the new data source is invalid, the old model will not be removed from the scene.

layer
Type : number
Default value : 0
Inherited from AbstractObject3D
name
Type : string
Default value : uuidv4()
Inherited from AbstractObject3D
rotateX
Type : number
Inherited from AbstractObject3D

Rotation in Euler angles (radians) with order X, Y, Z.

rotateY
Type : number
Inherited from AbstractObject3D
rotateZ
Type : number
Inherited from AbstractObject3D
scaleX
Type : number
Default value : 1
Inherited from AbstractObject3D
scaleY
Type : number
Default value : 1
Inherited from AbstractObject3D
scaleZ
Type : number
Default value : 1
Inherited from AbstractObject3D
translateX
Type : number
Inherited from AbstractObject3D

Translate the geometry. This is typically done as a one time operation, and not during a loop.

translateY
Type : number
Inherited from AbstractObject3D
translateZ
Type : number
Inherited from AbstractObject3D

Outputs

changed
Type : EventEmitter
Inherited from AbstractObject3D

Methods

Protected Async loadLazyObject
loadLazyObject()
Inherited from AbstractLazyObject3D
Returns : unknown
Protected afterInit
afterInit()
Inherited from AbstractObject3D
Returns : void
Protected newObject3DInstance
newObject3DInstance()
Inherited from AbstractObject3D
Returns : THREE.Object3D
ngOnDestroy
ngOnDestroy()
Inherited from AbstractObject3D
Returns : void
Protected startLoading
startLoading()
Inherited from AbstractLazyObject3D
Returns : void
Public addChild
addChild(object: AbstractObject3D<any>)
Inherited from AbstractObject3D
Parameters :
Name Type Optional
object AbstractObject3D<any> No
Returns : void
Public applyRotation
applyRotation()
Inherited from AbstractObject3D
Returns : void
Public applyScale
applyScale()
Inherited from AbstractObject3D
Returns : void
Public applyTranslation
applyTranslation()
Inherited from AbstractObject3D
Returns : void
Public findByName
findByName(name: string)
Inherited from AbstractObject3D
Parameters :
Name Type Optional
name string No
Returns : any
Public getChildren
getChildren()
Inherited from AbstractObject3D
Public getObject
getObject()
Inherited from AbstractObject3D
Returns : T
Public ngAfterViewInit
ngAfterViewInit()
Inherited from AbstractObject3D
Returns : void
Public ngOnChanges
ngOnChanges(changes: SimpleChanges)
Inherited from AbstractObject3D
Parameters :
Name Type Optional
changes SimpleChanges No
Returns : void
Public ngOnInit
ngOnInit()
Inherited from AbstractObject3D
Returns : void
Protected recursionByName
recursionByName(currentNode: AbstractObject3D<any>, name: string)
Inherited from AbstractObject3D
Parameters :
Name Type Optional
currentNode AbstractObject3D<any> No
name string No
Returns : any
Public removeChild
removeChild(object: AbstractObject3D<any>)
Inherited from AbstractObject3D
Parameters :
Name Type Optional
object AbstractObject3D<any> No
Returns : void
Public removeChildByName
removeChildByName(name: string)
Inherited from AbstractObject3D
Parameters :
Name Type Optional
name string No
Returns : void
Public updateParent
updateParent()
Inherited from AbstractObject3D
Returns : void

Properties

Private loader
Default value : new THREE.ObjectLoader()
Protected _model
Type : string
Inherited from AbstractModelLoader
Protected lazyObject
Type : THREE.Object3D | undefined
Inherited from AbstractLazyObject3D

This is reference to lazy loaded Object3D (async after init)

Private parentInitialized
Default value : false
Inherited from AbstractLazyObject3D

Flag to signal whether the parentScene class instance AbstractObject3D called the overwritten method AbstractModelLoader yet.

Unless that method was called, no methods and properties of AbstractObject3D may be safely accessed, especially AbstractObject3D and AbstractObject3D.renderer.

Protected childlren
Type : Array<AbstractObject3D<any>>
Default value : []
Inherited from AbstractObject3D
Protected object
Type : T
Inherited from AbstractObject3D
import { Component, Optional, SkipSelf } from '@angular/core';

import * as THREE from 'three';
import { RendererService } from '../../renderer/renderer.service';
import { provideParent } from '../../util';
import { AbstractObject3D } from '../abstract-object-3d';
import { AbstractModelLoader } from './abstract-model-loader';

@Component({
  selector: 'atft-object-loader',
  providers: [provideParent(ObjectLoaderComponent)],
  template: '<ng-content></ng-content>'
})
export class ObjectLoaderComponent extends AbstractModelLoader {
  private loader = new THREE.ObjectLoader();

  constructor(
    protected override rendererService: RendererService,
    @SkipSelf() @Optional() protected override parent: AbstractObject3D<any>
  ) {
    super(rendererService, parent);
  }

  protected async loadLazyObject() {
    // console.log('ObjectLoaderComponent.loadLazyObject');
    return new Promise<THREE.Object3D>((resolve, reject) => {
      this.loader.load(this.model, model => {
          // BUG #95: it seems that some textures loaded after last render (and model has black texture instead)
          resolve(model);
        },
        undefined,
        reject
      );
    });
  }

}
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""