@abi-software/scaffoldvuer 0.2.2-beta.2 → 0.2.3-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.eslintrc.js +12 -12
  2. package/CHANGELOG.md +316 -310
  3. package/LICENSE +201 -201
  4. package/README.md +164 -164
  5. package/babel.config.js +14 -14
  6. package/dist/scaffoldvuer-wc.common.js +183 -35
  7. package/dist/scaffoldvuer-wc.umd.js +183 -35
  8. package/dist/scaffoldvuer-wc.umd.min.js +183 -35
  9. package/dist/scaffoldvuer.common.js +1076 -717
  10. package/dist/scaffoldvuer.common.js.map +1 -1
  11. package/dist/scaffoldvuer.css +1 -1
  12. package/dist/scaffoldvuer.umd.js +1076 -717
  13. package/dist/scaffoldvuer.umd.js.map +1 -1
  14. package/dist/scaffoldvuer.umd.min.js +1 -1
  15. package/dist/scaffoldvuer.umd.min.js.map +1 -1
  16. package/package-lock.json +18119 -18121
  17. package/package.json +89 -89
  18. package/public/index.html +17 -17
  19. package/src/App.vue +669 -714
  20. package/src/ScaffoldVuer-wc.js +13 -13
  21. package/src/{components → app}/DropZone.vue +114 -114
  22. package/src/{components → app}/ModelsInformation.js +35 -35
  23. package/src/{components → app}/ModelsTable.vue +113 -113
  24. package/src/app/TextureDemos.js +114 -0
  25. package/src/assets/_variables.scss +43 -43
  26. package/src/assets/styles.scss +7 -7
  27. package/src/components/OpacityControls.vue +222 -222
  28. package/src/components/ScaffoldTooltip.vue +142 -141
  29. package/src/components/ScaffoldVuer.md +44 -44
  30. package/src/components/ScaffoldVuer.vue +1997 -1887
  31. package/src/components/TreeControls.vue +699 -691
  32. package/src/components/index.js +7 -7
  33. package/src/components/test.pdf +0 -0
  34. package/src/main.js +14 -14
  35. package/src/scripts/BaseModule.js +80 -80
  36. package/src/scripts/RendererModule.js +289 -289
  37. package/src/scripts/WebGL.js +94 -94
  38. package/src/scripts/annotation.js +5 -5
  39. package/src/scripts/eventNotifier.js +66 -66
  40. package/src/scripts/graphicsHighlight.js +134 -134
  41. package/src/scripts/organsRenderer.js +587 -606
  42. package/src/scripts/search.js +182 -153
  43. package/src/scripts/utilities.js +146 -43
  44. package/src/searchControls.vue +122 -0
  45. package/styleguide.config.js +22 -22
  46. package/vue.config.js +41 -41
  47. package/src/credential.json +0 -12
