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