-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathmaterials.js
More file actions
138 lines (115 loc) · 7 KB
/
materials.js
File metadata and controls
138 lines (115 loc) · 7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
module("Materials", {
});
test("Change material model of mesh", 7, function () {
stop();
var frameLoaded = Q.fcall(promiseIFrameLoaded, "scenes/materials.html");
var changeFunction = function(f) {
return function(scene) {
scene.ownerDocument.defaultView[f]();
return scene;
}
};
var checkInit = frameLoaded.then(function(doc) { return doc.querySelector("xml3d") }).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [0, 0, 255, 255], PIXEL_EPSILON, "Blue phong");
return s;
});
var checkURNChange = checkInit.then(changeFunction("setMatte")).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s), 256, 256);
QUnit.closeArray(pick, [0, 255, 0, 255], PIXEL_EPSILON, "Changed urn script to matte. Should be green now.");
return s;
});
var checkShadeInternal = checkURNChange.then(changeFunction("setShadeInternal")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [0, 255, 255, 255], PIXEL_EPSILON, "Changed script to internal shade.js material. Should be cyan now.");
return s;
});
var changeShadeInternal = checkShadeInternal.then(changeFunction("changeInternalShadeJS")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [255, 0, 255, 255], PIXEL_EPSILON, "Changed script content of internal shade.js material. Should be magenta now.");
return s;
});
var checkShadeExternal = changeShadeInternal.then(changeFunction("setShadeExternal")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [51, 51, 51, 255], PIXEL_EPSILON, "Changed script to external shade.js material in XML document. Should be grey now.");
return s;
});
var checkShadeExternalJS = checkShadeExternal.then(changeFunction("setShadeExternalJS")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [255, 255, 0, 255], PIXEL_EPSILON, "Changed script to external shade.js material in Javascript document. Should be yellow now.");
return s;
});
checkShadeExternalJS.fin(QUnit.start).done();
});
test("Change material model of asset", 7, function () {
stop();
var frameLoaded = Q.fcall(promiseIFrameLoaded, "scenes/asset-materials.html");
var changeFunction = function(f) {
return function(scene) {
scene.ownerDocument.defaultView[f]();
return scene;
}
};
var checkInit = frameLoaded.then(function(doc) { return doc.querySelector("xml3d") }).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [0, 0, 255, 255], PIXEL_EPSILON, "Blue phong");
return s;
});
var checkURNChange = checkInit.then(changeFunction("setMatte")).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s), 256, 256);
QUnit.closeArray(pick, [0, 255, 0, 255], PIXEL_EPSILON, "Changed urn script to matte. Should be green now.");
return s;
});
var checkShadeInternal = checkURNChange.then(changeFunction("setShadeInternal")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [0, 255, 255, 255], PIXEL_EPSILON, "Changed script to internal shade.js material. Should be cyan now.");
return s;
});
var changeShadeInternal = checkShadeInternal.then(changeFunction("changeInternalShadeJS")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [255, 0, 255, 255], PIXEL_EPSILON, "Changed script content of internal shade.js material. Should be magenta now.");
return s;
});
var checkShadeExternal = changeShadeInternal.then(changeFunction("setShadeExternal")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [51, 51, 51, 255], PIXEL_EPSILON, "Changed script to external shade.js material in XML document. Should be grey now.");
return s;
});
var checkShadeExternalJS = checkShadeExternal.then(changeFunction("setShadeExternalJS")).then(promiseSceneRendered).then(function(s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [255, 255, 0, 255], PIXEL_EPSILON, "Changed script to external shade.js material in Javascript document. Should be yellow now.");
return s;
});
checkShadeExternalJS.fin(QUnit.start).done();
});
test("Change transparency", 5, function () {
stop();
var frameLoaded = Q.fcall(promiseIFrameLoaded, "scenes/materials-transparency.html");
var changeFunction = function(f) {
return function(scene) {
scene.ownerDocument.defaultView[f]();
return scene;
}
};
var checkInit = frameLoaded.then(function(doc) { return doc.querySelector("xml3d") }).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s),256,256);
QUnit.closeArray(pick, [0, 0, 255, 255], PIXEL_EPSILON, "Initially Opaque");
return s;
});
var checkTransparentmaterialChange = checkInit.then(changeFunction("setSemiTransparent")).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s), 256, 256);
QUnit.closeArray(pick, [127.5, 127.5, 0, 255], PIXEL_EPSILON, "Changed to semi-transparent material. Should be half green, half red now.");
return s;
});
var checkOpaquematerialChange = checkTransparentmaterialChange.then(changeFunction("setOpaque")).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s), 256, 256);
QUnit.closeArray(pick, [0, 0, 255, 255], PIXEL_EPSILON, "Changed back to opaque. Should be blue now.");
return s;
});
var checkTransparencyChange = checkOpaquematerialChange.then(changeFunction("makeOpaqueTransparent")).then(promiseSceneRendered).then(function (s) {
var pick = XML3DUnit.getPixelValue(getContextForXml3DElement(s), 256, 256);
QUnit.closeArray(pick, [127.5, 0, 127.5, 255], PIXEL_EPSILON, "Make the opaque object transparent by changing its opacity value. Should be half blue, half red now.");
return s;
});
checkTransparencyChange.fin(QUnit.start).done();
});