UNPKG

3.63 kBJavaScriptView Raw
1'use strict';
2
3var _tape = require('tape');
4
5var _tape2 = _interopRequireDefault(_tape);
6
7var _readPixel = require('../read-pixel');
8
9var _readPixel2 = _interopRequireDefault(_readPixel);
10
11var _mesh = require('../../lib/mesh');
12
13var _mesh2 = _interopRequireDefault(_mesh);
14
15var _perspective = require('../../lib/camera/perspective');
16
17var _perspective2 = _interopRequireDefault(_perspective);
18
19var _flat = require('../../lib/material/flat');
20
21var _flat2 = _interopRequireDefault(_flat);
22
23var _forward = require('../../lib/renderer/forward');
24
25var _forward2 = _interopRequireDefault(_forward);
26
27var _scene = require('../../lib/scene');
28
29var _scene2 = _interopRequireDefault(_scene);
30
31var _geometry = require('../../lib/geometry');
32
33var _geometry2 = _interopRequireDefault(_geometry);
34
35var _geo3dBox = require('geo-3d-box');
36
37var _geo3dBox2 = _interopRequireDefault(_geo3dBox);
38
39function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
41(0, _tape2.default)('Flat Material', function (t) {
42 var scene = (0, _scene2.default)({
43 autoStart: false,
44 renderer: (0, _forward2.default)({
45 autoResizeCanvas: false,
46 width: 100,
47 height: 100
48 })
49 });
50 var gl = scene.renderer.gl;
51 var camera = (0, _perspective2.default)();
52 var material = (0, _flat2.default)();
53 var geometry = (0, _geometry2.default)((0, _geo3dBox2.default)({ size: 5 }));
54 var mesh = (0, _mesh2.default)(geometry, material);
55
56 scene.add(camera);
57 scene.add(mesh);
58
59 material.shading.color = [1, 0, 0];
60 mesh.transform.position[2] = 0;
61 camera.position[2] = 20;
62
63 t.test('creates a scene with a red box', function (t) {
64 t.plan(5);
65
66 scene.render(camera);
67
68 t.deepLooseEqual((0, _readPixel2.default)(gl, 50, 50), [255, 0, 0], 'The center is red');
69 t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 35), [255, 0, 0], 'The top left is red');
70 t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 65), [255, 0, 0], 'The bottom right is red');
71 t.deepLooseEqual((0, _readPixel2.default)(gl, 30, 30), [255, 255, 255], 'The top left outside is white');
72 t.deepLooseEqual((0, _readPixel2.default)(gl, 70, 70), [255, 255, 255], 'The bottom right outside is white');
73 });
74
75 t.test("can change the box's color", function (t) {
76 t.plan(5);
77
78 material.shading.color = [0, 1, 1];
79 scene.render(camera);
80
81 t.deepLooseEqual((0, _readPixel2.default)(gl, 50, 50), [0, 255, 255], 'The center is cyan');
82 t.deepLooseEqual((0, _readPixel2.default)(gl, 35, 35), [0, 255, 255], 'The top left is cyan');
83 t.deepLooseEqual((0, _readPixel2.default)(gl, 65, 65), [0, 255, 255], 'The bottom right is cyan');
84 t.deepLooseEqual((0, _readPixel2.default)(gl, 30, 30), [255, 255, 255], 'The top left outside is white');
85 t.deepLooseEqual((0, _readPixel2.default)(gl, 70, 70), [255, 255, 255], 'The bottom right outside is white');
86 });
87
88 t.test('the box can scale', function (t) {
89 t.plan(5);
90
91 material.shading.color = [255, 0, 255];
92 mesh.transform.scale = [0.2, 0.2, 0.2];
93 scene.render(camera);
94
95 t.deepLooseEqual((0, _readPixel2.default)(gl, 50, 50), [255, 0, 255], 'The center is magenta');
96 t.deepLooseEqual((0, _readPixel2.default)(gl, 48, 48), [255, 0, 255], 'The top left is magenta');
97 t.deepLooseEqual((0, _readPixel2.default)(gl, 52, 52), [255, 0, 255], 'The bottom right is magenta');
98 t.deepLooseEqual((0, _readPixel2.default)(gl, 45, 45), [255, 255, 255], 'The top left outside is white');
99 t.deepLooseEqual((0, _readPixel2.default)(gl, 55, 55), [255, 255, 255], 'The bottom right outside is white');
100
101 scene.renderer.destroy();
102 });
103});
\No newline at end of file