ModelViewProjectionNode.js 729 B

123456789101112131415161718192021222324252627282930
  1. import { addNodeClass } from '../core/Node.js';
  2. import TempNode from '../core/TempNode.js';
  3. import { cameraProjectionMatrix } from './CameraNode.js';
  4. import { modelViewMatrix } from './ModelNode.js';
  5. import { positionLocal } from './PositionNode.js';
  6. import { nodeProxy } from '../shadernode/ShaderNode.js';
  7. class ModelViewProjectionNode extends TempNode {
  8. constructor( positionNode = positionLocal ) {
  9. super( 'vec4' );
  10. this.positionNode = positionNode;
  11. }
  12. construct() {
  13. return cameraProjectionMatrix.mul( modelViewMatrix ).mul( this.positionNode );
  14. }
  15. }
  16. export default ModelViewProjectionNode;
  17. export const modelViewProjection = nodeProxy( ModelViewProjectionNode );
  18. addNodeClass( ModelViewProjectionNode );