ModelNode.js 845 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import Node from '../core/Node.js';
  2. import Vector3Node from '../inputs/Vector3Node.js';
  3. import Matrix4Node from '../inputs/Matrix4Node.js';
  4. import { NodeUpdateType } from '../core/constants.js';
  5. class ModelNode extends Node {
  6. static VIEW = 'view';
  7. constructor( scope = ModelNode.VIEW ) {
  8. super( 'mat4' );
  9. this.scope = scope;
  10. this.updateType = NodeUpdateType.Object;
  11. this.inputNode = null;
  12. }
  13. update( frame ) {
  14. const object = frame.object;
  15. const inputNode = this.inputNode;
  16. inputNode.value = object.modelViewMatrix;
  17. }
  18. generate( builder, output ) {
  19. const nodeData = builder.getDataFromNode( this );
  20. if ( this.initialized !== true ) {
  21. this.inputNode = new Matrix4Node( null );
  22. nodeData.initialized = true;
  23. }
  24. return this.inputNode.build( builder, output );
  25. }
  26. }
  27. export default ModelNode;