Material.js 1.4 KB
Newer Older
M
Mr.doob 已提交
1 2
/**
 * @author mr.doob / http://mrdoob.com/
3
 * @author alteredq / http://alteredqualia.com/
M
Mr.doob 已提交
4 5
 */

M
Mr.doob 已提交
6
THREE.Material = function () {
7

M
Mr.doob 已提交
8
	this.id = THREE.MaterialCount ++;
9

10 11
	this.name = '';

M
Mr.doob 已提交
12
	this.side = THREE.FrontSide;
13

M
Mr.doob 已提交
14 15
	this.opacity = 1;
	this.transparent = false;
16

M
Mr.doob 已提交
17
	this.blending = THREE.NormalBlending;
18

M
Mr.doob 已提交
19 20 21
	this.blendSrc = THREE.SrcAlphaFactor;
	this.blendDst = THREE.OneMinusSrcAlphaFactor;
	this.blendEquation = THREE.AddEquation;
22

M
Mr.doob 已提交
23 24
	this.depthTest = true;
	this.depthWrite = true;
M
Mr.doob 已提交
25

M
Mr.doob 已提交
26 27 28
	this.polygonOffset = false;
	this.polygonOffsetFactor = 0;
	this.polygonOffsetUnits = 0;
29

M
Mr.doob 已提交
30
	this.alphaTest = 0;
31

M
Mr.doob 已提交
32
	this.overdraw = false; // Boolean for fixing antialiasing gaps in CanvasRenderer
33

M
Mr.doob 已提交
34
	this.visible = true;
35

A
alteredq 已提交
36 37
	this.needsUpdate = true;

M
Mr.doob 已提交
38 39
};

M
Mr.doob 已提交
40
THREE.Material.prototype.setValues = function ( values ) {
M
Mr.doob 已提交
41

42
	if ( values === undefined ) return;
M
Mr.doob 已提交
43

M
Mr.doob 已提交
44
	for ( var key in values ) {
M
Mr.doob 已提交
45

46 47
		if ( key === 'id' || key === 'setValues' || key === 'clone' ) continue;

M
Mr.doob 已提交
48
		var value = values[ key ];
M
Mr.doob 已提交
49

50
		if ( this[ key ] !== undefined ) {
M
Mr.doob 已提交
51

52
			if ( this[ key ] instanceof THREE.Color ) {
G
gero3 已提交
53 54
				
				if ( value instanceof THREE.Color ) {
M
Mr.doob 已提交
55 56 57

					this[ key ].copy( value );

G
gero3 已提交
58
				} else {
M
Mr.doob 已提交
59

G
gero3 已提交
60
					this[ key ].setHex( value );
M
Mr.doob 已提交
61

G
gero3 已提交
62 63
				}
				
64 65
			} else if ( this[ key ] instanceof THREE.Vector3 ) {

G
gero3 已提交
66
				this[ key ].copy( value );
67

G
gero3 已提交
68
			} else {
69

G
gero3 已提交
70
				this[ key ] = value;
71

M
Mr.doob 已提交
72 73 74 75 76 77 78 79 80 81 82
			}

		}

	}

};

THREE.Material.prototype.clone = function () {

	return new THREE.Material( this );
83

L
libra guest 已提交
84 85
};

M
Mr.doob 已提交
86
THREE.MaterialCount = 0;