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 _flat = require('../../lib/material/flat');
|
20 |
|
21 | var _flat2 = _interopRequireDefault(_flat);
|
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 _geo3dBox = require('geo-3d-box');
|
36 |
|
37 | var _geo3dBox2 = _interopRequireDefault(_geo3dBox);
|
38 |
|
39 | function _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 |