@kitware/vtk.js 23.4.0 → 24.0.0-beta.1

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 (152) hide show
  1. package/BREAKING_CHANGES.md +33 -0
  2. package/Common/Core/DataArray.js +4 -0
  3. package/Common/Core/Math/index.js +2 -2
  4. package/Common/Core/Math.js +1 -1
  5. package/Common/DataModel/BoundingBox.js +3 -8
  6. package/Common/DataModel/DataSetAttributes/FieldData.js +9 -5
  7. package/Common/DataModel/ITKHelper.js +2 -346
  8. package/Common/DataModel/ImageData.d.ts +23 -6
  9. package/Common/DataModel/ImageData.js +8 -1
  10. package/Common/DataModel/PolyData.d.ts +8 -1
  11. package/Common/DataModel/PolyData.js +5 -3
  12. package/Common/DataModel/Triangle.js +217 -2
  13. package/Common/Transform/LandmarkTransform.js +1 -1
  14. package/Filters/General/OBBTree/OBBNode.js +82 -0
  15. package/Filters/General/OBBTree/helper.js +92 -0
  16. package/Filters/General/OBBTree.js +1249 -0
  17. package/Filters/General/WindowedSincPolyDataFilter.js +1 -1
  18. package/Filters/General.js +2 -0
  19. package/Filters/Sources/CircleSource.js +1 -1
  20. package/Filters/Sources/PointSource.js +1 -1
  21. package/Filters/Texture/TextureMapToPlane.js +1 -1
  22. package/Interaction/Manipulators/KeyboardCameraManipulator.js +1 -1
  23. package/Interaction/Manipulators/MouseCameraTrackballRollManipulator.js +1 -1
  24. package/Interaction/Manipulators/MouseCameraTrackballRotateManipulator.js +1 -1
  25. package/Interaction/Manipulators/MouseCameraUnicamManipulator.js +1 -1
  26. package/Interaction/Manipulators/MouseCameraUnicamRotateManipulator.js +1 -1
  27. package/Interaction/Style/InteractorStyleImage.js +3 -3
  28. package/Interaction/Style/InteractorStyleMPRSlice.js +12 -6
  29. package/Interaction/Style/InteractorStyleManipulator.js +42 -28
  30. package/Interaction/Style/InteractorStyleRemoteMouse.js +32 -14
  31. package/Interaction/Style/InteractorStyleTrackballCamera.js +7 -7
  32. package/Interaction/Widgets/OrientationMarkerWidget.js +18 -13
  33. package/Interaction/Widgets/PiecewiseGaussianWidget.js +1 -1
  34. package/Interaction/Widgets.js +1 -35
  35. package/Proxy/Core/View2DProxy.js +1 -1
  36. package/Rendering/Core/ColorTransferFunction.js +1 -1
  37. package/Rendering/Core/Coordinate.js +1 -1
  38. package/Rendering/Core/CubeAxesActor.js +1 -1
  39. package/Rendering/Core/Glyph3DMapper.js +1 -1
  40. package/Rendering/Core/ImageMapper.js +1 -1
  41. package/Rendering/Core/InteractorObserver.js +11 -10
  42. package/Rendering/Core/InteractorStyle.js +9 -4
  43. package/Rendering/Core/Mapper.js +1 -1
  44. package/Rendering/Core/Prop.js +6 -4
  45. package/Rendering/Core/Prop3D.js +1 -1
  46. package/Rendering/Core/RenderWindowInteractor.js +24 -17
  47. package/Rendering/Core/Renderer.js +24 -19
  48. package/Rendering/Core/ScalarBarActor.js +1 -1
  49. package/Rendering/Core/Viewport.js +1 -1
  50. package/Rendering/Core/VolumeMapper.js +1 -1
  51. package/Rendering/OpenGL/Actor.js +2 -2
  52. package/Rendering/OpenGL/Actor2D.js +2 -2
  53. package/Rendering/OpenGL/BufferObject.js +6 -5
  54. package/Rendering/OpenGL/Camera.js +3 -3
  55. package/Rendering/OpenGL/CellArrayBufferObject.js +1 -1
  56. package/Rendering/OpenGL/Framebuffer.js +13 -12
  57. package/Rendering/OpenGL/Glyph3DMapper.js +10 -8
  58. package/Rendering/OpenGL/HardwareSelector.js +35 -25
  59. package/Rendering/OpenGL/ImageMapper.js +51 -45
  60. package/Rendering/OpenGL/ImageSlice.js +2 -2
  61. package/Rendering/OpenGL/PixelSpaceCallbackMapper.js +4 -2
  62. package/Rendering/OpenGL/PolyDataMapper.js +14 -11
  63. package/Rendering/OpenGL/PolyDataMapper2D.js +17 -16
  64. package/Rendering/OpenGL/Renderer.js +11 -7
  65. package/Rendering/OpenGL/ReplacementShaderMapper.js +1 -1
  66. package/Rendering/OpenGL/ScalarBarActor.js +2 -2
  67. package/Rendering/OpenGL/ShaderCache.js +7 -5
  68. package/Rendering/OpenGL/Skybox.js +11 -9
  69. package/Rendering/OpenGL/SphereMapper.js +2 -2
  70. package/Rendering/OpenGL/StickMapper.js +2 -2
  71. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D/pingpong.js +13 -12
  72. package/Rendering/OpenGL/SurfaceLIC/LineIntegralConvolution2D.js +11 -9
  73. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICInterface.js +19 -12
  74. package/Rendering/OpenGL/SurfaceLIC/SurfaceLICMapper.js +9 -6
  75. package/Rendering/OpenGL/Texture.js +44 -31
  76. package/Rendering/OpenGL/VertexArrayObject.js +7 -7
  77. package/Rendering/OpenGL/Volume.js +3 -2
  78. package/Rendering/OpenGL/VolumeMapper.js +30 -26
  79. package/Rendering/OpenGL/glsl/vtkVolumeFS.glsl.js +1 -1
  80. package/Rendering/SceneGraph/ViewNode.js +8 -7
  81. package/Rendering/WebGPU/Renderer.js +18 -10
  82. package/Widgets/Core/AbstractWidget.js +5 -4
  83. package/Widgets/Core/AbstractWidgetFactory.js +2 -1
  84. package/Widgets/Core/WidgetManager.js +66 -49
  85. package/Widgets/Manipulators/LineManipulator.js +1 -1
  86. package/Widgets/Representations/CircleContextRepresentation.js +1 -1
  87. package/Widgets/Representations/ImplicitPlaneRepresentation.js +5 -5
  88. package/Widgets/Representations/PolyLineRepresentation.js +1 -1
  89. package/Widgets/Representations/ResliceCursorContextRepresentation.js +7 -7
  90. package/Widgets/SVG/SVGLandmarkRepresentation/Constants.js +2 -2
  91. package/Widgets/SVG/SVGLandmarkRepresentation.js +21 -8
  92. package/Widgets/SVG/SVGRepresentation.js +1 -1
  93. package/Widgets/Widgets3D/AngleWidget/behavior.js +14 -6
  94. package/Widgets/Widgets3D/DistanceWidget/behavior.js +14 -6
  95. package/Widgets/Widgets3D/EllipseWidget.js +0 -1
  96. package/Widgets/Widgets3D/ImageCroppingWidget/behavior.js +6 -2
  97. package/Widgets/Widgets3D/ImplicitPlaneWidget.js +4 -2
  98. package/Widgets/Widgets3D/LabelWidget/behavior.js +138 -0
  99. package/Widgets/Widgets3D/LabelWidget/state.js +22 -0
  100. package/Widgets/Widgets3D/LabelWidget.js +79 -0
  101. package/Widgets/Widgets3D/LineWidget/behavior.js +18 -9
  102. package/Widgets/Widgets3D/LineWidget/helpers.js +1 -1
  103. package/Widgets/Widgets3D/LineWidget.js +0 -1
  104. package/Widgets/Widgets3D/PaintWidget/behavior.js +5 -3
  105. package/Widgets/Widgets3D/PolyLineWidget/behavior.js +18 -8
  106. package/Widgets/Widgets3D/RectangleWidget.js +0 -1
  107. package/Widgets/Widgets3D/ResliceCursorWidget/behavior.js +1 -1
  108. package/Widgets/Widgets3D/ResliceCursorWidget/helpers.js +1 -1
  109. package/Widgets/Widgets3D/ResliceCursorWidget.js +1 -1
  110. package/Widgets/Widgets3D/ShapeWidget/behavior.js +18 -11
  111. package/Widgets/Widgets3D/SplineWidget/behavior.js +33 -21
  112. package/index.d.ts +3 -4
  113. package/interfaces.d.ts +11 -0
  114. package/macros.d.ts +26 -1
  115. package/macros.js +51 -19
  116. package/package.json +1 -1
  117. package/types.d.ts +1 -0
  118. package/Interaction/Widgets/AbstractWidget.js +0 -104
  119. package/Interaction/Widgets/DistanceRepresentation.js +0 -116
  120. package/Interaction/Widgets/DistanceWidget.js +0 -77
  121. package/Interaction/Widgets/HandleRepresentation/Constants.js +0 -12
  122. package/Interaction/Widgets/HandleRepresentation.js +0 -100
  123. package/Interaction/Widgets/HandleWidget/Constants.js +0 -9
  124. package/Interaction/Widgets/HandleWidget.js +0 -194
  125. package/Interaction/Widgets/ImageCroppingRegionsRepresentation.js +0 -233
  126. package/Interaction/Widgets/ImageCroppingRegionsWidget/Constants.js +0 -16
  127. package/Interaction/Widgets/ImageCroppingRegionsWidget.js +0 -573
  128. package/Interaction/Widgets/LabelRepresentation/Constants.js +0 -17
  129. package/Interaction/Widgets/LabelRepresentation.js +0 -325
  130. package/Interaction/Widgets/LabelWidget.js +0 -65
  131. package/Interaction/Widgets/LineRepresentation/Constants.js +0 -21
  132. package/Interaction/Widgets/LineRepresentation.js +0 -498
  133. package/Interaction/Widgets/LineWidget/Constants.js +0 -11
  134. package/Interaction/Widgets/LineWidget.js +0 -296
  135. package/Interaction/Widgets/PointPlacer.js +0 -51
  136. package/Interaction/Widgets/ResliceCursor/ResliceCursor/Constants.js +0 -10
  137. package/Interaction/Widgets/ResliceCursor/ResliceCursor.js +0 -269
  138. package/Interaction/Widgets/ResliceCursor/ResliceCursorActor/Constants.js +0 -10
  139. package/Interaction/Widgets/ResliceCursor/ResliceCursorActor.js +0 -146
  140. package/Interaction/Widgets/ResliceCursor/ResliceCursorLineRepresentation.js +0 -332
  141. package/Interaction/Widgets/ResliceCursor/ResliceCursorPolyDataAlgorithm.js +0 -134
  142. package/Interaction/Widgets/ResliceCursor/ResliceCursorRepresentation/Constants.js +0 -16
  143. package/Interaction/Widgets/ResliceCursor/ResliceCursorRepresentation.js +0 -371
  144. package/Interaction/Widgets/ResliceCursor/ResliceCursorWidget/Constants.js +0 -10
  145. package/Interaction/Widgets/ResliceCursor/ResliceCursorWidget.js +0 -157
  146. package/Interaction/Widgets/SphereHandleRepresentation.js +0 -370
  147. package/Interaction/Widgets/WidgetRepresentation.js +0 -121
  148. package/Widgets/Representations/SphereContextRepresentation.js +0 -131
  149. package/Widgets/Widgets3D/SphereWidget/behavior.js +0 -177
  150. package/Widgets/Widgets3D/SphereWidget/state.js +0 -45
  151. package/Widgets/Widgets3D/SphereWidget.d.ts +0 -50
  152. package/Widgets/Widgets3D/SphereWidget.js +0 -62
