34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
|
import Object3DNode from './Object3DNode.js';
|
||
|
import { addNodeClass } from '../core/Node.js';
|
||
|
import { nodeImmutable } from '../shadernode/ShaderNode.js';
|
||
|
|
||
|
class ModelNode extends Object3DNode {
|
||
|
|
||
|
constructor( scope = ModelNode.VIEW_MATRIX ) {
|
||
|
|
||
|
super( scope );
|
||
|
|
||
|
}
|
||
|
|
||
|
update( frame ) {
|
||
|
|
||
|
this.object3d = frame.object;
|
||
|
|
||
|
super.update( frame );
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
export default ModelNode;
|
||
|
|
||
|
export const modelDirection = nodeImmutable( ModelNode, ModelNode.DIRECTION );
|
||
|
export const modelViewMatrix = nodeImmutable( ModelNode, ModelNode.VIEW_MATRIX ).label( 'modelViewMatrix' ).temp( 'ModelViewMatrix' );
|
||
|
export const modelNormalMatrix = nodeImmutable( ModelNode, ModelNode.NORMAL_MATRIX );
|
||
|
export const modelWorldMatrix = nodeImmutable( ModelNode, ModelNode.WORLD_MATRIX );
|
||
|
export const modelPosition = nodeImmutable( ModelNode, ModelNode.POSITION );
|
||
|
export const modelScale = nodeImmutable( ModelNode, ModelNode.SCALE );
|
||
|
export const modelViewPosition = nodeImmutable( ModelNode, ModelNode.VIEW_POSITION );
|
||
|
|
||
|
addNodeClass( 'ModelNode', ModelNode );
|