1 | 'use strict';
|
2 |
|
3 | import FluxViewport from '../src/FluxViewport.js';
|
4 | import viewportState from './viewportState.json';
|
5 |
|
6 |
|
7 | var domElement = document.createElement();
|
8 |
|
9 | export function focusViewport(t) {
|
10 | var sphere = {"origin":[0,0,0],"primitive":"sphere","radius":10};
|
11 | var viewport = new FluxViewport(domElement, {width:100,height:100});
|
12 | viewport.setGeometryEntity(sphere).then(function () {
|
13 | t.ok(viewport._renderer._model, 'Viewport should create a model');
|
14 | t.end();
|
15 | }, function (errors) {
|
16 | t.fail('Caught an error: '+ errors);
|
17 | t.end();
|
18 | });
|
19 | }
|
20 |
|
21 | export function replaceGeom(t) {
|
22 | var sphere = {"origin":[0,0,0],"primitive":"sphere","radius":10};
|
23 | var sphere2 = {"origin":[0,0,0],"primitive":"sphere","radius":2};
|
24 | var viewport = new FluxViewport(domElement, {width:100,height:100});
|
25 | viewport.setGeometryEntity(sphere).then(function () {
|
26 | t.ok(viewport._renderer._model, 'Viewport should create a model');
|
27 | viewport.setGeometryEntity(sphere2).then(function () {
|
28 | t.ok(viewport._renderer._model, 'Viewport should create a model');
|
29 | t.end();
|
30 | }, function (errors) {
|
31 | t.fail('Caught an error: '+ errors);
|
32 | t.end();
|
33 | });
|
34 | }, function (errors) {
|
35 | t.fail('Caught an error: '+ errors);
|
36 | t.end();
|
37 | });
|
38 | }
|
39 |
|
40 | export function viewportToJson(t) {
|
41 | var sphere = {"origin":[0,0,0],"primitive":"sphere","radius":10};
|
42 | var viewport = new FluxViewport(domElement, {width:100,height:100});
|
43 | viewport.setGeometryEntity(sphere).then(function () {
|
44 | var viewportString = JSON.stringify(viewport.toJSON());
|
45 | var keywords = ['entities', 'view', 'cameras'];
|
46 | for (var i=0;i<keywords.length;i++) {
|
47 | t.ok(viewportString.toLocaleLowerCase().indexOf(keywords[i])!==-1, 'JSON should contain '+keywords[i]);
|
48 | }
|
49 | t.end();
|
50 | }, function (errors) {
|
51 | t.fail('Caught an error: '+ errors);
|
52 | t.end();
|
53 | });
|
54 | }
|
55 |
|
56 | export function viewportFromJson(t) {
|
57 | var viewport = new FluxViewport(domElement, {width:100,height:100});
|
58 | viewport.fromJSON(viewportState).then( function() {
|
59 | t.equal(viewport._entities.primitive, 'sphere', 'Should get a sphere from JSON');
|
60 | t.end();
|
61 | }, function (errors) {
|
62 | t.fail('Caught an error: '+ errors);
|
63 | t.end();
|
64 | });
|
65 | }
|
66 |
|
67 | export function initControls(t) {
|
68 | var updated = false;
|
69 | var viewport = new FluxViewport(domElement);
|
70 | viewport.addEventListener(FluxViewport.getChangeEvent(), function() {
|
71 | updated = true;
|
72 | });
|
73 | var sphere = {"origin":[0,0,0],"primitive":"sphere","radius":10};
|
74 | viewport.setGeometryEntity(sphere).then(function () {
|
75 | viewport.focus();
|
76 | t.ok(updated, 'Update should fire.');
|
77 | t.end();
|
78 | }, function (errors) {
|
79 | t.fail('Caught an error: '+ errors);
|
80 | t.end();
|
81 | });
|
82 | }
|
83 |
|
84 | export function hideHelpers(t) {
|
85 | var viewport = new FluxViewport(domElement, {width:100,height:100});
|
86 | viewport.setHelpersVisible(false);
|
87 | t.equal(viewport._renderer._helpersScene.visible, false, "Should not be visible");
|
88 | t.end();
|
89 | }
|
90 |
|
91 | export function setAlpha(t) {
|
92 | var sphere = {"origin":[0,0,0],"primitive":"sphere","radius":10};
|
93 | var viewport = new FluxViewport(domElement, {width:100,height:100});
|
94 | viewport.setGeometryEntity(sphere).then(function () {
|
95 | t.ok(viewport._renderer._model, 'Viewport should create a model');
|
96 | viewport.setClearColor('white', 0.5);
|
97 | viewport.render();
|
98 | t.equal(viewport._renderer._context.renderer.getClearAlpha(), 0.5, "Alpha can be set");
|
99 | t.end();
|
100 | }, function (errors) {
|
101 | t.fail('Caught an error: '+ errors);
|
102 | t.end();
|
103 | });
|
104 | }
|
105 |
|
106 | export function viewportSelection(t) {
|
107 | var sphere = {"origin":[0,0,0],"primitive":"sphere","radius":10,"id":"mySphere"};
|
108 | var viewport = new FluxViewport(domElement, {width:100,height:100,
|
109 | selection: FluxViewport.getSelectionModes().HOVER});
|
110 | viewport.setGeometryEntity(sphere).then(function () {
|
111 | t.equal(viewport.getSelection().length,0,"Selection starts empty");
|
112 | viewport.setSelection(['mySphere']);
|
113 | t.deepEqual(viewport.getSelection(),['mySphere'],"Selection has id");
|
114 | t.end();
|
115 | }).catch(function (errors) {
|
116 | t.fail('Caught an error: '+ errors);
|
117 | t.end();
|
118 | });
|
119 | }
|