提交 6b7dc5df 编写于 作者: S SUNAG

renamed Shortcuts to addShortcuts and simplification

上级 0fe5f5e4
......@@ -11,10 +11,7 @@ THREE.NodeMaterial = function( vertex, fragment ) {
};
THREE.NodeMaterial.prototype = Object.create( THREE.ShaderMaterial.prototype );
THREE.NodeMaterial.prototype.constructor = THREE.NodeMaterial;
THREE.NodeMaterial.Type = {
THREE.NodeMaterial.types = {
t : 'sampler2D',
tc : 'samplerCube',
bv1 : 'bool',
......@@ -26,39 +23,46 @@ THREE.NodeMaterial.Type = {
v4 : 'vec4'
};
THREE.NodeMaterial.GetShortcuts = function( prop, name ) {
THREE.NodeMaterial.addShortcuts = function( proto, prop, list ) {
return {
get: function() {
function applyShortcut( prop, name ) {
return this[ prop ][ name ];
return {
get: function() {
},
set: function( val ) {
return this[ prop ][ name ];
this[ prop ][ name ] = val;
},
set: function( val ) {
this[ prop ][ name ] = val;
}
};
}
};
};
return (function() {
THREE.NodeMaterial.Shortcuts = function( proto, prop, list ) {
var shortcuts = {};
var shortcuts = {};
for ( var i = 0; i < list.length; ++ i ) {
for ( var i = 0; i < list.length; ++ i ) {
var name = list[ i ];
var name = list[ i ];
shortcuts[ name ] = applyShortcut( prop, name );
shortcuts[ name ] = this.GetShortcuts( prop, name );
}
}
Object.defineProperties( proto, shortcuts );
Object.defineProperties( proto, shortcuts );
})();
};
THREE.NodeMaterial.prototype = Object.create( THREE.ShaderMaterial.prototype );
THREE.NodeMaterial.prototype.constructor = THREE.NodeMaterial;
THREE.NodeMaterial.prototype.updateAnimation = function( delta ) {
for ( var i = 0; i < this.requestUpdate.length; ++ i ) {
......@@ -388,7 +392,7 @@ THREE.NodeMaterial.prototype.getCodePars = function( pars, prefix ) {
if ( parsType == 't' && parsValue instanceof THREE.CubeTexture ) parsType = 'tc';
var type = THREE.NodeMaterial.Type[ parsType ];
var type = THREE.NodeMaterial.types[ parsType ];
if ( type == undefined ) throw new Error( "Node pars " + parsType + " not found." );
......
......@@ -13,4 +13,4 @@ THREE.ColorNode = function( color ) {
THREE.ColorNode.prototype = Object.create( THREE.InputNode.prototype );
THREE.ColorNode.prototype.constructor = THREE.ColorNode;
THREE.NodeMaterial.Shortcuts( THREE.ColorNode.prototype, 'value', [ 'r', 'g', 'b' ] );
THREE.NodeMaterial.addShortcuts( THREE.ColorNode.prototype, 'value', [ 'r', 'g', 'b' ] );
......@@ -13,4 +13,4 @@ THREE.Vector2Node = function( x, y ) {
THREE.Vector2Node.prototype = Object.create( THREE.InputNode.prototype );
THREE.Vector2Node.prototype.constructor = THREE.Vector2Node;
THREE.NodeMaterial.Shortcuts( THREE.Vector2Node.prototype, 'value', [ 'x', 'y' ] );
THREE.NodeMaterial.addShortcuts( THREE.Vector2Node.prototype, 'value', [ 'x', 'y' ] );
......@@ -14,4 +14,4 @@ THREE.Vector3Node = function( x, y, z ) {
THREE.Vector3Node.prototype = Object.create( THREE.InputNode.prototype );
THREE.Vector3Node.prototype.constructor = THREE.Vector3Node;
THREE.NodeMaterial.Shortcuts( THREE.Vector3Node.prototype, 'value', [ 'x', 'y', 'z' ] );
THREE.NodeMaterial.addShortcuts( THREE.Vector3Node.prototype, 'value', [ 'x', 'y', 'z' ] );
......@@ -13,4 +13,4 @@ THREE.Vector4Node = function( x, y, z, w ) {
THREE.Vector4Node.prototype = Object.create( THREE.InputNode.prototype );
THREE.Vector4Node.prototype.constructor = THREE.Vector4Node;
THREE.NodeMaterial.Shortcuts( THREE.Vector4Node.prototype, 'value', [ 'x', 'y', 'z', 'w' ] );
THREE.NodeMaterial.addShortcuts( THREE.Vector4Node.prototype, 'value', [ 'x', 'y', 'z', 'w' ] );
......@@ -13,5 +13,5 @@ THREE.PhongNodeMaterial = function() {
THREE.PhongNodeMaterial.prototype = Object.create( THREE.NodeMaterial.prototype );
THREE.PhongNodeMaterial.prototype.constructor = THREE.PhongNodeMaterial;
THREE.NodeMaterial.Shortcuts( THREE.PhongNodeMaterial.prototype, 'node',
THREE.NodeMaterial.addShortcuts( THREE.PhongNodeMaterial.prototype, 'node',
[ 'color', 'alpha', 'specular', 'shininess', 'normal', 'normalScale', 'emissive', 'ambient', 'shadow', 'ao', 'environment', 'environmentIntensity', 'transform' ] );
......@@ -13,5 +13,5 @@ THREE.StandardNodeMaterial = function() {
THREE.StandardNodeMaterial.prototype = Object.create( THREE.NodeMaterial.prototype );
THREE.StandardNodeMaterial.prototype.constructor = THREE.StandardNodeMaterial;
THREE.NodeMaterial.Shortcuts( THREE.StandardNodeMaterial.prototype, 'node',
THREE.NodeMaterial.addShortcuts( THREE.StandardNodeMaterial.prototype, 'node',
[ 'color', 'alpha', 'roughness', 'metalness', 'normal', 'normalScale', 'emissive', 'ambient', 'shadow', 'ao', 'environment', 'environmentIntensity', 'transform' ] );
......@@ -20,6 +20,9 @@ THREE.NodePass = function() {
THREE.NodePass.prototype = Object.create( THREE.ShaderPass.prototype );
THREE.NodePass.prototype.constructor = THREE.NodePass;
THREE.NodeMaterial.addShortcuts( THREE.NodePass.prototype, 'fragment',
[ 'value' ] );
THREE.NodePass.prototype.build = function() {
this.node.build();
......@@ -28,6 +31,3 @@ THREE.NodePass.prototype.build = function() {
this.material = this.node;
};
THREE.NodeMaterial.Shortcuts( THREE.NodePass.prototype, 'fragment',
[ 'value' ] );
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册