@kitware/vtk.js 23.0.0 → 23.2.0

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/Common/Core/CellArray.d.ts +2 -2
  2. package/Common/Core/DataArray.d.ts +2 -2
  3. package/Common/Core/Endian.d.ts +3 -1
  4. package/Common/Core/ImageHelper.d.ts +1 -1
  5. package/Common/Core/LookupTable.d.ts +2 -2
  6. package/Common/Core/Math.d.ts +1 -1
  7. package/Common/Core/MatrixBuilder.d.ts +1 -1
  8. package/Common/Core/Points.d.ts +2 -2
  9. package/Common/Core/PriorityQueue.d.ts +1 -1
  10. package/Common/Core/ProgressHandler.d.ts +1 -1
  11. package/Common/Core/ScalarsToColors.d.ts +3 -3
  12. package/Common/Core/StringArray.d.ts +1 -1
  13. package/Common/Core/VariantArray.d.ts +1 -1
  14. package/Common/DataModel/Box.d.ts +2 -2
  15. package/Common/DataModel/CardinalSpline1D.d.ts +2 -2
  16. package/Common/DataModel/Cell.d.ts +3 -3
  17. package/Common/DataModel/Cone.d.ts +2 -2
  18. package/Common/DataModel/Cylinder.d.ts +2 -2
  19. package/Common/DataModel/DataSet.d.ts +2 -2
  20. package/Common/DataModel/DataSetAttributes/FieldData.d.ts +1 -1
  21. package/Common/DataModel/DataSetAttributes.d.ts +3 -3
  22. package/Common/DataModel/ImageData.d.ts +2 -2
  23. package/Common/DataModel/KochanekSpline1D.d.ts +1 -1
  24. package/Common/DataModel/Line.d.ts +2 -2
  25. package/Common/DataModel/PiecewiseFunction.d.ts +2 -2
  26. package/Common/DataModel/Plane.d.ts +2 -2
  27. package/Common/DataModel/PointSet.d.ts +3 -3
  28. package/Common/DataModel/PolyData.d.ts +3 -3
  29. package/Common/DataModel/Polygon.d.ts +2 -2
  30. package/Common/DataModel/SelectionNode.d.ts +2 -2
  31. package/Common/DataModel/Sphere.d.ts +2 -2
  32. package/Common/DataModel/Spline1D.d.ts +1 -1
  33. package/Common/DataModel/Spline3D.d.ts +1 -1
  34. package/Common/DataModel/Triangle.d.ts +2 -2
  35. package/Common/Transform/LandmarkTransform.d.ts +2 -2
  36. package/Filters/General/AppendPolyData.d.ts +1 -1
  37. package/Filters/General/ImageCropFilter.d.ts +1 -1
  38. package/Filters/General/ImageOutlineFilter.d.ts +1 -1
  39. package/Filters/General/ImageSliceFilter.d.ts +1 -1
  40. package/Filters/General/ImageStreamline.d.ts +3 -3
  41. package/Filters/General/LineFilter.d.ts +1 -1
  42. package/Filters/General/OutlineFilter.d.ts +1 -1
  43. package/Filters/General/TriangleFilter.d.ts +1 -1
  44. package/Filters/General/TubeFilter.d.ts +2 -2
  45. package/Filters/Sources/Arrow2DSource.d.ts +2 -2
  46. package/Filters/Sources/ArrowSource.d.ts +2 -2
  47. package/Filters/Sources/CircleSource.d.ts +2 -2
  48. package/Filters/Sources/ConeSource.d.ts +2 -2
  49. package/Filters/Sources/CubeSource.d.ts +2 -2
  50. package/Filters/Sources/Cursor3D.d.ts +3 -3
  51. package/Filters/Sources/CylinderSource.d.ts +2 -2
  52. package/Filters/Sources/LineSource.d.ts +2 -2
  53. package/Filters/Sources/PlaneSource.d.ts +2 -2
  54. package/Filters/Sources/PointSource.d.ts +2 -2
  55. package/Filters/Sources/SphereSource.d.ts +2 -2
  56. package/Filters/Texture/TextureMapToPlane.d.ts +1 -1
  57. package/Filters/Texture/TextureMapToSphere.d.ts +1 -1
  58. package/IO/Core/DataAccessHelper.d.ts +4 -4
  59. package/IO/Core/HttpDataSetReader.d.ts +5 -5
  60. package/IO/Core/HttpSceneLoader.d.ts +5 -5
  61. package/IO/Core/ImageStream/DefaultProtocol.d.ts +1 -1
  62. package/IO/Core/ImageStream/ViewStream.d.ts +4 -4
  63. package/IO/Core/ImageStream.d.ts +3 -3
  64. package/IO/Core/WSLinkClient.d.ts +1 -1
  65. package/IO/Geometry/DracoReader.d.ts +5 -5
  66. package/IO/Geometry/PLYReader.d.ts +5 -5
  67. package/IO/Geometry/PLYWriter.d.ts +2 -2
  68. package/IO/Geometry/STLReader.d.ts +5 -5
  69. package/IO/Geometry/STLWriter.d.ts +2 -2
  70. package/IO/Misc/ElevationReader.d.ts +5 -5
  71. package/IO/Misc/ITKImageReader.d.ts +1 -1
  72. package/IO/Misc/ITKPolyDataReader.d.ts +1 -1
  73. package/IO/Misc/JSONNucleoReader.d.ts +5 -5
  74. package/IO/Misc/JSONReader.d.ts +1 -1
  75. package/IO/Misc/MTLReader.d.ts +6 -6
  76. package/IO/Misc/OBJReader.d.ts +5 -5
  77. package/IO/Misc/PDBReader.d.ts +5 -5
  78. package/IO/XML/XMLImageDataReader.d.ts +1 -1
  79. package/IO/XML/XMLPolyDataReader.d.ts +1 -1
  80. package/IO/XML/XMLReader.d.ts +5 -5
  81. package/Interaction/Manipulators/MouseRangeManipulator.js +55 -1
  82. package/Interaction/Widgets/OrientationMarkerWidget.d.ts +12 -10
  83. package/Rendering/Core/AbstractMapper.d.ts +2 -2
  84. package/Rendering/Core/AbstractMapper3D.d.ts +2 -2
  85. package/Rendering/Core/AbstractPicker.d.ts +4 -4
  86. package/Rendering/Core/Actor.d.ts +4 -4
  87. package/Rendering/Core/Actor2D.d.ts +5 -5
  88. package/Rendering/Core/AnnotatedCubeActor.d.ts +1 -1
  89. package/Rendering/Core/AxesActor.d.ts +1 -1
  90. package/Rendering/Core/Camera.d.ts +2 -2
  91. package/Rendering/Core/CellPicker.d.ts +5 -5
  92. package/Rendering/Core/ColorTransferFunction.d.ts +1 -1
  93. package/Rendering/Core/Coordinate.d.ts +2 -2
  94. package/Rendering/Core/Follower.d.ts +2 -2
  95. package/Rendering/Core/Glyph3DMapper.d.ts +2 -2
  96. package/Rendering/Core/ImageMapper.d.ts +3 -3
  97. package/Rendering/Core/ImageProperty.d.ts +2 -2
  98. package/Rendering/Core/ImageSlice.d.ts +4 -4
  99. package/Rendering/Core/Light.d.ts +2 -2
  100. package/Rendering/Core/Mapper.d.ts +5 -5
  101. package/Rendering/Core/Mapper2D.d.ts +4 -3
  102. package/Rendering/Core/Picker.d.ts +5 -5
  103. package/Rendering/Core/PixelSpaceCallbackMapper.d.ts +2 -2
  104. package/Rendering/Core/PointPicker.d.ts +3 -3
  105. package/Rendering/Core/Prop.d.ts +5 -5
  106. package/Rendering/Core/Prop3D.d.ts +2 -2
  107. package/Rendering/Core/Property.d.ts +2 -2
  108. package/Rendering/Core/Property2D.d.ts +2 -2
  109. package/Rendering/Core/RenderWindow.d.ts +4 -4
  110. package/Rendering/Core/RenderWindowInteractor.d.ts +2 -2
  111. package/Rendering/Core/Renderer.d.ts +12 -11
  112. package/Rendering/Core/ScalarBarActor.d.ts +3 -3
  113. package/Rendering/Core/Skybox.d.ts +1 -1
  114. package/Rendering/Core/SphereMapper.d.ts +1 -1
  115. package/Rendering/Core/StickMapper.d.ts +1 -1
  116. package/Rendering/Core/Texture.d.ts +1 -1
  117. package/Rendering/Core/Viewport.d.ts +4 -4
  118. package/Rendering/Core/Volume.d.ts +4 -4
  119. package/Rendering/Core/VolumeMapper.d.ts +2 -2
  120. package/Rendering/Core/VolumeProperty.d.ts +1 -1
  121. package/Rendering/Misc/CanvasView.d.ts +2 -2
  122. package/Rendering/Misc/FullScreenRenderWindow.d.ts +8 -8
  123. package/Rendering/Misc/GenericRenderWindow.d.ts +6 -6
  124. package/Rendering/Misc/RemoteView.d.ts +3 -3
  125. package/Rendering/Misc/RenderWindowWithControlBar.d.ts +2 -2
  126. package/Rendering/Misc/SynchronizableRenderWindow.d.ts +4 -3
  127. package/Rendering/Misc/TextureLODsDownloader.d.ts +4 -4
  128. package/Rendering/OpenGL/ForwardPass.js +7 -3
  129. package/Rendering/OpenGL/Framebuffer.js +68 -11
  130. package/Rendering/OpenGL/ImageMapper.js +23 -4
  131. package/Rendering/OpenGL/OrderIndependentTranslucentPass.js +293 -0
  132. package/Rendering/OpenGL/PolyDataMapper.js +20 -2
  133. package/Rendering/OpenGL/RenderWindow.d.ts +18 -18
  134. package/Rendering/OpenGL/ShaderCache.js +10 -2
  135. package/Rendering/OpenGL/Texture.js +32 -16
  136. package/Rendering/OpenGL/glsl/vtkPolyDataFS.glsl.js +1 -1
  137. package/Rendering/SceneGraph/RenderPass.d.ts +2 -2
  138. package/Rendering/SceneGraph/ViewNode.d.ts +2 -2
  139. package/Rendering/SceneGraph/ViewNodeFactory.d.ts +1 -1
  140. package/Rendering/WebGPU/HardwareSelectionPass.js +0 -1
  141. package/Rendering/WebGPU/OrderIndependentTranslucentPass.js +1 -3
  142. package/Rendering/WebGPU/RenderEncoder.js +1 -4
  143. package/Widgets/Manipulators/LineManipulator.d.ts +1 -1
  144. package/Widgets/Manipulators/PlaneManipulator.d.ts +1 -1
  145. package/Widgets/Manipulators/TrackballManipulator.d.ts +1 -1
  146. package/Widgets/Representations/ResliceCursorContextRepresentation.d.ts +1 -1
  147. package/Widgets/Representations/WidgetRepresentation.d.ts +1 -1
  148. package/interfaces.d.ts +4 -4
  149. package/macros.d.ts +1 -1
  150. package/package.json +1 -1
  151. package/types.d.ts +22 -1
  152. package/vtk.d.ts +7 -2