@@ -15,9 +15,9 @@ function vtkOpenGLActor2D(publicAPI, model) {
15
15
  return;
16
16
  }
17
17
 
18
- model.openGLRenderWindow = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderWindow');
18
+ model._openGLRenderWindow = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderWindow');
19
19
  model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');
20
- model.context = model.openGLRenderWindow.getContext();
20
+ model.context = model._openGLRenderWindow.getContext();
21
21
  publicAPI.prepareNodes();
22
22
  publicAPI.addMissingNodes(model.renderable.getTextures());
23
23
  publicAPI.addMissingNode(model.renderable.getMapper());
@@ -115,16 +115,16 @@ function vtkOpenGLBufferObject(publicAPI, model) {
115
115
  };
116
116
 
117
117
  publicAPI.setOpenGLRenderWindow = function (rw) {
118
- if (model.openGLRenderWindow === rw) {
118
+ if (model._openGLRenderWindow === rw) {
119
119
  return;
120
120
  }
121
121
 
122
122
  publicAPI.releaseGraphicsResources();
123
- model.openGLRenderWindow = rw;
123
+ model._openGLRenderWindow = rw;
124
124
  model.context = null;
125
125
 
126
126
  if (rw) {
127
- model.context = model.openGLRenderWindow.getContext();
127
+ model.context = model._openGLRenderWindow.getContext();
128
128
  }
129
129
  };
130
130
 
@@ -138,7 +138,7 @@ function vtkOpenGLBufferObject(publicAPI, model) {
138
138
 
139
139
  var DEFAULT_VALUES = {
140
140
  objectType: ObjectType.ARRAY_BUFFER,
141
- openGLRenderWindow: null,
141
+ // _openGLRenderWindow: null,
142
142
  context: null
143
143
  }; // ----------------------------------------------------------------------------
144
144
 
@@ -147,7 +147,8 @@ function extend(publicAPI, model) {
147
147
  Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods
148
148
 
149
149
  macro.obj(publicAPI, model);
150
- macro.get(publicAPI, model, ['openGLRenderWindow']);
150
+ macro.get(publicAPI, model, ['_openGLRenderWindow']);
151
+ macro.moveToProtected(publicAPI, model, ['openGLRenderWindow']);
151
152
  vtkOpenGLBufferObject(publicAPI, model);
152
153
  } // ----------------------------------------------------------------------------
153
154
 
@@ -13,8 +13,8 @@ function vtkOpenGLCamera(publicAPI, model) {
13
13
  publicAPI.buildPass = function (prepass) {
14
14
  if (prepass) {
15
15
  model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');
16
- model.openGLRenderWindow = model.openGLRenderer.getParent();
17
- model.context = model.openGLRenderWindow.getContext();
16
+ model._openGLRenderWindow = model.openGLRenderer.getParent();
17
+ model.context = model._openGLRenderWindow.getContext();
18
18
  }
19
19
  }; // Renders myself
20
20
 
@@ -33,7 +33,7 @@ function vtkOpenGLCamera(publicAPI, model) {
33
33
 
34
34
  publicAPI.getKeyMatrices = function (ren) {
35
35
  // has the camera changed?
36
- if (ren !== model.lastRenderer || model.openGLRenderWindow.getMTime() > model.keyMatrixTime.getMTime() || publicAPI.getMTime() > model.keyMatrixTime.getMTime() || ren.getMTime() > model.keyMatrixTime.getMTime() || model.renderable.getMTime() > model.keyMatrixTime.getMTime()) {
36
+ if (ren !== model.lastRenderer || model._openGLRenderWindow.getMTime() > model.keyMatrixTime.getMTime() || publicAPI.getMTime() > model.keyMatrixTime.getMTime() || ren.getMTime() > model.keyMatrixTime.getMTime() || model.renderable.getMTime() > model.keyMatrixTime.getMTime()) {
37
37
  mat4.copy(model.keyMatrices.wcvc, model.renderable.getViewMatrix());
38
38
  mat3.fromMat4(model.keyMatrices.normalMatrix, model.keyMatrices.wcvc);
39
39
  mat3.invert(model.keyMatrices.normalMatrix, model.keyMatrices.normalMatrix);
@@ -90,7 +90,7 @@ function vtkOpenGLCellArrayBufferObject(publicAPI, model) {
90
90
  model.colorBO = vtkBufferObject.newInstance();
91
91
  }
92
92
 
93
- model.colorBO.setOpenGLRenderWindow(model.openGLRenderWindow);
93
+ model.colorBO.setOpenGLRenderWindow(model._openGLRenderWindow);
94
94
  } else {
95
95
  model.colorBO = null;
96
96
  }
@@ -30,7 +30,7 @@ function vtkFramebuffer(publicAPI, model) {
30
30
 
31
31
  var gl = model.context;
32
32
  model.previousDrawBinding = gl.getParameter(model.context.FRAMEBUFFER_BINDING);
33
- model.previousActiveFramebuffer = model.openGLRenderWindow.getActiveFramebuffer();
33
+ model.previousActiveFramebuffer = model._openGLRenderWindow.getActiveFramebuffer();
34
34
  };
35
35
 
36
36
  publicAPI.saveCurrentBuffers = function (modeIn) {// noop on webgl 1
@@ -50,7 +50,8 @@ function vtkFramebuffer(publicAPI, model) {
50
50
 
51
51
  var gl = model.context;
52
52
  gl.bindFramebuffer(gl.FRAMEBUFFER, model.previousDrawBinding);
53
- model.openGLRenderWindow.setActiveFramebuffer(model.previousActiveFramebuffer);
53
+
54
+ model._openGLRenderWindow.setActiveFramebuffer(model.previousActiveFramebuffer);
54
55
  };
55
56
 
56
57
  publicAPI.restorePreviousBuffers = function (modeIn) {// currently a noop on webgl1
@@ -70,7 +71,7 @@ function vtkFramebuffer(publicAPI, model) {
70
71
  model.colorBuffers[i].bind();
71
72
  }
72
73
 
73
- model.openGLRenderWindow.setActiveFramebuffer(publicAPI);
74
+ model._openGLRenderWindow.setActiveFramebuffer(publicAPI);
74
75
  };
75
76
 
76
77
  publicAPI.create = function (width, height) {
@@ -96,7 +97,7 @@ function vtkFramebuffer(publicAPI, model) {
96
97
  var glAttachment = gl.COLOR_ATTACHMENT0;
97
98
 
98
99
  if (attachment > 0) {
99
- if (model.openGLRenderWindow.getWebgl2()) {
100
+ if (model._openGLRenderWindow.getWebgl2()) {
100
101
  glAttachment += attachment;
101
102
  } else {
102
103
  vtkErrorMacro('Using multiple framebuffer attachments requires WebGL 2');
@@ -120,7 +121,7 @@ function vtkFramebuffer(publicAPI, model) {
120
121
  var glAttachment = gl.COLOR_ATTACHMENT0;
121
122
 
122
123
  if (attachment > 0) {
123
- if (model.openGLRenderWindow.getWebgl2()) {
124
+ if (model._openGLRenderWindow.getWebgl2()) {
124
125
  glAttachment += attachment;
125
126
  } else {
126
127
  vtkErrorMacro('Using multiple framebuffer attachments requires WebGL 2');
@@ -138,7 +139,7 @@ function vtkFramebuffer(publicAPI, model) {
138
139
  return;
139
140
  }
140
141
 
141
- if (model.openGLRenderWindow.getWebgl2()) {
142
+ if (model._openGLRenderWindow.getWebgl2()) {
142
143
  var gl = model.context;
143
144
  gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, texture.getHandle(), 0);
144
145
  } else {
@@ -152,7 +153,7 @@ function vtkFramebuffer(publicAPI, model) {
152
153
  return;
153
154
  }
154
155
 
155
- if (model.openGLRenderWindow.getWebgl2()) {
156
+ if (model._openGLRenderWindow.getWebgl2()) {
156
157
  var gl = model.context;
157
158
  gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, null, 0);
158
159
  } else {
@@ -165,16 +166,16 @@ function vtkFramebuffer(publicAPI, model) {
165
166
  };
166
167
 
167
168
  publicAPI.setOpenGLRenderWindow = function (rw) {
168
- if (model.openGLRenderWindow === rw) {
169
+ if (model._openGLRenderWindow === rw) {
169
170
  return;
170
171
  }
171
172
 
172
173
  publicAPI.releaseGraphicsResources();
173
- model.openGLRenderWindow = rw;
174
+ model._openGLRenderWindow = rw;
174
175
  model.context = null;
175
176
 
176
177
  if (rw) {
177
- model.context = model.openGLRenderWindow.getContext();
178
+ model.context = model._openGLRenderWindow.getContext();
178
179
  }
179
180
  };
180
181
 
@@ -204,7 +205,7 @@ function vtkFramebuffer(publicAPI, model) {
204
205
  publicAPI.bind();
205
206
  var gl = model.context;
206
207
  var texture = vtkOpenGLTexture.newInstance();
207
- texture.setOpenGLRenderWindow(model.openGLRenderWindow);
208
+ texture.setOpenGLRenderWindow(model._openGLRenderWindow);
208
209
  texture.setMinificationFilter(Filter.LINEAR);
209
210
  texture.setMagnificationFilter(Filter.LINEAR);
210
211
  texture.create2DFromRaw(model.glFramebuffer.width, model.glFramebuffer.height, 4, VtkDataTypes.UNSIGNED_CHAR, null);
@@ -227,7 +228,7 @@ function vtkFramebuffer(publicAPI, model) {
227
228
 
228
229
 
229
230
  var DEFAULT_VALUES = {
230
- openGLRenderWindow: null,
231
+ // _openGLRenderWindow: null,
231
232
  glFramebuffer: null,
232
233
  colorBuffers: null,
233
234
  depthTexture: null,
@@ -53,7 +53,7 @@ function vtkOpenGLGlyph3DMapper(publicAPI, model) {
53
53
 
54
54
  var gl = model.context;
55
55
 
56
- if (model.openGLRenderWindow.getWebgl2()) {
56
+ if (model._openGLRenderWindow.getWebgl2()) {
57
57
  model.hardwareSupport = true;
58
58
  model.extension = null;
59
59
  } else if (!model.extension) {
@@ -68,12 +68,14 @@ function vtkOpenGLGlyph3DMapper(publicAPI, model) {
68
68
  var frontfaceCulling = actor.getProperty().getFrontfaceCulling();
69
69
 
70
70
  if (!backfaceCulling && !frontfaceCulling) {
71
- model.openGLRenderWindow.disableCullFace();
71
+ model._openGLRenderWindow.disableCullFace();
72
72
  } else if (frontfaceCulling) {
73
- model.openGLRenderWindow.enableCullFace();
73
+ model._openGLRenderWindow.enableCullFace();
74
+
74
75
  gl.cullFace(gl.FRONT);
75
76
  } else {
76
- model.openGLRenderWindow.enableCullFace();
77
+ model._openGLRenderWindow.enableCullFace();
78
+
77
79
  gl.cullFace(gl.BACK);
78
80
  }
79
81
 
@@ -420,13 +422,13 @@ function vtkOpenGLGlyph3DMapper(publicAPI, model) {
420
422
 
421
423
  if (!model.matrixBuffer) {
422
424
  model.matrixBuffer = vtkBufferObject.newInstance();
423
- model.matrixBuffer.setOpenGLRenderWindow(model.openGLRenderWindow);
425
+ model.matrixBuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
424
426
  model.normalBuffer = vtkBufferObject.newInstance();
425
- model.normalBuffer.setOpenGLRenderWindow(model.openGLRenderWindow);
427
+ model.normalBuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
426
428
  model.colorBuffer = vtkBufferObject.newInstance();
427
- model.colorBuffer.setOpenGLRenderWindow(model.openGLRenderWindow);
429
+ model.colorBuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
428
430
  model.pickBuffer = vtkBufferObject.newInstance();
429
- model.pickBuffer.setOpenGLRenderWindow(model.openGLRenderWindow);
431
+ model.pickBuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
430
432
  }
431
433
 
432
434
  if (model.renderable.getBuildTime().getMTime() > model.glyphBOBuildTime.getMTime()) {
@@ -239,19 +239,20 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
239
239
 
240
240
 
241
241
  publicAPI.beginSelection = function () {
242
- model.openGLRenderer = model.openGLRenderWindow.getViewNodeFor(model.renderer);
242
+ model._openGLRenderer = model._openGLRenderWindow.getViewNodeFor(model.renderer);
243
243
  model.maxAttributeId = 0;
244
- var size = model.openGLRenderWindow.getSize();
244
+
245
+ var size = model._openGLRenderWindow.getSize();
245
246
 
246
247
  if (!model.framebuffer) {
247
248
  model.framebuffer = vtkOpenGLFramebuffer.newInstance();
248
- model.framebuffer.setOpenGLRenderWindow(model.openGLRenderWindow);
249
+ model.framebuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
249
250
  model.framebuffer.saveCurrentBindingsAndBuffers();
250
251
  model.framebuffer.create(size[0], size[1]); // this calls model.framebuffer.bind()
251
252
 
252
253
  model.framebuffer.populateFramebuffer();
253
254
  } else {
254
- model.framebuffer.setOpenGLRenderWindow(model.openGLRenderWindow);
255
+ model.framebuffer.setOpenGLRenderWindow(model._openGLRenderWindow);
255
256
  model.framebuffer.saveCurrentBindingsAndBuffers();
256
257
  var fbSize = model.framebuffer.getSize();
257
258
 
@@ -264,8 +265,10 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
264
265
  }
265
266
  }
266
267
 
267
- model.openGLRenderer.clear();
268
- model.openGLRenderer.setSelector(publicAPI);
268
+ model._openGLRenderer.clear();
269
+
270
+ model._openGLRenderer.setSelector(publicAPI);
271
+
269
272
  model.hitProps = {};
270
273
  model.props = [];
271
274
  publicAPI.releasePixBuffers();
@@ -274,7 +277,9 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
274
277
 
275
278
  publicAPI.endSelection = function () {
276
279
  model.hitProps = {};
277
- model.openGLRenderer.setSelector(null);
280
+
281
+ model._openGLRenderer.setSelector(null);
282
+
278
283
  model.framebuffer.restorePreviousBindingsAndBuffers();
279
284
  };
280
285
 
@@ -305,7 +310,7 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
305
310
  model.renderer = renderer; // set area to all if no arguments provided
306
311
 
307
312
  if (fx1 === undefined) {
308
- size = model.openGLRenderWindow.getSize();
313
+ size = model._openGLRenderWindow.getSize();
309
314
  publicAPI.setArea(0, 0, size[0] - 1, size[1] - 1);
310
315
  } else {
311
316
  publicAPI.setArea(fx1, fy1, fx2, fy2);
@@ -328,7 +333,7 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
328
333
  props: _toConsumableArray(model.props),
329
334
  fieldAssociation: model.fieldAssociation,
330
335
  renderer: renderer,
331
- openGLRenderWindow: model.openGLRenderWindow
336
+ openGLRenderWindow: model._openGLRenderWindow
332
337
  };
333
338
 
334
339
  result.generateSelection = function () {
@@ -356,15 +361,15 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
356
361
 
357
362
 
358
363
  publicAPI.captureBuffers = function () {
359
- if (!model.renderer || !model.openGLRenderWindow) {
364
+ if (!model.renderer || !model._openGLRenderWindow) {
360
365
  vtkErrorMacro('Renderer and view must be set before calling Select.');
361
366
  return false;
362
367
  }
363
368
 
364
- model.openGLRenderer = model.openGLRenderWindow.getViewNodeFor(model.renderer); // todo revisit making selection part of core
369
+ model._openGLRenderer = model._openGLRenderWindow.getViewNodeFor(model.renderer); // todo revisit making selection part of core
365
370
  // then we can do this in core
366
371
 
367
- model.openGLRenderWindow.getRenderable().preRender(); // int rgba[4];
372
+ model._openGLRenderWindow.getRenderable().preRender(); // int rgba[4];
368
373
  // rwin.getColorBufferSizes(rgba);
369
374
  // if (rgba[0] < 8 || rgba[1] < 8 || rgba[2] < 8) {
370
375
  // vtkErrorMacro("Color buffer depth must be at least 8 bit. "
@@ -372,6 +377,7 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
372
377
  // return false;
373
378
  // }
374
379
 
380
+
375
381
  publicAPI.invokeEvent({
376
382
  type: 'StartEvent'
377
383
  }); // Initialize renderer for selection.
@@ -379,7 +385,9 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
379
385
 
380
386
  model.originalBackground = model.renderer.getBackgroundByReference();
381
387
  model.renderer.setBackground(0.0, 0.0, 0.0);
382
- var rpasses = model.openGLRenderWindow.getRenderPasses();
388
+
389
+ var rpasses = model._openGLRenderWindow.getRenderPasses();
390
+
383
391
  publicAPI.beginSelection();
384
392
 
385
393
  for (model.currentPass = PassTypes.MIN_KNOWN_PASS; model.currentPass <= PassTypes.COMPOSITE_INDEX_PASS; model.currentPass++) {
@@ -388,9 +396,10 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
388
396
 
389
397
  if (model.captureZValues && model.currentPass === PassTypes.ACTOR_PASS && typeof rpasses[0].requestDepth === 'function' && typeof rpasses[0].getFramebuffer === 'function') {
390
398
  rpasses[0].requestDepth();
391
- model.openGLRenderWindow.traverseAllPasses();
399
+
400
+ model._openGLRenderWindow.traverseAllPasses();
392
401
  } else {
393
- model.openGLRenderWindow.traverseAllPasses();
402
+ model._openGLRenderWindow.traverseAllPasses();
394
403
  }
395
404
 
396
405
  publicAPI.postCapturePass(model.currentPass);
@@ -404,7 +413,7 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
404
413
  publicAPI.invokeEvent({
405
414
  type: 'EndEvent'
406
415
  }); // restore image, not needed?
407
- // model.openGLRenderWindow.traverseAllPasses();
416
+ // model._openGLRenderWindow.traverseAllPasses();
408
417
 
409
418
  return true;
410
419
  }; //----------------------------------------------------------------------------
@@ -416,17 +425,17 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
416
425
 
417
426
 
418
427
  publicAPI.savePixelBuffer = function (passNo) {
419
- model.pixBuffer[passNo] = model.openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);
428
+ model.pixBuffer[passNo] = model._openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);
420
429
 
421
430
  if (passNo === PassTypes.ACTOR_PASS) {
422
431
  if (model.captureZValues) {
423
- var rpasses = model.openGLRenderWindow.getRenderPasses();
432
+ var rpasses = model._openGLRenderWindow.getRenderPasses();
424
433
 
425
434
  if (typeof rpasses[0].requestDepth === 'function' && typeof rpasses[0].getFramebuffer === 'function') {
426
435
  var fb = rpasses[0].getFramebuffer();
427
436
  fb.saveCurrentBindingsAndBuffers();
428
437
  fb.bind();
429
- model.zBuffer = model.openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);
438
+ model.zBuffer = model._openGLRenderWindow.getPixelData(model.area[0], model.area[1], model.area[2], model.area[3]);
430
439
  fb.restorePreviousBindingsAndBuffers();
431
440
  }
432
441
  }
@@ -647,12 +656,12 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
647
656
  }
648
657
  }
649
658
 
650
- return convertSelection(model.fieldAssociation, dataMap, model.captureZValues, model.renderer, model.openGLRenderWindow);
659
+ return convertSelection(model.fieldAssociation, dataMap, model.captureZValues, model.renderer, model._openGLRenderWindow);
651
660
  }; //----------------------------------------------------------------------------
652
661
 
653
662
 
654
663
  publicAPI.attach = function (w, r) {
655
- model.openGLRenderWindow = w;
664
+ model._openGLRenderWindow = w;
656
665
  model.renderer = r;
657
666
  }; // override
658
667
 
@@ -677,9 +686,9 @@ function vtkOpenGLHardwareSelector(publicAPI, model) {
677
686
 
678
687
  var DEFAULT_VALUES = {
679
688
  area: undefined,
680
- renderer: null,
681
- openGLRenderWindow: null,
682
- openGLRenderer: null,
689
+ // _renderer: null,
690
+ // _openGLRenderWindow: null,
691
+ // _openGLRenderer: null,
683
692
  currentPass: -1,
684
693
  propColorValue: null,
685
694
  props: null,
@@ -699,8 +708,9 @@ function extend(publicAPI, model) {
699
708
  }
700
709
 
701
710
  macro.setGetArray(publicAPI, model, ['area'], 4);
702
- macro.setGet(publicAPI, model, ['renderer', 'currentPass', 'openGLRenderWindow']);
711
+ macro.setGet(publicAPI, model, ['_renderer', 'currentPass', '_openGLRenderWindow']);
703
712
  macro.setGetArray(publicAPI, model, ['propColorValue'], 3);
713
+ macro.moveToProtected(publicAPI, model, ['renderer', 'openGLRenderWindow']);
704
714
  macro.event(publicAPI, model, 'event'); // Object methods
705
715
 
706
716
  vtkOpenGLHardwareSelector(publicAPI, model);
@@ -44,12 +44,12 @@ function vtkOpenGLImageMapper(publicAPI, model) {
44
44
  model.currentRenderPass = null;
45
45
  model.openGLImageSlice = publicAPI.getFirstAncestorOfType('vtkOpenGLImageSlice');
46
46
  model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');
47
- model.openGLRenderWindow = model.openGLRenderer.getParent();
48
- model.context = model.openGLRenderWindow.getContext();
49
- model.tris.setOpenGLRenderWindow(model.openGLRenderWindow);
50
- model.openGLTexture.setOpenGLRenderWindow(model.openGLRenderWindow);
51
- model.colorTexture.setOpenGLRenderWindow(model.openGLRenderWindow);
52
- model.pwfTexture.setOpenGLRenderWindow(model.openGLRenderWindow);
47
+ model._openGLRenderWindow = model.openGLRenderer.getParent();
48
+ model.context = model._openGLRenderWindow.getContext();
49
+ model.tris.setOpenGLRenderWindow(model._openGLRenderWindow);
50
+ model.openGLTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
51
+ model.colorTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
52
+ model.pwfTexture.setOpenGLRenderWindow(model._openGLRenderWindow);
53
53
  var ren = model.openGLRenderer.getRenderable();
54
54
  model.openGLCamera = model.openGLRenderer.getViewNodeFor(ren.getActiveCamera()); // is slice set by the camera
55
55
 
@@ -282,7 +282,8 @@ function vtkOpenGLImageMapper(publicAPI, model) {
282
282
  };
283
283
  publicAPI.buildShaders(shaders, ren, actor); // compile and bind the program if needed
284
284
 
285
- var newShader = model.openGLRenderWindow.getShaderCache().readyShaderProgramArray(shaders.Vertex, shaders.Fragment, shaders.Geometry); // if the shader changed reinitialize the VAO
285
+ var newShader = model._openGLRenderWindow.getShaderCache().readyShaderProgramArray(shaders.Vertex, shaders.Fragment, shaders.Geometry); // if the shader changed reinitialize the VAO
286
+
286
287
 
287
288
  if (newShader !== cellBO.getProgram()) {
288
289
  cellBO.setProgram(newShader); // reset the VAO as the shader has changed
@@ -292,7 +293,7 @@ function vtkOpenGLImageMapper(publicAPI, model) {
292
293
 
293
294
  cellBO.getShaderSourceTime().modified();
294
295
  } else {
295
- model.openGLRenderWindow.getShaderCache().readyShaderProgram(cellBO.getProgram());
296
+ model._openGLRenderWindow.getShaderCache().readyShaderProgram(cellBO.getProgram());
296
297
  }
297
298
 
298
299
  cellBO.getVAO().bind();
@@ -721,8 +722,13 @@ function vtkOpenGLImageMapper(publicAPI, model) {
721
722
  for (var _i8 = 0; _i8 < 4; _i8++) {
722
723
  tcoordArray[_i8 * 2] = _i8 % 2 ? 1.0 : 0.0;
723
724
  tcoordArray[_i8 * 2 + 1] = _i8 > 1 ? 1.0 : 0.0;
724
- }
725
+ } // Determine depth position of the slicing plane in the scene.
726
+ // Slicing modes X, Y, and Z use a continuous axis position, whereas
727
+ // slicing modes I, J, and K should use discrete positions.
728
+
725
729
 
730
+ var sliceDepth = [SlicingMode.X, SlicingMode.Y, SlicingMode.Z].includes(model.renderable.getSlicingMode()) ? slice : nSlice;
731
+ var spatialExt = image.getSpatialExtent();
726
732
  var basicScalars = imgScalars.getData();
727
733
  var scalars = null; // Get right scalars according to slicing mode
728
734
 
@@ -740,18 +746,18 @@ function vtkOpenGLImageMapper(publicAPI, model) {
740
746
 
741
747
  dims[0] = dims[1];
742
748
  dims[1] = dims[2];
743
- ptsArray[0] = slice;
744
- ptsArray[1] = ext[2];
745
- ptsArray[2] = ext[4];
746
- ptsArray[3] = slice;
747
- ptsArray[4] = ext[3];
748
- ptsArray[5] = ext[4];
749
- ptsArray[6] = slice;
750
- ptsArray[7] = ext[2];
751
- ptsArray[8] = ext[5];
752
- ptsArray[9] = slice;
753
- ptsArray[10] = ext[3];
754
- ptsArray[11] = ext[5];
749
+ ptsArray[0] = sliceDepth;
750
+ ptsArray[1] = spatialExt[2];
751
+ ptsArray[2] = spatialExt[4];
752
+ ptsArray[3] = sliceDepth;
753
+ ptsArray[4] = spatialExt[3];
754
+ ptsArray[5] = spatialExt[4];
755
+ ptsArray[6] = sliceDepth;
756
+ ptsArray[7] = spatialExt[2];
757
+ ptsArray[8] = spatialExt[5];
758
+ ptsArray[9] = sliceDepth;
759
+ ptsArray[10] = spatialExt[3];
760
+ ptsArray[11] = spatialExt[5];
755
761
  } else if (ijkMode === SlicingMode.J) {
756
762
  scalars = new basicScalars.constructor(dims[2] * dims[0] * numComp);
757
763
  var _id = 0;
@@ -766,32 +772,32 @@ function vtkOpenGLImageMapper(publicAPI, model) {
766
772
  }
767
773
 
768
774
  dims[1] = dims[2];
769
- ptsArray[0] = ext[0];
770
- ptsArray[1] = slice;
771
- ptsArray[2] = ext[4];
772
- ptsArray[3] = ext[1];
773
- ptsArray[4] = slice;
774
- ptsArray[5] = ext[4];
775
- ptsArray[6] = ext[0];
776
- ptsArray[7] = slice;
777
- ptsArray[8] = ext[5];
778
- ptsArray[9] = ext[1];
779
- ptsArray[10] = slice;
780
- ptsArray[11] = ext[5];
775
+ ptsArray[0] = spatialExt[0];
776
+ ptsArray[1] = sliceDepth;
777
+ ptsArray[2] = spatialExt[4];
778
+ ptsArray[3] = spatialExt[1];
779
+ ptsArray[4] = sliceDepth;
780
+ ptsArray[5] = spatialExt[4];
781
+ ptsArray[6] = spatialExt[0];
782
+ ptsArray[7] = sliceDepth;
783
+ ptsArray[8] = spatialExt[5];
784
+ ptsArray[9] = spatialExt[1];
785
+ ptsArray[10] = sliceDepth;
786
+ ptsArray[11] = spatialExt[5];
781
787
  } else if (ijkMode === SlicingMode.K || ijkMode === SlicingMode.NONE) {
782
788
  scalars = basicScalars.subarray(sliceOffset * sliceSize, (sliceOffset + 1) * sliceSize);
783
- ptsArray[0] = ext[0];
784
- ptsArray[1] = ext[2];
785
- ptsArray[2] = slice;
786
- ptsArray[3] = ext[1];
787
- ptsArray[4] = ext[2];
788
- ptsArray[5] = slice;
789
- ptsArray[6] = ext[0];
790
- ptsArray[7] = ext[3];
791
- ptsArray[8] = slice;
792
- ptsArray[9] = ext[1];
793
- ptsArray[10] = ext[3];
794
- ptsArray[11] = slice;
789
+ ptsArray[0] = spatialExt[0];
790
+ ptsArray[1] = spatialExt[2];
791
+ ptsArray[2] = sliceDepth;
792
+ ptsArray[3] = spatialExt[1];
793
+ ptsArray[4] = spatialExt[2];
794
+ ptsArray[5] = sliceDepth;
795
+ ptsArray[6] = spatialExt[0];
796
+ ptsArray[7] = spatialExt[3];
797
+ ptsArray[8] = sliceDepth;
798
+ ptsArray[9] = spatialExt[1];
799
+ ptsArray[10] = spatialExt[3];
800
+ ptsArray[11] = sliceDepth;
795
801
  } else {
796
802
  vtkErrorMacro('Reformat slicing not yet supported.');
797
803
  }
@@ -20,9 +20,9 @@ function vtkOpenGLImageSlice(publicAPI, model) {
20
20
  return;
21
21
  }
22
22
 
23
- model.openGLRenderWindow = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderWindow');
23
+ model._openGLRenderWindow = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderWindow');
24
24
  model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');
25
- model.context = model.openGLRenderWindow.getContext();
25
+ model.context = model._openGLRenderWindow.getContext();
26
26
  publicAPI.prepareNodes();
27
27
  publicAPI.addMissingNode(model.renderable.getMapper());
28
28
  publicAPI.removeUnusedNodes();
@@ -12,7 +12,7 @@ function vtkOpenGLPixelSpaceCallbackMapper(publicAPI, model) {
12
12
 
13
13
  publicAPI.opaquePass = function (prepass, renderPass) {
14
14
  model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');
15
- model.openGLRenderWindow = model.openGLRenderer.getParent();
15
+ model._openGLRenderWindow = model.openGLRenderer.getParent();
16
16
  var aspectRatio = model.openGLRenderer.getAspectRatio();
17
17
  var camera = model.openGLRenderer ? model.openGLRenderer.getRenderable().getActiveCamera() : null;
18
18
  var tsize = model.openGLRenderer.getTiledSizeAndOrigin();
@@ -22,7 +22,9 @@ function vtkOpenGLPixelSpaceCallbackMapper(publicAPI, model) {
22
22
  var zbt = renderPass.getZBufferTexture();
23
23
  var width = Math.floor(zbt.getWidth());
24
24
  var height = Math.floor(zbt.getHeight());
25
- var gl = model.openGLRenderWindow.getContext();
25
+
26
+ var gl = model._openGLRenderWindow.getContext();
27
+
26
28
  zbt.bind(); // Here we need to use vtkFramebuffer to save current settings (bindings/buffers)
27
29
 
28
30
  var fb = renderPass.getFramebuffer();
@@ -49,7 +49,7 @@ function vtkOpenGLPolyDataMapper(publicAPI, model) {
49
49
  model.currentRenderPass = null;
50
50
  model.openGLActor = publicAPI.getFirstAncestorOfType('vtkOpenGLActor');
51
51
  model.openGLRenderer = model.openGLActor.getFirstAncestorOfType('vtkOpenGLRenderer');
52
- model.openGLRenderWindow = model.openGLRenderer.getParent();
52
+ model._openGLRenderWindow = model.openGLRenderer.getParent();
53
53
  model.openGLCamera = model.openGLRenderer.getViewNodeFor(model.openGLRenderer.getRenderable().getActiveCamera());
54
54
  }
55
55
  }; // Renders myself
@@ -78,13 +78,13 @@ function vtkOpenGLPolyDataMapper(publicAPI, model) {
78
78
  };
79
79
 
80
80
  publicAPI.render = function () {
81
- var ctx = model.openGLRenderWindow.getContext();
81
+ var ctx = model._openGLRenderWindow.getContext();
82
82
 
83
83
  if (model.context !== ctx) {
84
84
  model.context = ctx;
85
85
 
86
86
  for (var i = primTypes.Start; i < primTypes.End; i++) {
87
- model.primitives[i].setOpenGLRenderWindow(model.openGLRenderWindow);
87
+ model.primitives[i].setOpenGLRenderWindow(model._openGLRenderWindow);
88
88
  }
89
89
  }
90
90
 
@@ -647,7 +647,8 @@ function vtkOpenGLPolyDataMapper(publicAPI, model) {
647
647
  };
648
648
  publicAPI.buildShaders(shaders, ren, actor); // compile and bind the program if needed
649
649
 
650
- var newShader = model.openGLRenderWindow.getShaderCache().readyShaderProgramArray(shaders.Vertex, shaders.Fragment, shaders.Geometry); // if the shader changed reinitialize the VAO
650
+ var newShader = model._openGLRenderWindow.getShaderCache().readyShaderProgramArray(shaders.Vertex, shaders.Fragment, shaders.Geometry); // if the shader changed reinitialize the VAO
651
+
651
652
 
652
653
  if (newShader !== cellBO.getProgram()) {
653
654
  cellBO.setProgram(newShader); // reset the VAO as the shader has changed
@@ -657,7 +658,7 @@ function vtkOpenGLPolyDataMapper(publicAPI, model) {
657
658
 
658
659
  cellBO.getShaderSourceTime().modified();
659
660
  } else {
660
- model.openGLRenderWindow.getShaderCache().readyShaderProgram(cellBO.getProgram());
661
+ model._openGLRenderWindow.getShaderCache().readyShaderProgram(cellBO.getProgram());
661
662
  }
662
663
 
663
664
  cellBO.getVAO().bind();
@@ -1075,12 +1076,14 @@ function vtkOpenGLPolyDataMapper(publicAPI, model) {
1075
1076
  var frontfaceCulling = actor.getProperty().getFrontfaceCulling();
1076
1077
 
1077
1078
  if (!backfaceCulling && !frontfaceCulling) {
1078
- model.openGLRenderWindow.disableCullFace();
1079
+ model._openGLRenderWindow.disableCullFace();
1079
1080
  } else if (frontfaceCulling) {
1080
- model.openGLRenderWindow.enableCullFace();
1081
+ model._openGLRenderWindow.enableCullFace();
1082
+
1081
1083
  gl.cullFace(gl.FRONT);
1082
1084
  } else {
1083
- model.openGLRenderWindow.enableCullFace();
1085
+ model._openGLRenderWindow.enableCullFace();
1086
+
1084
1087
  gl.cullFace(gl.BACK);
1085
1088
  }
1086
1089
 
@@ -1170,7 +1173,7 @@ function vtkOpenGLPolyDataMapper(publicAPI, model) {
1170
1173
  tex.setMagnificationFilter(Filter.NEAREST);
1171
1174
  tex.setWrapS(Wrap.CLAMP_TO_EDGE);
1172
1175
  tex.setWrapT(Wrap.CLAMP_TO_EDGE);
1173
- tex.setOpenGLRenderWindow(model.openGLRenderWindow);
1176
+ tex.setOpenGLRenderWindow(model._openGLRenderWindow);
1174
1177
  var input = model.renderable.getColorTextureMap();
1175
1178
  var ext = input.getExtent();
1176
1179
  var inScalars = input.getPointData().getScalars();
@@ -1224,8 +1227,8 @@ function vtkOpenGLPolyDataMapper(publicAPI, model) {
1224
1227
  });
1225
1228
  } else {
1226
1229
  // otherwise free them
1227
- model.primitives[primTypes.TrisEdges].releaseGraphicsResources(model.openGLRenderWindow);
1228
- model.primitives[primTypes.TriStripsEdges].releaseGraphicsResources(model.openGLRenderWindow);
1230
+ model.primitives[primTypes.TrisEdges].releaseGraphicsResources(model._openGLRenderWindow);
1231
+ model.primitives[primTypes.TriStripsEdges].releaseGraphicsResources(model._openGLRenderWindow);
1229
1232
  }
1230
1233
 
1231
1234
  model.VBOBuildTime.modified();