@@ -1,290 +1,290 @@
1
- const THREE = require('zincjs').THREE;
2
-
3
- /**
4
- * Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
5
- * @param {String} elementID - id of the target dom element.
6
- * @returns {Zinc.Renderer}
7
- */
8
- const createRenderer = function () {
9
- const WEBGL = require('./WebGL').WEBGL;
10
- const localContainer = document.createElement( 'div' );
11
- let localRenderer = undefined;;
12
- localContainer.style.height = "100%";
13
- const Zinc = require('zincjs');
14
- if (WEBGL.isWebGLAvailable()) {
15
- localRenderer = new Zinc.Renderer(localContainer, window);
16
- Zinc.defaultMaterialColor = 0xFFFF9C;
17
- localRenderer.initialiseVisualisation();
18
- localRenderer.playAnimation = false;
19
- } else {
20
- const warning = WEBGL.getWebGLErrorMessage();
21
- localContainer.appendChild(warning);
22
- }
23
- return {Zinc, "renderer":localRenderer, "container":localContainer};
24
- }
25
-
26
- const RendererModule = function() {
27
- (require('./BaseModule').BaseModule).call(this);
28
- this.scene = undefined;
29
- this.rendererContainer = undefined;
30
- this.displayArea = undefined;
31
- this.graphicsHighlight = new (require("./graphicsHighlight").GraphicsHighlight)();
32
- this.zincRenderer = null;
33
- this.selectedScreenCoordinates = new THREE.Vector3();
34
- this.selectedCenter = undefined;
35
- this.liveUpdatesObjects = undefined;
36
- }
37
-
38
- RendererModule.prototype = Object.create((require('./BaseModule').BaseModule).prototype);
39
-
40
- /**
41
- * This function will get the the first intersected object with name or
42
- * the first glyph object with name.
43
- */
44
- RendererModule.prototype.getIntersectedObject = function(intersects) {
45
- if (intersects) {
46
- for (let i = 0; i < intersects.length; i++) {
47
- if (intersects[i] !== undefined) {
48
- if (intersects[i].object &&
49
- intersects[i].object.userData &&
50
- intersects[i].object.userData.isZincObject &&
51
- ((intersects[i].object.name &&
52
- intersects[i].object.name !== "") ||
53
- intersects[i].object.userData.isMarker))
54
- return intersects[i];
55
- }
56
- }
57
- }
58
- return undefined;
59
- }
60
-
61
- RendererModule.prototype.getAnnotationsFromObjects = function(objects) {
62
- const annotations = [];
63
- for (var i = 0; i < objects.length; i++) {
64
- const zincObject = objects[i].userData;
65
- let annotation = undefined;
66
- if (zincObject) {
67
- if (zincObject.isGlyph || zincObject.isGlyphset) {
68
- const glyphset = zincObject;
69
- if (zincObject.isGlyph)
70
- glyphset = zincObject.getGlyphset();
71
- annotation = glyphset.userData ? glyphset.userData.annotation : undefined;
72
- if (annotation && annotation.data) {
73
- if (objects[i].name && objects[i].name != "")
74
- annotation.data.id = objects[i].name;
75
- else
76
- annotation.data.id = glyphset.groupName;
77
- }
78
- } else {
79
- annotation = zincObject.userData ? zincObject.userData.annotation : undefined;
80
- if (annotation && annotation.data){
81
- annotation.data.id = objects[i].name;
82
- }
83
- }
84
- }
85
- if (annotation)
86
- annotations.push(annotation);
87
- }
88
- return annotations;
89
- }
90
-
91
- RendererModule.prototype.setHighlightedByObjects = function(
92
- objects, coords, propagateChanges) {
93
- const changed = this.graphicsHighlight.setHighlighted(objects);
94
- const zincObjects = this.objectsToZincObjects(objects);
95
- if (propagateChanges) {
96
- eventType = require("./eventNotifier").EVENT_TYPE.MOVE;
97
- if (changed)
98
- eventType = require("./eventNotifier").EVENT_TYPE.HIGHLIGHTED;
99
- const annotations = this.getAnnotationsFromObjects(objects);
100
- if (annotations.length > 0)
101
- annotations[0].coords = coords;
102
- this.publishChanges(annotations, eventType, zincObjects);
103
- }
104
- return changed;
105
- }
106
-
107
-
108
- RendererModule.prototype.setHighlightedByZincObjects = function(
109
- zincObjects, coords, propagateChanges) {
110
- let morphs = [];
111
- if (zincObjects) {
112
- zincObjects.forEach(zincObject => {
113
- if (zincObject && zincObject.morph)
114
- morphs.push(zincObject.morph);
115
- });
116
- }
117
-
118
- return this.setHighlightedByObjects(morphs, coords,propagateChanges);
119
- }
120
-
121
- RendererModule.prototype.setupLiveCoordinates = function(zincObjects) {
122
- this.liveUpdatesObjects = zincObjects;
123
- if (zincObjects && (zincObjects.length > 0)) {
124
- const boundingBox = this.scene.getBoundingBoxOfZincObjects(zincObjects);
125
- let newSelectedCenter = new THREE.Vector3();
126
- boundingBox.getCenter(newSelectedCenter);
127
- if (this.selectedCenter == undefined)
128
- this.selectedCenter = newSelectedCenter;
129
- else {
130
- this.selectedCenter.x = newSelectedCenter.x;
131
- this.selectedCenter.y = newSelectedCenter.y;
132
- }
133
- } else {
134
- this.selectedCenter = undefined;
135
- }
136
- }
137
-
138
- RendererModule.prototype.objectsToZincObjects = function(objects) {
139
- const zincObjects = [];
140
- for (let i = 0; i < objects.length; i++) {
141
- let zincObject = objects[i].userData;
142
- if (zincObject) {
143
- if (zincObject.isGlyph || zincObject.isGlyphset) {
144
- let glyphset = zincObject;
145
- if (zincObject.isGlyph)
146
- glyphset = zincObject.getGlyphset();
147
- zincObjects. push(glyphset);
148
- } else {
149
- zincObjects. push(zincObject);
150
- }
151
- }
152
- }
153
- return zincObjects;
154
- }
155
-
156
-
157
- RendererModule.prototype.setSelectedByObjects = function(
158
- objects, coords, propagateChanges) {
159
- const changed = this.graphicsHighlight.setSelected(objects);
160
- if (changed) {
161
- const zincObjects = this.objectsToZincObjects(objects);
162
- this.setupLiveCoordinates(zincObjects);
163
- if (propagateChanges) {
164
- const eventType = require("./eventNotifier").EVENT_TYPE.SELECTED;
165
- const annotations = this.getAnnotationsFromObjects(objects);
166
- if (annotations.length > 0)
167
- annotations[0].coords = coords;
168
- this.publishChanges(annotations, eventType, zincObjects);
169
- }
170
- }
171
- return changed;
172
- }
173
-
174
- RendererModule.prototype.setSelectedByZincObjects = function(
175
- zincObjects, coords, propagateChanges) {
176
- let morphs = [];
177
- if (zincObjects) {
178
- zincObjects.forEach(zincObject => {
179
- if (zincObject && zincObject.morph)
180
- morphs.push(zincObject.morph);
181
- });
182
- }
183
-
184
- return this.setSelectedByObjects(morphs, coords, propagateChanges);
185
- }
186
-
187
- const addGlyphToArray = function(objects) {
188
- return function(glyph) {
189
- objects.push(glyph.getMesh());
190
- }
191
- }
192
-
193
- RendererModule.prototype.findObjectsByGroupName = function(groupName) {
194
- const geometries = this.scene.findGeometriesWithGroupName(groupName);
195
- const objects = [];
196
- for (let i = 0; i < geometries.length; i ++ ) {
197
- objects.push(geometries[i].morph);
198
- }
199
- const glyphsets = this.scene.findGlyphsetsWithGroupName(groupName);
200
- for (let i = 0; i < glyphsets.length; i ++ ) {
201
- glyphsets[i].forEachGlyph(addGlyphToArray(objects));
202
- }
203
-
204
- return objects;
205
- }
206
-
207
- RendererModule.prototype.setHighlightedByGroupName = function(groupName, propagateChanges) {
208
- const objects = this.findObjectsByGroupName(groupName);
209
- return this.setHighlightedByObjects(objects, undefined, propagateChanges);
210
- }
211
-
212
- RendererModule.prototype.setSelectedByGroupName = function(groupName, propagateChanges) {
213
- const objects = this.findObjectsByGroupName(groupName);
214
- return this.setSelectedByObjects(objects, undefined, propagateChanges);
215
- }
216
-
217
- RendererModule.prototype.changeBackgroundColour = function(backgroundColourString) {
218
- const colour = new THREE.Color(backgroundColourString);
219
- if (this.zincRenderer) {
220
- let internalRenderer = this.zincRenderer.getThreeJSRenderer();
221
- internalRenderer.setClearColor( colour, 1 );
222
- }
223
- }
224
-
225
- RendererModule.prototype.resetView = function() {
226
- if (this.zincRenderer)
227
- this.zincRenderer.resetView();
228
- }
229
-
230
- RendererModule.prototype.viewAll = function() {
231
- if (this.zincRenderer)
232
- this.zincRenderer.viewAll();
233
- }
234
-
235
- /**
236
- * Start the animation and let the renderer to processs with
237
- * time progression
238
- */
239
- RendererModule.prototype.playAnimation = function(flag) {
240
- if (this.zincRenderer)
241
- this.zincRenderer.playAnimation = flag;
242
- }
243
-
244
- /**
245
- * Set the speed of playback
246
- */
247
- RendererModule.prototype.setPlayRate = function(value) {
248
- if (this.zincRenderer)
249
- this.zincRenderer.setPlayRate(value);
250
- }
251
-
252
- /**
253
- * Get the speed of playback
254
- */
255
- RendererModule.prototype.getPlayRate = function(value) {
256
- if (this.zincRenderer)
257
- return this.zincRenderer.getPlayRate();
258
- else
259
- return 0.0;
260
- }
261
-
262
- /** Initialise everything in the renderer, including the 3D renderer,
263
- * and picker for the 3D renderer.
264
- *
265
- */
266
- RendererModule.prototype.initialiseRenderer = function(displayAreaIn) {
267
- if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
268
- let returnedValue = createRenderer();
269
- this.Zinc = returnedValue["Zinc"];
270
- this.zincRenderer = returnedValue["renderer"];
271
- this.rendererContainer = returnedValue["container"];
272
- }
273
- if (displayAreaIn) {
274
- this.displayArea = displayAreaIn;
275
- this.displayArea.appendChild( this.rendererContainer );
276
- if (this.zincRenderer)
277
- this.zincRenderer.animate();
278
- }
279
- }
280
-
281
- RendererModule.prototype.destroy = function() {
282
- if (this.zincRenderer) {
283
- this.zincRenderer.dispose();
284
- this.zincRenderer.getThreeJSRenderer().dispose();
285
- this.zincRenderer = undefined;
286
- }
287
- (require('./BaseModule').BaseModule).prototype.destroy.call( this );
288
- }
289
-
1
+ const THREE = require('zincjs').THREE;
2
+
3
+ /**
4
+ * Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
5
+ * @param {String} elementID - id of the target dom element.
6
+ * @returns {Zinc.Renderer}
7
+ */
8
+ const createRenderer = function () {
9
+ const WEBGL = require('./WebGL').WEBGL;
10
+ const localContainer = document.createElement( 'div' );
11
+ let localRenderer = undefined;;
12
+ localContainer.style.height = "100%";
13
+ const Zinc = require('zincjs');
14
+ if (WEBGL.isWebGLAvailable()) {
15
+ localRenderer = new Zinc.Renderer(localContainer, window);
16
+ Zinc.defaultMaterialColor = 0xFFFF9C;
17
+ localRenderer.initialiseVisualisation();
18
+ localRenderer.playAnimation = false;
19
+ } else {
20
+ const warning = WEBGL.getWebGLErrorMessage();
21
+ localContainer.appendChild(warning);
22
+ }
23
+ return {Zinc, "renderer":localRenderer, "container":localContainer};
24
+ }
25
+
26
+ const RendererModule = function() {
27
+ (require('./BaseModule').BaseModule).call(this);
28
+ this.scene = undefined;
29
+ this.rendererContainer = undefined;
30
+ this.displayArea = undefined;
31
+ this.graphicsHighlight = new (require("./graphicsHighlight").GraphicsHighlight)();
32
+ this.zincRenderer = null;
33
+ this.selectedScreenCoordinates = new THREE.Vector3();
34
+ this.selectedCenter = undefined;
35
+ this.liveUpdatesObjects = undefined;
36
+ }
37
+
38
+ RendererModule.prototype = Object.create((require('./BaseModule').BaseModule).prototype);
39
+
40
+ RendererModule.prototype.getIntersectedObject = function(intersects) {
41
+ if (intersects) {
42
+ const typeMap = intersects.map(intersect => {
43
+ if (intersect && intersect.object &&
44
+ intersect.object.userData) {
45
+ if (intersect.object.userData.isMarker) {
46
+ return 1;
47
+ } else if (intersect.object.name &&
48
+ intersect.object.userData.isZincObject) {
49
+ return 2;
50
+ }
51
+ }
52
+ return 0;
53
+ });
54
+ let i = typeMap.indexOf(1);
55
+ i = (i > -1) ? i : typeMap.indexOf(2);
56
+ return intersects[i];
57
+ }
58
+ return undefined;
59
+ }
60
+
61
+
62
+ RendererModule.prototype.getAnnotationsFromObjects = function(objects) {
63
+ const annotations = [];
64
+ for (var i = 0; i < objects.length; i++) {
65
+ const zincObject = objects[i].userData;
66
+ let annotation = undefined;
67
+ if (zincObject) {
68
+ if (zincObject.isGlyph || zincObject.isGlyphset) {
69
+ const glyphset = zincObject;
70
+ if (zincObject.isGlyph)
71
+ glyphset = zincObject.getGlyphset();
72
+ annotation = glyphset.userData ? glyphset.userData.annotation : undefined;
73
+ if (annotation && annotation.data) {
74
+ if (objects[i].name && objects[i].name != "")
75
+ annotation.data.id = objects[i].name;
76
+ else
77
+ annotation.data.id = glyphset.groupName;
78
+ }
79
+ } else {
80
+ annotation = zincObject.userData ? zincObject.userData.annotation : undefined;
81
+ if (annotation && annotation.data){
82
+ annotation.data.id = objects[i].name;
83
+ }
84
+ }
85
+ }
86
+ if (annotation)
87
+ annotations.push(annotation);
88
+ }
89
+ return annotations;
90
+ }
91
+
92
+ RendererModule.prototype.setHighlightedByObjects = function(
93
+ objects, coords, propagateChanges) {
94
+ const changed = this.graphicsHighlight.setHighlighted(objects);
95
+ const zincObjects = this.objectsToZincObjects(objects);
96
+ if (propagateChanges) {
97
+ eventType = require("./eventNotifier").EVENT_TYPE.MOVE;
98
+ if (changed)
99
+ eventType = require("./eventNotifier").EVENT_TYPE.HIGHLIGHTED;
100
+ const annotations = this.getAnnotationsFromObjects(objects);
101
+ if (annotations.length > 0)
102
+ annotations[0].coords = coords;
103
+ this.publishChanges(annotations, eventType, zincObjects);
104
+ }
105
+ return changed;
106
+ }
107
+
108
+
109
+ RendererModule.prototype.setHighlightedByZincObjects = function(
110
+ zincObjects, coords, propagateChanges) {
111
+ let morphs = [];
112
+ if (zincObjects) {
113
+ zincObjects.forEach(zincObject => {
114
+ if (zincObject && zincObject.morph)
115
+ morphs.push(zincObject.morph);
116
+ });
117
+ }
118
+
119
+ return this.setHighlightedByObjects(morphs, coords,propagateChanges);
120
+ }
121
+
122
+ RendererModule.prototype.setupLiveCoordinates = function(zincObjects) {
123
+ this.liveUpdatesObjects = zincObjects;
124
+ if (zincObjects && (zincObjects.length > 0)) {
125
+ const boundingBox = this.scene.getBoundingBoxOfZincObjects(zincObjects);
126
+ let newSelectedCenter = new THREE.Vector3();
127
+ boundingBox.getCenter(newSelectedCenter);
128
+ if (this.selectedCenter == undefined) {
129
+ this.selectedCenter = newSelectedCenter;
130
+ } else {
131
+ this.selectedCenter.copy(newSelectedCenter);
132
+ }
133
+ } else {
134
+ this.selectedCenter = undefined;
135
+ }
136
+ }
137
+
138
+ RendererModule.prototype.objectsToZincObjects = function(objects) {
139
+ const zincObjects = [];
140
+ for (let i = 0; i < objects.length; i++) {
141
+ let zincObject = objects[i].userData;
142
+ if (zincObject) {
143
+ if (zincObject.isGlyph || zincObject.isGlyphset) {
144
+ let glyphset = zincObject;
145
+ if (zincObject.isGlyph)
146
+ glyphset = zincObject.getGlyphset();
147
+ zincObjects. push(glyphset);
148
+ } else {
149
+ zincObjects. push(zincObject);
150
+ }
151
+ }
152
+ }
153
+ return zincObjects;
154
+ }
155
+
156
+
157
+ RendererModule.prototype.setSelectedByObjects = function(
158
+ objects, coords, propagateChanges) {
159
+ const changed = this.graphicsHighlight.setSelected(objects);
160
+ if (changed) {
161
+ const zincObjects = this.objectsToZincObjects(objects);
162
+ this.setupLiveCoordinates(zincObjects);
163
+ if (propagateChanges) {
164
+ const eventType = require("./eventNotifier").EVENT_TYPE.SELECTED;
165
+ const annotations = this.getAnnotationsFromObjects(objects);
166
+ if (annotations.length > 0)
167
+ annotations[0].coords = coords;
168
+ this.publishChanges(annotations, eventType, zincObjects);
169
+ }
170
+ }
171
+ return changed;
172
+ }
173
+
174
+ RendererModule.prototype.setSelectedByZincObjects = function(
175
+ zincObjects, coords, propagateChanges) {
176
+ let morphs = [];
177
+ if (zincObjects) {
178
+ zincObjects.forEach(zincObject => {
179
+ if (zincObject && zincObject.morph)
180
+ morphs.push(zincObject.morph);
181
+ });
182
+ }
183
+
184
+ return this.setSelectedByObjects(morphs, coords, propagateChanges);
185
+ }
186
+
187
+ const addGlyphToArray = function(objects) {
188
+ return function(glyph) {
189
+ objects.push(glyph.getMesh());
190
+ }
191
+ }
192
+
193
+ RendererModule.prototype.findObjectsByGroupName = function(groupName) {
194
+ const geometries = this.scene.findGeometriesWithGroupName(groupName);
195
+ const objects = [];
196
+ for (let i = 0; i < geometries.length; i ++ ) {
197
+ objects.push(geometries[i].morph);
198
+ }
199
+ const glyphsets = this.scene.findGlyphsetsWithGroupName(groupName);
200
+ for (let i = 0; i < glyphsets.length; i ++ ) {
201
+ glyphsets[i].forEachGlyph(addGlyphToArray(objects));
202
+ }
203
+
204
+ return objects;
205
+ }
206
+
207
+ RendererModule.prototype.setHighlightedByGroupName = function(groupName, propagateChanges) {
208
+ const objects = this.findObjectsByGroupName(groupName);
209
+ return this.setHighlightedByObjects(objects, undefined, propagateChanges);
210
+ }
211
+
212
+ RendererModule.prototype.setSelectedByGroupName = function(groupName, propagateChanges) {
213
+ const objects = this.findObjectsByGroupName(groupName);
214
+ return this.setSelectedByObjects(objects, undefined, propagateChanges);
215
+ }
216
+
217
+ RendererModule.prototype.changeBackgroundColour = function(backgroundColourString) {
218
+ const colour = new THREE.Color(backgroundColourString);
219
+ if (this.zincRenderer) {
220
+ let internalRenderer = this.zincRenderer.getThreeJSRenderer();
221
+ internalRenderer.setClearColor( colour, 1 );
222
+ }
223
+ }
224
+
225
+ RendererModule.prototype.resetView = function() {
226
+ if (this.zincRenderer)
227
+ this.zincRenderer.resetView();
228
+ }
229
+
230
+ RendererModule.prototype.viewAll = function() {
231
+ if (this.zincRenderer)
232
+ this.zincRenderer.viewAll();
233
+ }
234
+
235
+ /**
236
+ * Start the animation and let the renderer to processs with
237
+ * time progression
238
+ */
239
+ RendererModule.prototype.playAnimation = function(flag) {
240
+ if (this.zincRenderer)
241
+ this.zincRenderer.playAnimation = flag;
242
+ }
243
+
244
+ /**
245
+ * Set the speed of playback
246
+ */
247
+ RendererModule.prototype.setPlayRate = function(value) {
248
+ if (this.zincRenderer)
249
+ this.zincRenderer.setPlayRate(value);
250
+ }
251
+
252
+ /**
253
+ * Get the speed of playback
254
+ */
255
+ RendererModule.prototype.getPlayRate = function(value) {
256
+ if (this.zincRenderer)
257
+ return this.zincRenderer.getPlayRate();
258
+ else
259
+ return 0.0;
260
+ }
261
+
262
+ /** Initialise everything in the renderer, including the 3D renderer,
263
+ * and picker for the 3D renderer.
264
+ *
265
+ */
266
+ RendererModule.prototype.initialiseRenderer = function(displayAreaIn) {
267
+ if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
268
+ let returnedValue = createRenderer();
269
+ this.Zinc = returnedValue["Zinc"];
270
+ this.zincRenderer = returnedValue["renderer"];
271
+ this.rendererContainer = returnedValue["container"];
272
+ }
273
+ if (displayAreaIn) {
274
+ this.displayArea = displayAreaIn;
275
+ this.displayArea.appendChild( this.rendererContainer );
276
+ if (this.zincRenderer)
277
+ this.zincRenderer.animate();
278
+ }
279
+ }
280
+
281
+ RendererModule.prototype.destroy = function() {
282
+ if (this.zincRenderer) {
283
+ this.zincRenderer.dispose();
284
+ this.zincRenderer.getThreeJSRenderer().dispose();
285
+ this.zincRenderer = undefined;
286
+ }
287
+ (require('./BaseModule').BaseModule).prototype.destroy.call( this );
288
+ }
289
+
290
290
  exports.RendererModule = RendererModule;