@@ -1,5 +1,5 @@
1
- import { vtkObject } from '@kitware/vtk.js/interfaces';
2
- import { RGBColor } from '@kitware/vtk.js/types';
1
+ import { vtkObject } from '../../interfaces';
2
+ import { RGBColor } from '../../types';
3
3
 
4
4
  interface IProperty2DInitialValues{
5
5
  color?: RGBColor;
@@ -1,7 +1,7 @@
1
- import { vtkObject, vtkSubscription } from '@kitware/vtk.js/interfaces';
2
- import vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
3
- import vtkRenderWindowInteractor from '@kitware/vtk.js/Rendering/Core/RenderWindowInteractor';
4
- // import vtkOpenGLRenderWindow from '@kitware/vtk.js/OpenGL/RenderWindow';
1
+ import { vtkObject, vtkSubscription } from '../../interfaces';
2
+ import vtkRenderer from './Renderer';
3
+ import vtkRenderWindowInteractor from './RenderWindowInteractor';
4
+ // import vtkOpenGLRenderWindow from '../../OpenGL/RenderWindow';
5
5
 
6
6
  export interface IRenderWindowInitialValues {
7
7
  renderers?: vtkRenderer[],
@@ -1,5 +1,5 @@
1
- import { vtkObject } from '@kitware/vtk.js/interfaces';
2
- import vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
1
+ import { vtkObject } from '../../interfaces';
2
+ import vtkRenderer from './Renderer';
3
3
 
4
4
  export enum Device {
5
5
  Unknown,
@@ -1,13 +1,13 @@
1
- import { Bounds } from '@kitware/vtk.js/types';
1
+ import { Bounds, Nullable } from '../../types';
2
2
 
3
- import vtkCamera from '@kitware/vtk.js/Rendering/Core/Camera';
4
- import vtkLight from '@kitware/vtk.js/Rendering/Core/Light';
5
- import vtkRenderWindow from '@kitware/vtk.js/Rendering/Core/RenderWindow';
6
- import vtkProp3D from '@kitware/vtk.js/Rendering/Core/Prop3D';
7
- import vtkViewport, { IViewportInitialValues } from '@kitware/vtk.js/Rendering/Core/Viewport';
8
- import vtkVolume from '@kitware/vtk.js/Rendering/Core/Volume';
9
- import vtkTexture from '@kitware/vtk.js/Rendering/Core/Texture';
10
- import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
3
+ import vtkCamera from './Camera';
4
+ import vtkLight from './Light';
5
+ import vtkRenderWindow from './RenderWindow';
6
+ import vtkProp3D from './Prop3D';
7
+ import vtkViewport, { IViewportInitialValues } from './Viewport';
8
+ import vtkVolume from './Volume';
9
+ import vtkTexture from './Texture';
10
+ import vtkActor from './Actor';
11
11
 
12
12
 
13
13
  export interface IRendererInitialValues extends IViewportInitialValues {
@@ -128,6 +128,7 @@ export interface vtkRenderer extends vtkViewport {
128
128
  *
129
129
  */
130
130
  getClippingRangeExpansion(): number;
131
+
131
132
  /**
132
133
  *
133
134
  * @default null
@@ -226,7 +227,7 @@ export interface vtkRenderer extends vtkViewport {
226
227
  *
227
228
  * @default null
228
229
  */
229
- getRenderWindow(): vtkRenderWindow | null;
230
+ getRenderWindow(): Nullable<vtkRenderWindow>;
230
231
 
231
232
  /**
232
233
  *
@@ -337,7 +338,7 @@ export interface vtkRenderer extends vtkViewport {
337
338
  * Specify the camera to use for this renderer.
338
339
  * @param {vtkCamera} camera The camera object to use.
339
340
  */
340
- setActiveCamera(camera: vtkCamera | null): boolean;
341
+ setActiveCamera(camera: vtkCamera): boolean;
341
342
 
342
343
  /**
343
344
  *
@@ -1,6 +1,6 @@
1
- import vtkScalarsToColors from '@kitware/vtk.js/Common/Core/ScalarsToColors';
2
- import { Size, Vector2, Vector3 } from '@kitware/vtk.js/types';
3
- import vtkActor, { IActorInitialValues } from '@kitware/vtk.js/Rendering/Core/Actor';
1
+ import vtkScalarsToColors from '../../Common/Core/ScalarsToColors';
2
+ import { Size, Vector2, Vector3 } from '../../types';
3
+ import vtkActor, { IActorInitialValues } from './Actor';
4
4
 
5
5
 
6
6
  export interface ITextSizes {
@@ -1,4 +1,4 @@
1
- import vtkActor, { IActorInitialValues } from '@kitware/vtk.js/Rendering/Core/Actor';
1
+ import vtkActor, { IActorInitialValues } from './Actor';
2
2
 
3
3
  export interface ISkyboxInitialValues extends IActorInitialValues {
4
4
  format?: string;
@@ -1,4 +1,4 @@
1
- import vtkMapper, { IMapperInitialValues } from '@kitware/vtk.js/Rendering/Core/Mapper';
1
+ import vtkMapper, { IMapperInitialValues } from './Mapper';
2
2
 
3
3
  export interface ISphereInitialValues extends IMapperInitialValues {
4
4
  radius?: number;
@@ -1,4 +1,4 @@
1
- import vtkMapper, { IMapperInitialValues } from '@kitware/vtk.js/Rendering/Core/Mapper';
1
+ import vtkMapper, { IMapperInitialValues } from './Mapper';
2
2
 
3
3
  interface IStickMappereInitialValues extends IMapperInitialValues{
4
4
  radius?: number;
@@ -1,4 +1,4 @@
1
- import { vtkAlgorithm } from '@kitware/vtk.js/interfaces';
1
+ import { vtkAlgorithm } from '../../interfaces';
2
2
 
3
3
  export interface ITextureInitialValues {
4
4
  repeat?: boolean;
@@ -1,8 +1,8 @@
1
1
 
2
- import { vtkObject } from '@kitware/vtk.js/interfaces';
3
- import { RGBColor } from '@kitware/vtk.js/types';
4
- import vtkActor2D from '@kitware/vtk.js/Rendering/Core/Actor2D';
5
- import vtkProp from '@kitware/vtk.js/Rendering/Core/Prop';
2
+ import { vtkObject } from '../../interfaces';
3
+ import { RGBColor } from '../../types';
4
+ import vtkActor2D from './Actor2D';
5
+ import vtkProp from './Prop';
6
6
 
7
7
  export interface IViewportInitialValues {
8
8
  background?: RGBColor;
@@ -1,7 +1,7 @@
1
- import { Bounds } from '@kitware/vtk.js/types';
2
- import vtkProp3D, { IProp3DInitialValues } from '@kitware/vtk.js/Rendering/Core/Prop3D';
3
- import vtkVolumeMapper from '@kitware/vtk.js/Rendering/Core/VolumeMapper';
4
- import vtkVolumeProperty from '@kitware/vtk.js/Rendering/Core/VolumeProperty';
1
+ import { Bounds } from '../../types';
2
+ import vtkProp3D, { IProp3DInitialValues } from './Prop3D';
3
+ import vtkVolumeMapper from './VolumeMapper';
4
+ import vtkVolumeProperty from './VolumeProperty';
5
5
 
6
6
  /**
7
7
  *
@@ -1,5 +1,5 @@
1
- import { Bounds, Range } from '@kitware/vtk.js/types';
2
- import vtkAbstractMapper, { IAbstractMapperInitialValues } from '@kitware/vtk.js/Rendering/Core/AbstractMapper';
1
+ import { Bounds, Range } from '../../types';
2
+ import vtkAbstractMapper, { IAbstractMapperInitialValues } from './AbstractMapper';
3
3
 
4
4
  export enum BlendMode {
5
5
  COMPOSITE_BLEND,
@@ -1,4 +1,4 @@
1
- import { vtkObject } from '@kitware/vtk.js/interfaces';
1
+ import { vtkObject } from '../../interfaces';
2
2
 
3
3
  export enum InterpolationType {
4
4
  NEAREST,
@@ -1,5 +1,5 @@
1
- import { vtkObject } from '@kitware/vtk.js/interfaces';
2
- import { Size } from '@kitware/vtk.js/types';
1
+ import { vtkObject } from '../../interfaces';
2
+ import { Size } from '../../types';
3
3
 
4
4
 
5
5
  /**
@@ -1,11 +1,11 @@
1
- import { vtkObject } from '@kitware/vtk.js/interfaces';
2
- import { RGBColor } from '@kitware/vtk.js/types';
3
- import vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
4
- import vtkRenderWindow from '@kitware/vtk.js/Rendering/Core/RenderWindow';
5
- import vtkRenderWindowInteractor from '@kitware/vtk.js/Rendering/Core/RenderWindowInteractor';
6
-
7
- // import vtkOpenGLRenderWindow from '@kitware/vtk.js/OpenGL/RenderWindow';
8
- // import vtkWebGPURenderWindow from '@kitware/vtk.js/WebGPU/RenderWindow';
1
+ import { vtkObject } from '../../interfaces';
2
+ import { RGBColor } from '../../types';
3
+ import vtkRenderer from '../Core/Renderer';
4
+ import vtkRenderWindow from '../Core/RenderWindow';
5
+ import vtkRenderWindowInteractor from '../Core/RenderWindowInteractor';
6
+
7
+ // import vtkOpenGLRenderWindow from '../../OpenGL/RenderWindow';
8
+ // import vtkWebGPURenderWindow from '../../WebGPU/RenderWindow';
9
9
 
10
10
 
11
11
  /**
@@ -1,9 +1,9 @@
1
- import { vtkObject, vtkSubscription } from '@kitware/vtk.js/interfaces';
2
- import { RGBColor } from '@kitware/vtk.js/types';
3
- import vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
4
- import vtkRenderWindow from '@kitware/vtk.js/Rendering/Core/RenderWindow';
5
- import vtkRenderWindowInteractor from '@kitware/vtk.js/Rendering/Core/RenderWindowInteractor';
6
- import vtkOpenGLRenderWindow from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow';
1
+ import { vtkObject, vtkSubscription } from '../../interfaces';
2
+ import { RGBColor } from '../../types';
3
+ import vtkRenderer from '../Core/Renderer';
4
+ import vtkRenderWindow from '../Core/RenderWindow';
5
+ import vtkRenderWindowInteractor from '../Core/RenderWindowInteractor';
6
+ import vtkOpenGLRenderWindow from '../OpenGL/RenderWindow';
7
7
 
8
8
 
9
9
  /**
@@ -1,6 +1,6 @@
1
- import { vtkObject } from '@kitware/vtk.js/interfaces';
2
- import vtkCanvasView from '@kitware/vtk.js/Rendering/Misc/CanvasView';
3
- import vtkViewStream from '@kitware/vtk.js/IO/Core/ImageStream/ViewStream';
1
+ import { vtkObject } from '../../interfaces';
2
+ import vtkCanvasView from './CanvasView';
3
+ import vtkViewStream from '../../IO/Core/ImageStream/ViewStream';
4
4
 
5
5
  interface IRemoteViewInitialValues {
6
6
  viewId?: string;
@@ -1,6 +1,6 @@
1
1
 
2
- import { Placement } from '@kitware/vtk.js/types';
3
- import vtkGenericRenderWindow, { IGenericRenderWindowInitialValues } from '@kitware/vtk.js/Rendering/Misc/GenericRenderWindow';
2
+ import { Placement } from '../../types';
3
+ import vtkGenericRenderWindow, { IGenericRenderWindowInitialValues } from './GenericRenderWindow';
4
4
 
5
5
  /**
6
6
  *
@@ -1,4 +1,5 @@
1
- import vtkRenderWindow, { IRenderWindowInitialValues } from '@kitware/vtk.js/Rendering/Core/RenderWindow';
1
+ import { Nullable } from '../../types';
2
+ import vtkRenderWindow, { IRenderWindowInitialValues } from '../Core/RenderWindow';
2
3
 
3
4
  // Keeps state for client / server scene synchronization.
4
5
  export interface ISynchronizerContext {
@@ -27,8 +28,8 @@ export interface ISynchronizerContext {
27
28
 
28
29
  export interface ISynchronizableRenderWindowInitialValues extends IRenderWindowInitialValues {
29
30
  synchronizerContextName?: string; // default: 'default':
30
- synchronizerContext?: ISynchronizerContext | null;
31
- synchronizedViewId?: string | null;
31
+ synchronizerContext?: Nullable<ISynchronizerContext>;
32
+ synchronizedViewId?: Nullable<string>;
32
33
  }
33
34
 
34
35
  // Server-side view state.
@@ -1,6 +1,6 @@
1
- import { vtkObject } from '@kitware/vtk.js/interfaces';
2
- import { CrossOrigin } from '@kitware/vtk.js/types';
3
- import vtkTexture from '@kitware/vtk.js/Rendering/Core/Texture';
1
+ import { vtkObject } from '../../interfaces';
2
+ import { CrossOrigin, Nullable } from '../../types';
3
+ import vtkTexture from '../Core/Texture';
4
4
 
5
5
  /**
6
6
  *
@@ -27,7 +27,7 @@ export interface vtkTextureLODsDownloader extends vtkObject {
27
27
  /**
28
28
  * Get the crossorigin attribute
29
29
  */
30
- getCrossOrigin(): CrossOrigin | null;
30
+ getCrossOrigin(): Nullable<CrossOrigin>;
31
31
 
32
32
  /**
33
33
  * Get the list of files to download
@@ -1,6 +1,7 @@
1
1
  import macro from '../../macros.js';
2
2
  import vtkOpenGLFramebuffer from './Framebuffer.js';
3
3
  import vtkRenderPass from '../SceneGraph/RenderPass.js';
4
+ import vtkOpenGLOrderIndependentTranslucentPass from './OrderIndependentTranslucentPass.js';
4
5
 
5
6
  function vtkForwardPass(publicAPI, model) {
6
7
  // Set our className
@@ -72,8 +73,11 @@ function vtkForwardPass(publicAPI, model) {
72
73
  }
73
74
 
74
75
  if (model.translucentActorCount > 0) {
75
- publicAPI.setCurrentOperation('translucentPass');
76
- renNode.traverse(publicAPI);
76
+ if (!model.translucentPass) {
77
+ model.translucentPass = vtkOpenGLOrderIndependentTranslucentPass.newInstance();
78
+ }
79
+
80
+ model.translucentPass.traverse(viewNode, renNode, publicAPI);
77
81
  }
78
82
 
79
83
  if (model.volumeCount > 0) {
@@ -136,7 +140,7 @@ function extend(publicAPI, model) {
136
140
  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
137
141
 
138
142
  vtkRenderPass.extend(publicAPI, model, initialValues);
139
- macro.get(publicAPI, model, ['framebuffer']); // Object methods
143
+ macro.get(publicAPI, model, ['framebuffer', 'opaqueActorCount', 'translucentActorCount', 'volumeCount']); // Object methods
140
144
 
141
145
  vtkForwardPass(publicAPI, model);
142
146
  } // ----------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
- import { newInstance as newInstance$1, obj, setGet, vtkErrorMacro } from '../../macros.js';
1
+ import { newInstance as newInstance$1, obj, vtkErrorMacro, getArray } from '../../macros.js';
2
2
  import vtkOpenGLTexture from './Texture.js';
3
3
  import { VtkDataTypes } from '../../Common/Core/DataArray/Constants.js';
4
4
  import { Filter } from './Texture/Constants.js';
@@ -23,6 +23,11 @@ function vtkFramebuffer(publicAPI, model) {
23
23
  };
24
24
 
25
25
  publicAPI.saveCurrentBindings = function (modeIn) {
26
+ if (!model.context) {
27
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling saveCurrentBindings');
28
+ return;
29
+ }
30
+
26
31
  var gl = model.context;
27
32
  model.previousDrawBinding = gl.getParameter(model.context.FRAMEBUFFER_BINDING);
28
33
  model.previousActiveFramebuffer = model.openGLRenderWindow.getActiveFramebuffer();
@@ -38,6 +43,11 @@ function vtkFramebuffer(publicAPI, model) {
38
43
  };
39
44
 
40
45
  publicAPI.restorePreviousBindings = function (modeIn) {
46
+ if (!model.context) {
47
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling restorePreviousBindings');
48
+ return;
49
+ }
50
+
41
51
  var gl = model.context;
42
52
  gl.bindFramebuffer(gl.FRAMEBUFFER, model.previousDrawBinding);
43
53
  model.openGLRenderWindow.setActiveFramebuffer(model.previousActiveFramebuffer);
@@ -47,16 +57,28 @@ function vtkFramebuffer(publicAPI, model) {
47
57
  };
48
58
 
49
59
  publicAPI.bind = function () {
50
- model.context.bindFramebuffer(model.context.FRAMEBUFFER, model.glFramebuffer);
60
+ var modeArg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
61
+ var mode = modeArg;
62
+
63
+ if (mode === null) {
64
+ mode = model.context.FRAMEBUFFER;
65
+ }
66
+
67
+ model.context.bindFramebuffer(mode, model.glFramebuffer);
51
68
 
52
- if (model.colorTexture) {
53
- model.colorTexture.bind();
69
+ for (var i = 0; i < model.colorBuffers.length; i++) {
70
+ model.colorBuffers[i].bind();
54
71
  }
55
72
 
56
73
  model.openGLRenderWindow.setActiveFramebuffer(publicAPI);
57
74
  };
58
75
 
59
76
  publicAPI.create = function (width, height) {
77
+ if (!model.context) {
78
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling create');
79
+ return;
80
+ }
81
+
60
82
  model.glFramebuffer = model.context.createFramebuffer();
61
83
  model.glFramebuffer.width = width;
62
84
  model.glFramebuffer.height = height;
@@ -65,6 +87,12 @@ function vtkFramebuffer(publicAPI, model) {
65
87
  publicAPI.setColorBuffer = function (texture) {
66
88
  var attachment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
67
89
  var gl = model.context;
90
+
91
+ if (!gl) {
92
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling setColorBuffer');
93
+ return;
94
+ }
95
+
68
96
  var glAttachment = gl.COLOR_ATTACHMENT0;
69
97
 
70
98
  if (attachment > 0) {
@@ -76,13 +104,19 @@ function vtkFramebuffer(publicAPI, model) {
76
104
  }
77
105
  }
78
106
 
79
- model.colorTexture = texture;
107
+ model.colorBuffers[attachment] = texture;
80
108
  gl.framebufferTexture2D(gl.FRAMEBUFFER, glAttachment, gl.TEXTURE_2D, texture.getHandle(), 0);
81
109
  };
82
110
 
83
111
  publicAPI.removeColorBuffer = function () {
84
112
  var attachment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
85
113
  var gl = model.context;
114
+
115
+ if (!gl) {
116
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling removeColorBuffer');
117
+ return;
118
+ }
119
+
86
120
  var glAttachment = gl.COLOR_ATTACHMENT0;
87
121
 
88
122
  if (attachment > 0) {
@@ -95,9 +129,15 @@ function vtkFramebuffer(publicAPI, model) {
95
129
  }
96
130
 
97
131
  gl.framebufferTexture2D(gl.FRAMEBUFFER, glAttachment, gl.TEXTURE_2D, null, 0);
132
+ model.colorBuffers = model.colorBuffers.splice(attachment, 1);
98
133
  };
99
134
 
100
135
  publicAPI.setDepthBuffer = function (texture) {
136
+ if (!model.context) {
137
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling setDepthBuffer');
138
+ return;
139
+ }
140
+
101
141
  if (model.openGLRenderWindow.getWebgl2()) {
102
142
  var gl = model.context;
103
143
  gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, texture.getHandle(), 0);
@@ -107,6 +147,11 @@ function vtkFramebuffer(publicAPI, model) {
107
147
  };
108
148
 
109
149
  publicAPI.removeDepthBuffer = function () {
150
+ if (!model.context) {
151
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling removeDepthBuffer');
152
+ return;
153
+ }
154
+
110
155
  if (model.openGLRenderWindow.getWebgl2()) {
111
156
  var gl = model.context;
112
157
  gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, null, 0);
@@ -137,10 +182,6 @@ function vtkFramebuffer(publicAPI, model) {
137
182
  if (model.glFramebuffer) {
138
183
  model.context.deleteFramebuffer(model.glFramebuffer);
139
184
  }
140
-
141
- if (model.colorTexture) {
142
- model.colorTexture.releaseGraphicsResources();
143
- }
144
185
  };
145
186
 
146
187
  publicAPI.getSize = function () {
@@ -155,6 +196,11 @@ function vtkFramebuffer(publicAPI, model) {
155
196
  };
156
197
 
157
198
  publicAPI.populateFramebuffer = function () {
199
+ if (!model.context) {
200
+ vtkErrorMacro('you must set the OpenGLRenderWindow before calling populateFrameBuffer');
201
+ return;
202
+ }
203
+
158
204
  publicAPI.bind();
159
205
  var gl = model.context;
160
206
  var texture = vtkOpenGLTexture.newInstance();
@@ -169,6 +215,11 @@ function vtkFramebuffer(publicAPI, model) {
169
215
  gl.bindRenderbuffer(gl.RENDERBUFFER, model.depthTexture);
170
216
  gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, model.glFramebuffer.width, model.glFramebuffer.height);
171
217
  gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, model.depthTexture);
218
+ }; // For backwards compatibility. Use getColorBuffers()[0] going forward.
219
+
220
+
221
+ publicAPI.getColorTexture = function () {
222
+ return model.colorBuffers[0];
172
223
  };
173
224
  } // ----------------------------------------------------------------------------
174
225
  // Object factory
@@ -178,7 +229,7 @@ function vtkFramebuffer(publicAPI, model) {
178
229
  var DEFAULT_VALUES = {
179
230
  openGLRenderWindow: null,
180
231
  glFramebuffer: null,
181
- colorTexture: null,
232
+ colorBuffers: null,
182
233
  depthTexture: null,
183
234
  previousDrawBinding: 0,
184
235
  previousReadBinding: 0,
@@ -192,7 +243,13 @@ function extend(publicAPI, model) {
192
243
  Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API
193
244
 
194
245
  obj(publicAPI, model);
195
- setGet(publicAPI, model, ['colorTexture']); // For more macro methods, see "Sources/macros.js"
246
+
247
+ if (model.colorBuffers) {
248
+ vtkErrorMacro('you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead.');
249
+ }
250
+
251
+ model.colorBuffers = [];
252
+ getArray(publicAPI, model, ['colorBuffers']); // For more macro methods, see "Sources/macros.js"
196
253
  // Object specific methods
197
254
 
198
255
  vtkFramebuffer(publicAPI, model);
@@ -41,6 +41,7 @@ function vtkOpenGLImageMapper(publicAPI, model) {
41
41
 
42
42
  publicAPI.buildPass = function (prepass) {
43
43
  if (prepass) {
44
+ model.currentRenderPass = null;
44
45
  model.openGLImageSlice = publicAPI.getFirstAncestorOfType('vtkOpenGLImageSlice');
45
46
  model.openGLRenderer = publicAPI.getFirstAncestorOfType('vtkOpenGLRenderer');
46
47
  model.openGLRenderWindow = model.openGLRenderer.getParent();
@@ -58,8 +59,9 @@ function vtkOpenGLImageMapper(publicAPI, model) {
58
59
  }
59
60
  };
60
61
 
61
- publicAPI.translucentPass = function (prepass) {
62
+ publicAPI.translucentPass = function (prepass, renderPass) {
62
63
  if (prepass) {
64
+ model.currentRenderPass = renderPass;
63
65
  publicAPI.render();
64
66
  }
65
67
  };
@@ -95,7 +97,12 @@ function vtkOpenGLImageMapper(publicAPI, model) {
95
97
  };
96
98
 
97
99
  publicAPI.buildShaders = function (shaders, ren, actor) {
98
- publicAPI.getShaderTemplate(shaders, ren, actor);
100
+ publicAPI.getShaderTemplate(shaders, ren, actor); // apply any renderPassReplacements
101
+
102
+ if (model.lastRenderPassShaderReplacement) {
103
+ model.lastRenderPassShaderReplacement(shaders);
104
+ }
105
+
99
106
  publicAPI.replaceShaderValues(shaders, ren, actor);
100
107
  };
101
108
 
@@ -240,9 +247,21 @@ function vtkOpenGLImageMapper(publicAPI, model) {
240
247
  // input modified
241
248
  // light complexity changed
242
249
  var tNumComp = model.openGLTexture.getComponents();
243
- var iComp = actor.getProperty().getIndependentComponents();
250
+ var iComp = actor.getProperty().getIndependentComponents(); // has the render pass shader replacement changed? Two options
251
+
252
+ var needRebuild = false;
253
+
254
+ if (!model.currentRenderPass && model.lastRenderPassShaderReplacement) {
255
+ needRebuild = true;
256
+ model.lastRenderPassShaderReplacement = null;
257
+ }
258
+
259
+ if (model.currentRenderPass && model.currentRenderPass.getShaderReplacement() !== model.lastRenderPassShaderReplacement) {
260
+ model.lastRenderPassShaderReplacement = model.currentRenderPass.getShaderReplacement();
261
+ needRebuild = true;
262
+ }
244
263
 
245
- if (model.lastHaveSeenDepthRequest !== model.haveSeenDepthRequest || cellBO.getProgram() === 0 || model.lastTextureComponents !== tNumComp || model.lastIndependentComponents !== iComp) {
264
+ if (needRebuild || model.lastHaveSeenDepthRequest !== model.haveSeenDepthRequest || cellBO.getProgram() === 0 || model.lastTextureComponents !== tNumComp || model.lastIndependentComponents !== iComp) {
246
265
  model.lastHaveSeenDepthRequest = model.haveSeenDepthRequest;
247
266
  model.lastTextureComponents = tNumComp;
248
267
  model.lastIndependentComponents = iComp;